From ea790be2f342e92764afb553bbcc3236f81990e6 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 4 Jul 2024 16:50:26 +0300 Subject: [PATCH 01/47] checkpoint, IWalletProvider abstracted for web3auth but only signing working --- .../Runtime/Scripts/HyperPlayWebGLProvider.cs | 8 +- .../Runtime/IWeb3AuthTransactionHandler.cs | 4 - .../Scripts/Web3AuthWalletGUIUIManager.cs | 6 +- .../Runtime/Web3AuthProvider.cs | 93 ++++++++ ...allet.cs.meta => Web3AuthProvider.cs.meta} | 2 +- .../Runtime/Web3AuthSigner.cs | 31 +++ .../Runtime/Web3AuthSigner.cs.meta | 11 + .../Runtime/Web3AuthTransactionExecutor.cs | 66 ++++++ .../Web3AuthTransactionExecutor.cs.meta | 11 + .../Runtime/Web3AuthTransactionHandler.cs | 36 ---- .../Web3AuthTransactionHandler.cs.meta | 3 - .../Runtime/Web3AuthWallet.cs | 200 ------------------ .../Runtime/Web3AuthWalletExtensions.cs | 13 +- .../Runtime/StubWalletConnectProvider.cs | 31 ++- .../HyperPlayProvider.cs | 16 +- .../AccountProvider.cs | 14 ++ .../InProcessSigner.cs | 53 +++-- .../InProcessTransactionExecutor.cs | 48 ++--- .../MetaMaskProvider.cs | 17 +- .../WalletConnectProvider.cs | 48 ++--- .../Web3/Core/Environment/Web3Environment.cs | 1 + .../Web3/Evm/JsonRpc/RpcClientConfig.cs | 13 -- .../Web3/Evm/JsonRpc/RpcClientExtensions.cs | 24 --- .../Web3/Evm/JsonRpc/RpcClientProvider.cs | 46 ++-- .../Web3/Evm/Wallet/IWalletProvider.cs | 2 + .../Web3/Evm/Wallet/WalletProvider.cs | 33 +-- .../Web3/Evm/Wallet/WalletSigner.cs | 4 +- .../Evm/Wallet/WalletTransactionExecutor.cs | 2 +- 28 files changed, 362 insertions(+), 474 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs rename Packages/io.chainsafe.web3-unity.web3auth/Runtime/{Web3AuthWallet.cs.meta => Web3AuthProvider.cs.meta} (83%) create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs create mode 100644 src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs delete mode 100644 src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientConfig.cs 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 8e2ed3ed7..a536e9647 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 38d9460a1..1e5cfd705 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs @@ -9,10 +9,6 @@ public interface IWeb3AuthTransactionHandler public event Action OnTransactionConfirmed; - public event Action OnTransactionApproved; - - public event Action OnTransactionDeclined; - public void RequestTransaction(TransactionRequested transactionRequested); public void ConfirmTransaction(TransactionConfirmed transactionConfirmed); diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs index a55a30dab..7e00814c2 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Generic; +using ChainSafe.Gaming.InProcessSigner; using ChainSafe.Gaming.UnityPackage; using ChainSafe.GamingSdk.Web3Auth; using TMPro; @@ -184,8 +185,9 @@ private IEnumerator CheckHoldPrivateKeyButtonInput() /// private void SetPrivateKey() { - var web3AuthWallet = (Web3AuthWallet)Web3Accessor.Web3.ServiceProvider.GetService(typeof(Web3AuthWallet)); - privateKeyText.text = web3AuthWallet.Key; + var accountProvider = (AccountProvider)Web3Accessor.Web3.ServiceProvider.GetService(typeof(AccountProvider)); + + privateKeyText.text = accountProvider.Account.PrivateKey; } /// diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs new file mode 100644 index 000000000..ce8b9fafe --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs @@ -0,0 +1,93 @@ +using System.Threading.Tasks; +using ChainSafe.Gaming.Evm; +using ChainSafe.Gaming.InProcessSigner; +using ChainSafe.Gaming.Web3; +using ChainSafe.Gaming.Web3.Environment; +using ChainSafe.Gaming.Web3.Evm.Wallet; +using ChainSafe.GamingSdk.Web3Auth; +using Nethereum.Web3.Accounts; +using UnityEngine; + +public class Web3AuthProvider : WalletProvider +{ + private readonly Web3AuthWalletConfig _config; + private readonly AccountProvider _accountProvider; + + private Web3Auth _coreInstance; + private TaskCompletionSource _connectTcs; + private TaskCompletionSource _disconnectTcs; + + public Web3AuthProvider(Web3AuthWalletConfig config, AccountProvider accountProvider, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(environment, chainRegistryProvider, chainConfig) + { + _config = config; + _accountProvider = accountProvider; + } + + public override async Task Connect() + { + _coreInstance = Object.FindObjectOfType(); + + if (_coreInstance == null) + { + var gameObject = new GameObject("Web3Auth", typeof(Web3Auth)); + + Object.DontDestroyOnLoad(gameObject); + + _coreInstance = gameObject.GetComponent(); + } + + _coreInstance.setOptions(_config.Web3AuthOptions, _config.RememberMe); + + if (_connectTcs != null && !_connectTcs.Task.IsCompleted) + { + _connectTcs.SetCanceled(); + } + + _connectTcs = new TaskCompletionSource(); + + _coreInstance.onLogin += OnLogin; + + _coreInstance.login(_config.LoginParams); + + var response = await _connectTcs.Task; + + var account = new Account(response.privKey); + + _accountProvider.Initialize(account); + + return account.Address; + } + + private void OnLogin(Web3AuthResponse response) + { + _connectTcs.SetResult(response); + } + + public override async Task Disconnect() + { + if (_disconnectTcs != null && !_disconnectTcs.Task.IsCompleted) + { + _disconnectTcs.SetCanceled(); + } + + _disconnectTcs = new TaskCompletionSource(); + + _coreInstance.onLogout += OnLogout; + + _coreInstance.logout(); + + await _disconnectTcs.Task; + + Object.Destroy(_coreInstance.gameObject); + + void OnLogout() + { + _disconnectTcs.SetResult(null); + } + } + + public override Task Request(string method, params object[] parameters) + { + return Perform(method, parameters); + } +} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs.meta similarity index 83% rename from Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs.meta rename to Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs.meta index 9484771f1..af6a84079 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs.meta +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c38937061ec1df74c8ce8dc1898238c2 +guid: 315f561b26677c24588d042c02411964 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs new file mode 100644 index 000000000..dffea3f0e --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs @@ -0,0 +1,31 @@ +using System.Threading.Tasks; +using ChainSafe.Gaming.InProcessSigner; +using ChainSafe.Gaming.Web3.Core; +using ChainSafe.Gaming.Web3.Core.Logout; +using ChainSafe.Gaming.Web3.Evm.Wallet; +using UnityEngine; + +public class Web3AuthSigner : InProcessSigner, ILifecycleParticipant, ILogoutHandler +{ + private readonly IWalletProvider _walletProvider; + + public Web3AuthSigner(AccountProvider accountProvider, IWalletProvider walletProvider) : base(accountProvider) + { + _walletProvider = walletProvider; + } + + public async ValueTask WillStartAsync() + { + await _walletProvider.Connect(); + } + + public virtual ValueTask WillStopAsync() + { + return new ValueTask(Task.CompletedTask); + } + + public async Task OnLogout() + { + await _walletProvider.Disconnect(); + } +} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs.meta new file mode 100644 index 000000000..0108a8fd8 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d19f6325a0df498499557519b5ef39a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs new file mode 100644 index 000000000..9ab2b83d0 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using ChainSafe.Gaming.Evm.Providers; +using ChainSafe.Gaming.Evm.Transactions; +using ChainSafe.Gaming.InProcessSigner; +using ChainSafe.Gaming.InProcessTransactionExecutor; +using ChainSafe.GamingSdk.Web3Auth; + +public class Web3AuthTransactionExecutor : InProcessTransactionExecutor, IWeb3AuthTransactionHandler +{ + public event Action OnTransactionRequested; + + public event Action OnTransactionConfirmed; + + private readonly Dictionary> _transactionPool = + new Dictionary>(); + + public Web3AuthTransactionExecutor(AccountProvider accountProvider, IRpcProvider rpcProvider) : base(accountProvider, rpcProvider) + { + } + + public override Task SendTransaction(TransactionRequest transaction) + { + string id = Guid.NewGuid().ToString(); + + var request = new TransactionRequested(id, transaction); + + var tcs = new TaskCompletionSource(); + + _transactionPool.Add(request, tcs); + + RequestTransaction(request); + + return tcs.Task; + } + + public void RequestTransaction(TransactionRequested transactionRequested) + { + OnTransactionRequested?.Invoke(transactionRequested); + } + + public void ConfirmTransaction(TransactionConfirmed transactionConfirmed) + { + OnTransactionConfirmed?.Invoke(transactionConfirmed); + } + + public async void ApproveTransaction(TransactionApproved transactionApproved) + { + var pair = _transactionPool.Single(t => t.Key.Id == transactionApproved.Id); + + var response = await base.SendTransaction(pair.Key.Transaction); + + pair.Value.SetResult(response); + + ConfirmTransaction(new TransactionConfirmed(response)); + } + + public void DeclineTransaction(TransactionDeclined transactionDeclined) + { + var pair = _transactionPool.Single(t => t.Key.Id == transactionDeclined.Id); + + pair.Value.SetCanceled(); + } +} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs.meta new file mode 100644 index 000000000..88efcacc1 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0d28ef6f350480042b13aa99207a6401 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs deleted file mode 100644 index 58acfc6ee..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using ChainSafe.Gaming.Evm.Transactions; - -namespace ChainSafe.GamingSdk.Web3Auth -{ - public class Web3AuthTransactionHandler : IWeb3AuthTransactionHandler - { - public event Action OnTransactionRequested; - - public event Action OnTransactionConfirmed; - - public event Action OnTransactionApproved; - - public event Action OnTransactionDeclined; - - public void RequestTransaction(TransactionRequested transactionRequested) - { - OnTransactionRequested?.Invoke(transactionRequested); - } - - public void ConfirmTransaction(TransactionConfirmed transactionConfirmed) - { - OnTransactionConfirmed?.Invoke(transactionConfirmed); - } - - public void ApproveTransaction(TransactionApproved transactionApproved) - { - OnTransactionApproved?.Invoke(transactionApproved); - } - - public void DeclineTransaction(TransactionDeclined transactionDeclined) - { - OnTransactionDeclined?.Invoke(transactionDeclined); - } - } -} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs.meta deleted file mode 100644 index f0213295f..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionHandler.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 4e8795100f1f43cf9df164552a3fd166 -timeCreated: 1718955415 \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs deleted file mode 100644 index ac91c0d46..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs +++ /dev/null @@ -1,200 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using ChainSafe.Gaming.Evm.Providers; -using ChainSafe.Gaming.Evm.Signers; -using ChainSafe.Gaming.Evm.Transactions; -using ChainSafe.Gaming.InProcessSigner; -using ChainSafe.Gaming.InProcessTransactionExecutor; -using ChainSafe.Gaming.Web3; -using ChainSafe.Gaming.Web3.Analytics; -using ChainSafe.Gaming.Web3.Core; -using ChainSafe.Gaming.Web3.Core.Evm; -using Nethereum.JsonRpc.Client; -using Nethereum.Signer; -using UnityEngine; -using Object = UnityEngine.Object; -using TWeb3Auth = Web3Auth; - -namespace ChainSafe.GamingSdk.Web3Auth -{ - /// - /// A class that represents a Web3Auth wallet and provides functionality for signing transactions and interacting with a blockchain. - /// - public class Web3AuthWallet : ISigner, ITransactionExecutor, ILifecycleParticipant - { - private readonly Web3AuthWalletConfig config; - private readonly IRpcProvider rpcProvider; - private TWeb3Auth coreInstance; - private InProcessSigner signer; - private InProcessTransactionExecutor transactionExecutor; - private IClient rpcClient; - private readonly IAnalyticsClient analyticsClient; - private readonly IWeb3AuthTransactionHandler transactionHandler; - - /// - /// Initializes a new instance of the class. - /// - /// The configuration for the Web3Auth wallet. - /// The RPC provider for blockchain interaction. - /// - /// - public Web3AuthWallet(Web3AuthWalletConfig config, IRpcProvider rpcProvider, IClient rpcClient, IWeb3AuthTransactionHandler transactionHandler, IAnalyticsClient analyticsClient) - { - this.config = config; - this.rpcProvider = rpcProvider; - this.rpcClient = rpcClient; - this.analyticsClient = analyticsClient; - - this.transactionHandler = transactionHandler; - } - - /// - /// Gets the blockchain address associated with this wallet. - /// - public string PublicAddress => signer.PublicAddress; - - /// - /// Gets key. - /// - public string Key => signer.GetKey().GetPrivateKey(); - - private readonly Dictionary> _transactionPool = - new Dictionary>(); - - /// - /// Asynchronously prepares the Web3Auth wallet for operation, triggered when initializing the module in the dependency injection work flow. - /// - /// A representing the asynchronous operation. - public async ValueTask WillStartAsync() - { - - analyticsClient.CaptureEvent(new AnalyticsEvent() - { - EventName = $"Web3Auth Initialized", - PackageName = "io.chainsafe.web3-unity.web3auth", - }); - coreInstance = CreateCoreInstance(); - TaskCompletionSource loginTcs = new(); - coreInstance.onLogin += Web3Auth_OnLogin; - - if (config.LoginParams != null) coreInstance.login(config.LoginParams); - - var privateKeyString = await loginTcs.Task; - var privateKey = new EthECKey(privateKeyString); - - var signerConfig = new InProcessSignerConfig { PrivateKey = privateKey }; - - signer = new InProcessSigner(signerConfig); - - - transactionExecutor = new InProcessTransactionExecutor(signer, analyticsClient.ChainConfig, rpcProvider, rpcClient); - - transactionHandler.OnTransactionApproved += OnTransactionApproved; - transactionHandler.OnTransactionDeclined += OnTransactionDeclined; - - void Web3Auth_OnLogin(Web3AuthResponse response) - { - coreInstance.onLogin -= Web3Auth_OnLogin; - loginTcs.SetResult(response.privKey); - } - } - - /// - /// Asynchronously cleans up the Web3Auth wallet and logs out. - /// - /// A representing the asynchronous operation. - public async ValueTask WillStopAsync() - { - TaskCompletionSource logoutTcs = new(); - coreInstance.onLogout += Web3Auth_OnLogout; - coreInstance.logout(); - - await logoutTcs.Task; - - coreInstance.onLogout -= Web3Auth_OnLogout; - - Object.Destroy(coreInstance.gameObject); - - transactionHandler.OnTransactionApproved += OnTransactionApproved; - transactionHandler.OnTransactionDeclined += OnTransactionDeclined; - - void Web3Auth_OnLogout() - { - logoutTcs.SetResult(null); - } - } - - /// - /// Signs a message using the private key associated with this wallet. - /// - /// The message to sign. - /// A that represents the asynchronous operation and returns the signature as a string. - public Task SignMessage(string message) => signer.SignMessage(message); - - /// - /// Signs an ERC2771 typed data request using the private key associated with this wallet. - /// - /// The type of the structured data to sign. - /// The domain information for the typed data. - /// The structured data to sign. - /// A that represents the asynchronous operation and returns the signature as a string. - public Task SignTypedData(SerializableDomain domain, TStructData message) => signer.SignTypedData(domain, message); - - /// - /// Sends a blockchain transaction using the private key associated with this wallet. - /// - /// The transaction request to send. - /// A that represents the asynchronous operation and returns a . - public Task SendTransaction(TransactionRequest transaction) - { - string id = Guid.NewGuid().ToString(); - - var request = new TransactionRequested(id, transaction); - - var tcs = new TaskCompletionSource(); - - _transactionPool.Add(request, tcs); - - transactionHandler.RequestTransaction(request); - - return tcs.Task; - } - - public async void OnTransactionApproved(TransactionApproved transactionApproved) - { - var pair = _transactionPool.Single(t => t.Key.Id == transactionApproved.Id); - - var response = await transactionExecutor.SendTransaction(pair.Key.Transaction); - - pair.Value.SetResult(response); - - transactionHandler.ConfirmTransaction(new TransactionConfirmed(response)); - - } - - public void OnTransactionDeclined(TransactionDeclined transactionDeclined) - { - var pair = _transactionPool.Single(t => t.Key.Id == transactionDeclined.Id); - - pair.Value.SetCanceled(); - } - - /// - /// Creates core instance. - /// - /// Core instance. - private TWeb3Auth CreateCoreInstance() - { - Debug.Log("Creating Core Instance"); - var gameObject = new GameObject("Web3Auth", typeof(TWeb3Auth)); - Object.DontDestroyOnLoad(gameObject); - - var instance = gameObject.GetComponent(); - instance.setOptions(config.Web3AuthOptions, config.RememberMe); - - return instance; - } - } -} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs index 492733d91..afd485548 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs @@ -1,7 +1,10 @@ using ChainSafe.Gaming.Evm.Signers; +using ChainSafe.Gaming.InProcessSigner; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Core; using ChainSafe.Gaming.Web3.Core.Evm; +using ChainSafe.Gaming.Web3.Core.Logout; +using ChainSafe.Gaming.Web3.Evm.Wallet; using ChainSafe.GamingSdk.Web3Auth; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -34,9 +37,13 @@ public static IWeb3ServiceCollection UseWeb3AuthWallet(this IWeb3ServiceCollecti collection.AssertServiceNotBound(); collection.AssertServiceNotBound(); - collection.AddSingleton(); - - collection.AddSingleton(); + collection.AddSingleton(); + + collection.Replace(ServiceDescriptor.Singleton(typeof(AccountProvider), new AccountProvider())); + + collection.AddSingleton(); + + collection.AddSingleton(); return collection; } diff --git a/Packages/io.chainsafe.web3-unity/Tests/Runtime/StubWalletConnectProvider.cs b/Packages/io.chainsafe.web3-unity/Tests/Runtime/StubWalletConnectProvider.cs index 658a83386..f400e5675 100644 --- a/Packages/io.chainsafe.web3-unity/Tests/Runtime/StubWalletConnectProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Tests/Runtime/StubWalletConnectProvider.cs @@ -15,11 +15,11 @@ public class StubWalletConnectProvider : WalletProvider private readonly IChainConfig chainConfig; private readonly IHttpClient httpClient; - public StubWalletConnectProvider(StubWalletConnectProviderConfig config, IHttpClient httpClient, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(chainRegistryProvider: chainRegistryProvider) + public StubWalletConnectProvider(StubWalletConnectProviderConfig config, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(environment, chainRegistryProvider, chainConfig) { this.config = config; this.chainConfig = chainConfig; - this.httpClient = httpClient; + httpClient = environment.HttpClient; } public override Task Connect() @@ -33,30 +33,25 @@ public override Task Disconnect() return Task.CompletedTask; } - public override Task Perform(string method, params object[] parameters) + public override async Task Request(string method, params object[] parameters) { switch (method) { - case "personal_sign": case "eth_signTypedData": case "eth_sendTransaction": - return Task.FromResult((T)Convert.ChangeType(config.StubResponse, typeof(T))); + case "personal_sign" : case "eth_signTypedData": case "eth_sendTransaction": + return (T) Convert.ChangeType(config.StubResponse, typeof(T)); default: - return Request(method, parameters); - } - } - - // Direct RPC request via WalletConnect RPC url. - private async Task Request(string method, params object[] parameters) - { - // Using WalletConnect Blockchain API: https://docs.walletconnect.com/cloud/blockchain-api - var url = $"https://rpc.walletconnect.com/v1?chainId=eip155:{chainConfig.ChainId}&projectId={config.ProjectId}"; + // Direct RPC request via WalletConnect RPC url. + // Using WalletConnect Blockchain API: https://docs.walletconnect.com/cloud/blockchain-api + var url = $"https://rpc.walletconnect.com/v1?chainId=eip155:{chainConfig.ChainId}&projectId={config.ProjectId}"; - string body = JsonConvert.SerializeObject(new RpcRequestMessage(Guid.NewGuid().ToString(), method, parameters)); + string body = JsonConvert.SerializeObject(new RpcRequestMessage(Guid.NewGuid().ToString(), method, parameters)); - var rawResult = await httpClient.PostRaw(url, body, "application/json"); + var rawResult = await httpClient.PostRaw(url, body, "application/json"); - RpcResponseMessage response = JsonConvert.DeserializeObject(rawResult.Response); + RpcResponseMessage response = JsonConvert.DeserializeObject(rawResult.Response); - return response.Result.ToObject(); + return response.Result.ToObject(); + } } } } \ No newline at end of file diff --git a/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs b/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs index b2f34687d..350a37738 100644 --- a/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs +++ b/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs @@ -24,7 +24,7 @@ public class HyperPlayProvider : WalletProvider private readonly IHyperPlayConfig config; private readonly IHyperPlayData data; private readonly DataStorage dataStorage; - private readonly IHttpClient httpClient; + private readonly Web3Environment environment; private readonly IChainConfig chainConfig; /// @@ -32,17 +32,17 @@ public class HyperPlayProvider : WalletProvider /// /// Injected . /// Injected . - /// Injected . - /// HttpClient to make requests. + /// Injected . + /// Injected . /// ChainConfig to fetch chain data. /// Injected . - public HyperPlayProvider(IHyperPlayConfig config, IHyperPlayData data, DataStorage dataStorage, IHttpClient httpClient, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) - : base(chainRegistryProvider: chainRegistryProvider) + public HyperPlayProvider(IHyperPlayConfig config, IHyperPlayData data, DataStorage dataStorage, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) + : base(environment, chainRegistryProvider, chainConfig) { this.config = config; this.data = data; this.dataStorage = dataStorage; - this.httpClient = httpClient; + this.environment = environment; this.chainConfig = chainConfig; } @@ -97,7 +97,7 @@ public override Task Disconnect() /// 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) { string body = JsonConvert.SerializeObject(new HyperPlayRequest { @@ -112,7 +112,7 @@ public override async Task Perform(string method, params object[] paramete }, }); - string response = (await httpClient.PostRaw(config.Url, body, "application/json")).Response; + string response = (await environment.HttpClient.PostRaw(config.Url, body, "application/json")).Response; // In case response is just a primitive type like string/number... // Deserializing it directly doesn't work. diff --git a/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs b/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs new file mode 100644 index 000000000..d90988f57 --- /dev/null +++ b/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs @@ -0,0 +1,14 @@ +using Nethereum.Web3.Accounts; + +namespace ChainSafe.Gaming.InProcessSigner +{ + public class AccountProvider + { + public Account Account { get; private set; } = null!; + + public void Initialize(Account account) + { + Account = account; + } + } +} \ No newline at end of file diff --git a/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs b/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs index 51d6d045c..e95570357 100644 --- a/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs +++ b/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs @@ -1,12 +1,15 @@ -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; using ChainSafe.Gaming.Evm.Signers; using ChainSafe.Gaming.Web3; -using ChainSafe.Gaming.Web3.Core; using ChainSafe.Gaming.Web3.Core.Evm; using Nethereum.ABI.EIP712; using Nethereum.ABI.FunctionEncoding.Attributes; -using Nethereum.Signer; -using Nethereum.Signer.EIP712; +using Nethereum.Hex.HexConvertors.Extensions; +using Nethereum.Util; +using Nethereum.Web3.Accounts; +using Newtonsoft.Json; namespace ChainSafe.Gaming.InProcessSigner { @@ -15,34 +18,43 @@ namespace ChainSafe.Gaming.InProcessSigner /// public class InProcessSigner : ISigner { - private readonly EthECKey privateKey; - private readonly EthereumMessageSigner messageSigner; + private readonly AccountProvider accountProvider; /// /// Initializes a new instance of the class. /// - /// Injected Config for signer containing a private key. /// Throws Exception if initializing instance fails. - public InProcessSigner(InProcessSignerConfig config) + public InProcessSigner(AccountProvider accountProvider) { - privateKey = config.PrivateKey ?? - throw new Web3Exception($"{nameof(InProcessSignerConfig)}.{nameof(InProcessSignerConfig.PrivateKey)} must be set"); - messageSigner = new(); + this.accountProvider = accountProvider; } + private Account Account => accountProvider.Account; + /// - /// Implementation of using In Process. + /// Public Address. /// /// Public address of signer. - public string PublicAddress => privateKey.GetPublicAddress(); + public string PublicAddress => Account.Address; /// /// Implementation of using In Process. /// /// Message to be signed. /// Hash response of a successfully signed message. - public Task SignMessage(string message) => - Task.FromResult(messageSigner.EncodeUTF8AndSign(message, privateKey)); + public async Task SignMessage(string message) + { + var byteList = new List(); + var bytePrefix = "0x19".HexToByteArray(); + var textBytePrefix = Encoding.UTF8.GetBytes("Ethereum Signed Message:\n" + message.Length); + + byteList.AddRange(bytePrefix); + byteList.AddRange(textBytePrefix); + byteList.AddRange(Encoding.UTF8.GetBytes(message)); + var hash = new Sha3Keccack().CalculateHash(byteList.ToArray()); + + return await Account.AccountSigningService.PersonalSign.SendRequestAsync(hash); + } /// /// Implementation of using In Process. @@ -51,7 +63,7 @@ public Task SignMessage(string message) => /// Message/Data to be signed. /// Type of Data to be signed. /// Hash response of a successfully signed typed data. - public Task SignTypedData(SerializableDomain domain, TStructType message) + public async Task SignTypedData(SerializableDomain domain, TStructType message) { var primaryType = typeof(TStructType).Name; if (StructAttribute.IsStructType(message)) @@ -66,13 +78,8 @@ public Task SignTypedData(SerializableDomain domain, TStruc Types = MemberDescriptionFactory.GetTypesMemberDescription(typeof(SerializableDomain), typeof(TStructType)), Message = MemberValueFactory.CreateFromMessage(message), }; - return Task.FromResult(Eip712TypedDataSigner.Current.SignTypedDataV4(typedData, privateKey)); - } - /// - /// Get private key of . - /// - /// Private key of . - public EthECKey GetKey() => privateKey; + return await Account.AccountSigningService.SignTypedDataV4.SendRequestAsync(JsonConvert.SerializeObject(typedData)); + } } } diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs index b2083d10c..8394431ae 100644 --- a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs +++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs @@ -3,14 +3,13 @@ using ChainSafe.Gaming.Evm.Providers; using ChainSafe.Gaming.Evm.Signers; using ChainSafe.Gaming.Evm.Transactions; +using ChainSafe.Gaming.InProcessSigner; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Core.Evm; using Nethereum.Hex.HexTypes; using Nethereum.JsonRpc.Client; using Nethereum.RPC.Eth.DTOs; using Nethereum.Web3.Accounts; -using NIpcClient = Nethereum.JsonRpc.IpcClient.IpcClient; -using NWeb3 = Nethereum.Web3.Web3; namespace ChainSafe.Gaming.InProcessTransactionExecutor { @@ -20,45 +19,22 @@ namespace ChainSafe.Gaming.InProcessTransactionExecutor public class InProcessTransactionExecutor : ITransactionExecutor { private readonly IRpcProvider rpcProvider; - private readonly string accountAddress; - - private NWeb3 web3; + private readonly AccountProvider accountProvider; /// /// Initializes a new instance of the class. /// - /// Injected . - /// Injected . + /// Injected . /// Injected . - /// Injected . /// Throws exception if initializing instance fails. - public InProcessTransactionExecutor(ISigner signer, IChainConfig chainConfig, IRpcProvider rpcProvider, IClient rpcClient) + public InProcessTransactionExecutor(AccountProvider accountProvider, IRpcProvider rpcProvider) { - // It should be possible to set up other signers to work with this as well. - // However, does it make sense to let a remote wallet sign a transaction, but - // broadcast it locally? I think not. - var privateKey = (signer as InProcessSigner.InProcessSigner)?.GetKey() ?? - throw new Web3Exception($"{nameof(InProcessTransactionExecutor)} only supports {nameof(InProcessSigner.InProcessSigner)}"); - accountAddress = privateKey.GetPublicAddress(); - var account = new Account(privateKey); - - if (chainConfig.Rpc is not null && !string.Empty.Equals(chainConfig.Rpc)) - { - web3 = new NWeb3(account, rpcClient); - } - else if (chainConfig.Ipc is not null && !string.Empty.Equals(chainConfig.Ipc)) - { - var client = new NIpcClient(chainConfig.Rpc); - web3 = new NWeb3(client); - } - else - { - throw new Web3Exception($"{nameof(IChainConfig)} should have at least one communication method set."); - } - this.rpcProvider = rpcProvider; + this.accountProvider = accountProvider; } + private Account Account => accountProvider.Account; + /// /// Implementation of . /// Send a transaction using Wallet Connect. @@ -67,11 +43,11 @@ public InProcessTransactionExecutor(ISigner signer, IChainConfig chainConfig, IR /// Transaction to send. /// Hash response of a successfully executed transaction. /// Throws Exception if executing transaction fails. - public async Task SendTransaction(TransactionRequest transaction) + public virtual async Task SendTransaction(TransactionRequest transaction) { if (string.IsNullOrEmpty(transaction.From)) { - transaction.From = accountAddress; + transaction.From = Account.Address; } if (transaction.GasPrice == null && transaction.MaxFeePerGas == null) @@ -107,9 +83,9 @@ public async Task SendTransaction(TransactionRequest transa try { - var signedTransaction = await web3.TransactionManager.SignTransactionAsync(txInput); - var txHash = await web3.Eth.Transactions.SendRawTransaction.SendRequestAsync(signedTransaction); - return await rpcProvider.GetTransaction(txHash); + var receipt = await Account.TransactionManager.SendTransactionAndWaitForReceiptAsync(txInput); + + return await rpcProvider.GetTransaction(receipt.TransactionHash); } catch (Exception ex) { diff --git a/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs b/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs index 6810199f7..cfc9f901c 100644 --- a/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs +++ b/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs @@ -24,23 +24,20 @@ public class MetaMaskProvider : WalletProvider /// /// Initializes a new instance of the class. /// - /// Common Logger used for logging messages and errors. + /// Injected . /// Injected . - /// Injected . /// Injected . - /// Injected . - public MetaMaskProvider(ILogWriter logWriter, IAnalyticsClient analyticsClient, IChainConfig chainConfig, IProjectConfig projectConfig, ChainRegistryProvider chainRegistryProvider) - : base( - chainRegistryProvider: chainRegistryProvider) + public MetaMaskProvider(Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) + : base(environment, chainRegistryProvider, chainConfig) { - this.logWriter = logWriter; + logWriter = environment.LogWriter; this.chainConfig = chainConfig; - this.analyticsClient = analyticsClient; + analyticsClient = environment.AnalyticsClient; this.chainRegistryProvider = chainRegistryProvider; if (Application.isEditor || Application.platform != RuntimePlatform.WebGLPlayer) { - this.logWriter.LogError("You need to build to WebGL platform to run Nethereum.Metamask.Unity"); + logWriter.LogError("You need to build to WebGL platform to run Nethereum.Metamask.Unity"); return; } @@ -65,7 +62,7 @@ public override Task Disconnect() return Task.CompletedTask; } - public override async Task Perform(string method, params object[] parameters) + public override async Task Request(string method, params object[] parameters) { var response = await metaMaskController.Request(method, parameters); diff --git a/src/ChainSafe.Gaming.WalletConnect/WalletConnectProvider.cs b/src/ChainSafe.Gaming.WalletConnect/WalletConnectProvider.cs index fab8f6531..125eb5ebc 100644 --- a/src/ChainSafe.Gaming.WalletConnect/WalletConnectProvider.cs +++ b/src/ChainSafe.Gaming.WalletConnect/WalletConnectProvider.cs @@ -55,25 +55,22 @@ public class WalletConnectProvider : WalletProvider, ILifecycleParticipant, ICon public WalletConnectProvider( IWalletConnectConfig config, DataStorage storage, - ILogWriter logWriter, IChainConfig chainConfig, - IOperatingSystemMediator osMediator, IWalletRegistry walletRegistry, RedirectionHandler redirection, - IHttpClient httpClient, - IAnalyticsClient analyticsClient, + Web3Environment environment, ChainRegistryProvider chainRegistryProvider) - : base(chainRegistryProvider: chainRegistryProvider) + : base(environment, chainRegistryProvider, chainConfig) { - this.analyticsClient = analyticsClient; + analyticsClient = environment.AnalyticsClient; this.redirection = redirection; this.walletRegistry = walletRegistry; - this.osMediator = osMediator; + osMediator = environment.OperatingSystem; this.chainConfig = chainConfig; this.storage = storage; this.config = config; - this.logWriter = logWriter; - this.httpClient = httpClient; + logWriter = environment.LogWriter; + httpClient = environment.HttpClient; } public bool StoredSessionAvailable => localData.SessionTopic != null; @@ -351,7 +348,7 @@ private async Task RenewSession() WCLogger.Log("Renewed session successfully."); } - public override async Task Perform(string method, params object[] parameters) + public override async Task Request(string method, params object[] parameters) { if (!connected) { @@ -488,7 +485,19 @@ async Task MakeRequest() default: try { - return await Request(method, parameters); + // Direct RPC request via http, WalletConnect RPC url. + string chain = session.Namespaces.First().Value.Chains[0]; + + // Using WalletConnect Blockchain API: https://docs.walletconnect.com/cloud/blockchain-api + var url = $"https://rpc.walletconnect.com/v1?chainId={chain}&projectId={config.ProjectId}"; + + string body = JsonConvert.SerializeObject(new RpcRequestMessage(Guid.NewGuid().ToString(), method, parameters)); + + var rawResult = await httpClient.PostRaw(url, body, "application/json"); + + RpcResponseMessage response = JsonConvert.DeserializeObject(rawResult.Response); + + return response.Result.ToObject(); } catch (Exception e) { @@ -496,22 +505,5 @@ async Task MakeRequest() } } } - - // Direct RPC request via WalletConnect RPC url. - private async Task Request(string method, params object[] parameters) - { - string chain = session.Namespaces.First().Value.Chains[0]; - - // Using WalletConnect Blockchain API: https://docs.walletconnect.com/cloud/blockchain-api - var url = $"https://rpc.walletconnect.com/v1?chainId={chain}&projectId={config.ProjectId}"; - - string body = JsonConvert.SerializeObject(new RpcRequestMessage(Guid.NewGuid().ToString(), method, parameters)); - - var rawResult = await httpClient.PostRaw(url, body, "application/json"); - - RpcResponseMessage response = JsonConvert.DeserializeObject(rawResult.Response); - - return response.Result.ToObject(); - } } } \ No newline at end of file diff --git a/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs b/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs index d938cd672..017e2c744 100644 --- a/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs +++ b/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs @@ -1,3 +1,4 @@ +using ChainSafe.Gaming.LocalStorage; using ChainSafe.Gaming.Web3.Analytics; namespace ChainSafe.Gaming.Web3.Environment diff --git a/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientConfig.cs b/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientConfig.cs deleted file mode 100644 index ec6d7da60..000000000 --- a/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientConfig.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace ChainSafe.Gaming.Evm.Providers -{ - [Serializable] - public class RpcClientConfig - { - /// - /// (Optional) Url of RPC Node. - /// - public string RpcNodeUrl { get; set; } - } -} \ No newline at end of file diff --git a/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientExtensions.cs b/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientExtensions.cs index a9438e58d..339034b6e 100644 --- a/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientExtensions.cs +++ b/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientExtensions.cs @@ -9,29 +9,6 @@ namespace ChainSafe.Gaming.Evm.JsonRpc { public static class RpcClientExtensions { - private static readonly RpcClientConfig DefaultClientConfig = new(); - - /// - /// Binds JSON RPC implementation of EVM Provider to Web3. - /// - /// The same service collection that was passed in. This enables fluent style. - public static IWeb3ServiceCollection UseRpcProvider(this IWeb3ServiceCollection collection, RpcClientConfig config) - { - collection.ConfigureRpcProvider(config); - collection.UseRpcProvider(); - return collection; - } - - /// - /// Configures JSON RPC implementation of EVM Provider. - /// - /// The same service collection that was passed in. This enables fluent style. - public static IWeb3ServiceCollection ConfigureRpcProvider(this IWeb3ServiceCollection collection, RpcClientConfig config) - { - collection.Replace(ServiceDescriptor.Singleton(config)); - return collection; - } - /// /// Binds JSON RPC implementation of EVM Provider to Web3. /// @@ -39,7 +16,6 @@ public static IWeb3ServiceCollection ConfigureRpcProvider(this IWeb3ServiceColle public static IWeb3ServiceCollection UseRpcProvider(this IWeb3ServiceCollection collection) { collection.AssertServiceNotBound(); - collection.TryAddSingleton(DefaultClientConfig); collection.AddSingleton(); collection.AssertServiceNotBound(); diff --git a/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientProvider.cs b/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientProvider.cs index 0c3ea01e7..e2125416e 100644 --- a/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientProvider.cs +++ b/src/ChainSafe.Gaming/Web3/Evm/JsonRpc/RpcClientProvider.cs @@ -14,57 +14,45 @@ namespace ChainSafe.Gaming.Evm.Providers { public class RpcClientProvider : ClientBase, IRpcProvider, ILifecycleParticipant { - private readonly RpcClientConfig config; + private readonly string rpcNodeUrl; private readonly Web3Environment environment; private readonly ChainRegistryProvider chainRegistryProvider; private readonly IChainConfig chainConfig; - private Network.Network network; - public RpcClientProvider( - RpcClientConfig config, Web3Environment environment, ChainRegistryProvider chainRegistryProvider, IChainConfig chainConfig) { this.chainRegistryProvider = chainRegistryProvider; this.environment = environment; - this.config = config; this.chainConfig = chainConfig; - - if (string.IsNullOrEmpty(this.config.RpcNodeUrl)) - { - this.config.RpcNodeUrl = chainConfig.Rpc; - } + rpcNodeUrl = chainConfig.Rpc; } - public Network.Network LastKnownNetwork - { - get => network; - protected set => network = value; - } + public Network.Network LastKnownNetwork { get; private set; } public async ValueTask WillStartAsync() { - if (network is null || network.ChainId == 0) + if (LastKnownNetwork is null || LastKnownNetwork.ChainId == 0) { if (ulong.TryParse(chainConfig.ChainId, out var chainId)) { var chain = await chainRegistryProvider.GetChain(chainId); - network = new Network.Network() + LastKnownNetwork = new Network.Network() { ChainId = chainId, Name = chain?.Name, }; } - network = await RefreshNetwork(); + LastKnownNetwork = await RefreshNetwork(); } } public ValueTask WillStopAsync() => new(Task.CompletedTask); - public async Task DetectNetwork() + public async Task RefreshNetwork() { // TODO: cache var chainIdHexString = await Perform("eth_chainId"); @@ -75,25 +63,17 @@ public async ValueTask WillStartAsync() throw new Web3Exception("Couldn't detect network"); } + if (chainId == LastKnownNetwork.ChainId) + { + return LastKnownNetwork; + } + var chain = await chainRegistryProvider.GetChain(chainId); return chain != null ? new Network.Network { Name = chain.Name, ChainId = chainId } : new Network.Network { Name = "Unknown", ChainId = chainId }; } - public async Task RefreshNetwork() - { - var currentNetwork = await DetectNetwork(); - - if (network != null && network.ChainId == currentNetwork.ChainId) - { - return network; - } - - network = currentNetwork; - return network; - } - public async Task Perform(string method, params object[] parameters) { // parameters should be skipped or be an empty array if there are none @@ -142,7 +122,7 @@ protected override async Task SendAsync(RpcRequestMessage[ private async Task SendAsyncInternally(string body) { - var result = await environment.HttpClient.PostRaw(config.RpcNodeUrl, body, "application/json"); + var result = await environment.HttpClient.PostRaw(rpcNodeUrl, body, "application/json"); return JsonConvert.DeserializeObject(result.Response); } diff --git a/src/ChainSafe.Gaming/Web3/Evm/Wallet/IWalletProvider.cs b/src/ChainSafe.Gaming/Web3/Evm/Wallet/IWalletProvider.cs index 28f97190a..5b30f9bbb 100644 --- a/src/ChainSafe.Gaming/Web3/Evm/Wallet/IWalletProvider.cs +++ b/src/ChainSafe.Gaming/Web3/Evm/Wallet/IWalletProvider.cs @@ -19,5 +19,7 @@ public interface IWalletProvider : IRpcProvider /// /// Awaitable disconnect Task. Task Disconnect(); + + Task Request(string method, params object[] parameters); } } \ No newline at end of file diff --git a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs index 933db7f74..b3f62237c 100644 --- a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs +++ b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs @@ -2,6 +2,7 @@ using ChainSafe.Gaming.Evm; using ChainSafe.Gaming.Evm.Network; using ChainSafe.Gaming.Evm.Providers; +using ChainSafe.Gaming.Web3.Environment; using Nethereum.Hex.HexTypes; namespace ChainSafe.Gaming.Web3.Evm.Wallet @@ -9,43 +10,23 @@ namespace ChainSafe.Gaming.Web3.Evm.Wallet /// /// Concrete implementation of . /// - public abstract class WalletProvider : IWalletProvider + public abstract class WalletProvider : RpcClientProvider, IWalletProvider { - private readonly ChainRegistryProvider chainRegistryProvider; - /// /// Initializes a new instance of the class. /// + /// Injected . /// Injected . - protected WalletProvider(ChainRegistryProvider chainRegistryProvider) - { - this.chainRegistryProvider = chainRegistryProvider; - } - - public Network LastKnownNetwork { get; private set; } - - async Task IRpcProvider.RefreshNetwork() + /// Injected . + protected WalletProvider(Web3Environment environment, ChainRegistryProvider chainRegistryProvider, IChainConfig chainConfig) + : base(environment, chainRegistryProvider, chainConfig) { - string chainIdHex = await Perform("eth_chainId"); - - ulong chainId = new HexBigInteger(chainIdHex).ToUlong(); - - if (chainId <= 0) - { - throw new Web3Exception("Couldn't detect network."); - } - - var chain = await chainRegistryProvider.GetChain(chainId); - - return chain != null - ? new Network { Name = chain.Name, ChainId = chainId } - : new Network { Name = "Unknown", ChainId = chainId }; } public abstract Task Connect(); public abstract Task Disconnect(); - public abstract Task Perform(string method, params object[] parameters); + public abstract Task Request(string method, params object[] parameters); } } \ No newline at end of file diff --git a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletSigner.cs b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletSigner.cs index f2b6931e9..cd81ed8f9 100644 --- a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletSigner.cs +++ b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletSigner.cs @@ -33,7 +33,7 @@ public virtual async ValueTask WillStartAsync() public virtual async Task SignMessage(string message) { - string hash = await walletProvider.Perform(walletConfig.SignMessageRpcMethodName, message, PublicAddress); + string hash = await walletProvider.Request(walletConfig.SignMessageRpcMethodName, message, PublicAddress); return hash.AssertSignatureValid(message, PublicAddress); } @@ -42,7 +42,7 @@ public virtual async Task SignTypedData(SerializableDomain { SerializableTypedData typedData = new SerializableTypedData(domain, message); - string hash = await walletProvider.Perform(walletConfig.SignTypedMessageRpcMethodName, PublicAddress, typedData); + string hash = await walletProvider.Request(walletConfig.SignTypedMessageRpcMethodName, PublicAddress, typedData); return hash.AssertTypedDataSignatureValid(typedData, PublicAddress); } diff --git a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletTransactionExecutor.cs b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletTransactionExecutor.cs index 5974a645c..ba651b192 100644 --- a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletTransactionExecutor.cs +++ b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletTransactionExecutor.cs @@ -32,7 +32,7 @@ public async Task SendTransaction(TransactionRequest transa transaction.From ??= signer.PublicAddress; transaction.Data ??= "0x"; - string hash = await walletProvider.Perform("eth_sendTransaction", transaction.ToTransactionInput()); + string hash = await walletProvider.Request("eth_sendTransaction", transaction.ToTransactionInput()); hash = hash.AssertTransactionValid(); From 23a7da27ec451f3e362b3ccc93406e9341f307c6 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 4 Jul 2024 21:52:57 +0300 Subject: [PATCH 02/47] fixed send transaction --- .../Runtime/Web3AuthProvider.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs index ce8b9fafe..8585b552b 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs @@ -53,6 +53,8 @@ public override async Task Connect() var account = new Account(response.privKey); + account.TransactionManager.Client = this; + _accountProvider.Initialize(account); return account.Address; From f7a4bba262e73c2ffce0191da2e1273ccb8b4ac6 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 4 Jul 2024 22:50:43 +0300 Subject: [PATCH 03/47] fixed signing --- .../InProcessSigner.cs | 32 ++----------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs b/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs index e95570357..e8032cc15 100644 --- a/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs +++ b/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs @@ -1,13 +1,8 @@ -using System.Collections.Generic; -using System.Text; +using System.Text; using System.Threading.Tasks; using ChainSafe.Gaming.Evm.Signers; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Core.Evm; -using Nethereum.ABI.EIP712; -using Nethereum.ABI.FunctionEncoding.Attributes; -using Nethereum.Hex.HexConvertors.Extensions; -using Nethereum.Util; using Nethereum.Web3.Accounts; using Newtonsoft.Json; @@ -44,16 +39,7 @@ public InProcessSigner(AccountProvider accountProvider) /// Hash response of a successfully signed message. public async Task SignMessage(string message) { - var byteList = new List(); - var bytePrefix = "0x19".HexToByteArray(); - var textBytePrefix = Encoding.UTF8.GetBytes("Ethereum Signed Message:\n" + message.Length); - - byteList.AddRange(bytePrefix); - byteList.AddRange(textBytePrefix); - byteList.AddRange(Encoding.UTF8.GetBytes(message)); - var hash = new Sha3Keccack().CalculateHash(byteList.ToArray()); - - return await Account.AccountSigningService.PersonalSign.SendRequestAsync(hash); + return await Account.AccountSigningService.PersonalSign.SendRequestAsync(Encoding.UTF8.GetBytes(message)); } /// @@ -65,19 +51,7 @@ public async Task SignMessage(string message) /// Hash response of a successfully signed typed data. public async Task SignTypedData(SerializableDomain domain, TStructType message) { - var primaryType = typeof(TStructType).Name; - if (StructAttribute.IsStructType(message)) - { - primaryType = StructAttribute.GetAttribute(message).Name; - } - - var typedData = new TypedData - { - PrimaryType = primaryType, - Domain = domain, - Types = MemberDescriptionFactory.GetTypesMemberDescription(typeof(SerializableDomain), typeof(TStructType)), - Message = MemberValueFactory.CreateFromMessage(message), - }; + SerializableTypedData typedData = new SerializableTypedData(domain, message); return await Account.AccountSigningService.SignTypedDataV4.SendRequestAsync(JsonConvert.SerializeObject(typedData)); } From 9f88fe338dc668d490b657cd333fe170d7c8f154 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 5 Jul 2024 11:02:54 +0300 Subject: [PATCH 04/47] cleanup and docs --- .../Runtime/IWeb3AuthTransactionHandler.cs | 29 ++++++++---- .../Scripts/Web3AuthWalletGUITxManager.cs | 24 +++++----- .../Runtime/Web3AuthEvents.cs | 47 ------------------- .../Runtime/Web3AuthEvents.cs.meta | 3 -- .../Runtime/Web3AuthProvider.cs | 17 +++++++ .../Runtime/Web3AuthSigner.cs | 4 +- .../Runtime/Web3AuthTransactionExecutor.cs | 45 +++++++----------- .../AccountProvider.cs | 10 ++++ .../InProcessTransactionExecutor.cs | 2 - .../Web3/Core/Environment/Web3Environment.cs | 1 - 10 files changed, 80 insertions(+), 102 deletions(-) delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs.meta diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs index 1e5cfd705..aa96c4a4f 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs @@ -3,18 +3,31 @@ namespace ChainSafe.GamingSdk.Web3Auth { + /// + /// Handles web3Auth Transaction requests, approvals, declines and confirmations. + /// public interface IWeb3AuthTransactionHandler { - public event Action OnTransactionRequested; + /// + /// Invokes when transaction is requested. + /// + public event Action<(string id, TransactionRequest request)> OnTransactionRequested; - public event Action OnTransactionConfirmed; + /// + /// Invokes when transaction is confirmed on block. + /// + public event Action OnTransactionConfirmed; - public void RequestTransaction(TransactionRequested transactionRequested); + /// + /// Transaction got approved. + /// + /// Transaction pool Id of Transaction that was approved. + public void TransactionApproved(string transactionId); - public void ConfirmTransaction(TransactionConfirmed transactionConfirmed); - - public void ApproveTransaction(TransactionApproved transactionApproved); - - public void DeclineTransaction(TransactionDeclined transactionDeclined); + /// + /// 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 2920cdfa0..550f2bd66 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 @@ -34,7 +34,7 @@ public class Web3AuthWalletGUITxManager : MonoBehaviour private bool _processingTransaction; private IWeb3AuthTransactionHandler _transactionHandler; - private Queue _transactionQueue = new Queue(); + private readonly Queue<(string id, TransactionRequest request)> _transactionQueue = new(); #endregion @@ -65,9 +65,9 @@ private void Awake() /// /// Populates the incoming transaction display. /// - private void OnTransactionRequested(TransactionRequested transactionRequested) + private void OnTransactionRequested((string id, TransactionRequest request) args) { - _transactionQueue.Enqueue(transactionRequested); + _transactionQueue.Enqueue(args); if (_processingTransaction) { @@ -84,7 +84,7 @@ private void OnTransactionRequested(TransactionRequested transactionRequested) /// private void PromptTransactionRequest() { - TransactionRequested transactionRequested = _transactionQueue.Peek(); + var transactionRequested = _transactionQueue.Peek(); incomingTxNotification.SetActive(true); @@ -102,8 +102,8 @@ private void PromptTransactionRequest() incomingTxPlaceHolder.SetActive(false); incomingTxDisplay.SetActive(true); - incomingTxHashText.text = transactionRequested.Transaction.Data; - incomingTxActionText.text = transactionRequested.Transaction.Value?.ToString() ?? "Sign Request"; + incomingTxHashText.text = transactionRequested.request.Data; + incomingTxActionText.text = transactionRequested.request.Value?.ToString() ?? "Sign Request"; } /// @@ -111,9 +111,9 @@ private void PromptTransactionRequest() /// private void AcceptRequest() { - TransactionRequested transactionRequested = _transactionQueue.Dequeue(); + var transactionRequested = _transactionQueue.Dequeue(); ShowTxLoadingMenu(); - _transactionHandler.ApproveTransaction(new TransactionApproved(transactionRequested.Id)); + _transactionHandler.TransactionApproved(transactionRequested.id); ResetTransactionDisplay(); } @@ -122,18 +122,16 @@ private void AcceptRequest() /// private void RejectRequest() { - TransactionRequested transactionRequested = _transactionQueue.Dequeue(); - _transactionHandler.DeclineTransaction(new TransactionDeclined(transactionRequested.Id)); + var transactionRequested = _transactionQueue.Dequeue(); + _transactionHandler.TransactionDeclined(transactionRequested.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"; diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs deleted file mode 100644 index 1bdf7f160..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs +++ /dev/null @@ -1,47 +0,0 @@ -using ChainSafe.Gaming.Evm.Transactions; - -namespace ChainSafe.GamingSdk.Web3Auth -{ - public struct TransactionRequested - { - public string Id { get; private set; } - - public TransactionRequest Transaction { get; private set; } - - public TransactionRequested(string id, TransactionRequest transaction) - { - Id = id; - Transaction = transaction; - } - } - - public struct TransactionConfirmed - { - public TransactionResponse Transaction { get; private set; } - - public TransactionConfirmed(TransactionResponse transaction) - { - Transaction = transaction; - } - } - - public struct TransactionApproved - { - public string Id { get; private set; } - - public TransactionApproved(string id) - { - Id = id; - } - } - - public struct TransactionDeclined - { - public string Id { get; private set; } - - public TransactionDeclined(string id) - { - Id = id; - } - } -} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs.meta deleted file mode 100644 index 3c732d5c6..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthEvents.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 96637bb8ac1a4b758de8609db700950f -timeCreated: 1718953740 \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs index 8585b552b..aa11311f5 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs @@ -8,6 +8,9 @@ using Nethereum.Web3.Accounts; using UnityEngine; +/// +/// Web3Auth provider allowing users to connect a Web3Auth wallet. +/// public class Web3AuthProvider : WalletProvider { private readonly Web3AuthWalletConfig _config; @@ -23,6 +26,10 @@ public Web3AuthProvider(Web3AuthWalletConfig config, AccountProvider accountProv _accountProvider = accountProvider; } + /// + /// Connects Web3Auth wallet. + /// + /// Connected Account. public override async Task Connect() { _coreInstance = Object.FindObjectOfType(); @@ -65,6 +72,9 @@ private void OnLogin(Web3AuthResponse response) _connectTcs.SetResult(response); } + /// + /// Disconnect Web3Auth wallet. + /// public override async Task Disconnect() { if (_disconnectTcs != null && !_disconnectTcs.Task.IsCompleted) @@ -88,6 +98,13 @@ void OnLogout() } } + /// + /// Make RPC requests to the Web3Auth wallet. + /// + /// RPC request method. + /// RPC request parameters. + /// Type of response. + /// RPC request response. public override Task Request(string method, params object[] parameters) { return Perform(method, parameters); diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs index dffea3f0e..a49c216b9 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs @@ -3,8 +3,10 @@ using ChainSafe.Gaming.Web3.Core; using ChainSafe.Gaming.Web3.Core.Logout; using ChainSafe.Gaming.Web3.Evm.Wallet; -using UnityEngine; +/// +/// Signs using a Web3Auth wallet. +/// public class Web3AuthSigner : InProcessSigner, ILifecycleParticipant, ILogoutHandler { private readonly IWalletProvider _walletProvider; diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs index 9ab2b83d0..6c35ac006 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs @@ -8,14 +8,16 @@ using ChainSafe.Gaming.InProcessTransactionExecutor; using ChainSafe.GamingSdk.Web3Auth; +/// +/// Send Transaction for Web3Auth wallet. +/// public class Web3AuthTransactionExecutor : InProcessTransactionExecutor, IWeb3AuthTransactionHandler { - public event Action OnTransactionRequested; + public event Action<(string id, TransactionRequest request)> OnTransactionRequested; - public event Action OnTransactionConfirmed; + public event Action OnTransactionConfirmed; - private readonly Dictionary> _transactionPool = - new Dictionary>(); + private readonly Dictionary response)> _transactionPool = new(); public Web3AuthTransactionExecutor(AccountProvider accountProvider, IRpcProvider rpcProvider) : base(accountProvider, rpcProvider) { @@ -25,42 +27,31 @@ public override Task SendTransaction(TransactionRequest tra { string id = Guid.NewGuid().ToString(); - var request = new TransactionRequested(id, transaction); - var tcs = new TaskCompletionSource(); + + // Add transaction to pool. + _transactionPool.Add(id, (transaction, tcs)); - _transactionPool.Add(request, tcs); - - RequestTransaction(request); + OnTransactionRequested?.Invoke((id, transaction)); return tcs.Task; } - public void RequestTransaction(TransactionRequested transactionRequested) - { - OnTransactionRequested?.Invoke(transactionRequested); - } - - public void ConfirmTransaction(TransactionConfirmed transactionConfirmed) - { - OnTransactionConfirmed?.Invoke(transactionConfirmed); - } - - public async void ApproveTransaction(TransactionApproved transactionApproved) + public async void TransactionApproved(string transactionId) { - var pair = _transactionPool.Single(t => t.Key.Id == transactionApproved.Id); + var pair = _transactionPool.Single(t => t.Key == transactionId); - var response = await base.SendTransaction(pair.Key.Transaction); + var response = await base.SendTransaction(pair.Value.request); - pair.Value.SetResult(response); + pair.Value.response.SetResult(response); - ConfirmTransaction(new TransactionConfirmed(response)); + OnTransactionConfirmed?.Invoke(response); } - public void DeclineTransaction(TransactionDeclined transactionDeclined) + public void TransactionDeclined(string transactionId) { - var pair = _transactionPool.Single(t => t.Key.Id == transactionDeclined.Id); + var pair = _transactionPool.Single(t => t.Key == transactionId); - pair.Value.SetCanceled(); + pair.Value.response.SetCanceled(); } } diff --git a/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs b/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs index d90988f57..654e9a0f3 100644 --- a/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs +++ b/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs @@ -2,10 +2,20 @@ namespace ChainSafe.Gaming.InProcessSigner { + /// + /// Provides the current connected account. + /// public class AccountProvider { + /// + /// Current connected account. + /// public Account Account { get; private set; } = null!; + /// + /// Initialized provider with the current connected account. + /// + /// Current connected account. public void Initialize(Account account) { Account = account; diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs index 8394431ae..f2c0e2e63 100644 --- a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs +++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs @@ -1,13 +1,11 @@ using System; using System.Threading.Tasks; using ChainSafe.Gaming.Evm.Providers; -using ChainSafe.Gaming.Evm.Signers; using ChainSafe.Gaming.Evm.Transactions; using ChainSafe.Gaming.InProcessSigner; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Core.Evm; using Nethereum.Hex.HexTypes; -using Nethereum.JsonRpc.Client; using Nethereum.RPC.Eth.DTOs; using Nethereum.Web3.Accounts; diff --git a/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs b/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs index 017e2c744..d938cd672 100644 --- a/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs +++ b/src/ChainSafe.Gaming/Web3/Core/Environment/Web3Environment.cs @@ -1,4 +1,3 @@ -using ChainSafe.Gaming.LocalStorage; using ChainSafe.Gaming.Web3.Analytics; namespace ChainSafe.Gaming.Web3.Environment From 93fd5b3be96263a40e71b135b1e4e7209fa9dace Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 5 Jul 2024 14:47:30 +0300 Subject: [PATCH 05/47] made requested changes --- .../Runtime/IWeb3AuthTransactionHandler.cs | 2 +- .../Scripts/Web3AuthWalletGUITxManager.cs | 20 +++++------ .../Runtime/Web3AuthTransactionExecutor.cs | 35 ++++++++++++------- .../Runtime/Web3AuthWalletExtensions.cs | 2 +- .../Web3/Core/Evm/Dto/TransactionRequest.cs | 3 ++ 5 files changed, 38 insertions(+), 24 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs index aa96c4a4f..9a120b03b 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/IWeb3AuthTransactionHandler.cs @@ -11,7 +11,7 @@ public interface IWeb3AuthTransactionHandler /// /// Invokes when transaction is requested. /// - public event Action<(string id, TransactionRequest request)> OnTransactionRequested; + public event Action OnTransactionRequested; /// /// Invokes when transaction is confirmed on block. 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 550f2bd66..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 @@ -34,7 +34,7 @@ public class Web3AuthWalletGUITxManager : MonoBehaviour private bool _processingTransaction; private IWeb3AuthTransactionHandler _transactionHandler; - private readonly Queue<(string id, TransactionRequest request)> _transactionQueue = new(); + private readonly Queue _transactionQueue = new(); #endregion @@ -65,9 +65,9 @@ private void Awake() /// /// Populates the incoming transaction display. /// - private void OnTransactionRequested((string id, TransactionRequest request) args) + private void OnTransactionRequested(TransactionRequest request) { - _transactionQueue.Enqueue(args); + _transactionQueue.Enqueue(request); if (_processingTransaction) { @@ -84,7 +84,7 @@ private void OnTransactionRequested((string id, TransactionRequest request) args /// private void PromptTransactionRequest() { - var transactionRequested = _transactionQueue.Peek(); + var transaction = _transactionQueue.Peek(); incomingTxNotification.SetActive(true); @@ -102,8 +102,8 @@ private void PromptTransactionRequest() incomingTxPlaceHolder.SetActive(false); incomingTxDisplay.SetActive(true); - incomingTxHashText.text = transactionRequested.request.Data; - incomingTxActionText.text = transactionRequested.request.Value?.ToString() ?? "Sign Request"; + incomingTxHashText.text = transaction.Data; + incomingTxActionText.text = transaction.Value?.ToString() ?? "Sign Request"; } /// @@ -111,9 +111,9 @@ private void PromptTransactionRequest() /// private void AcceptRequest() { - var transactionRequested = _transactionQueue.Dequeue(); + var transaction = _transactionQueue.Dequeue(); ShowTxLoadingMenu(); - _transactionHandler.TransactionApproved(transactionRequested.id); + _transactionHandler.TransactionApproved(transaction.Id); ResetTransactionDisplay(); } @@ -122,8 +122,8 @@ private void AcceptRequest() /// private void RejectRequest() { - var transactionRequested = _transactionQueue.Dequeue(); - _transactionHandler.TransactionDeclined(transactionRequested.id); + var transaction = _transactionQueue.Dequeue(); + _transactionHandler.TransactionDeclined(transaction.Id); ResetTransactionDisplay(); } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs index 6c35ac006..791af882d 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs @@ -6,6 +6,7 @@ using ChainSafe.Gaming.Evm.Transactions; using ChainSafe.Gaming.InProcessSigner; using ChainSafe.Gaming.InProcessTransactionExecutor; +using ChainSafe.Gaming.Web3; using ChainSafe.GamingSdk.Web3Auth; /// @@ -13,7 +14,7 @@ /// public class Web3AuthTransactionExecutor : InProcessTransactionExecutor, IWeb3AuthTransactionHandler { - public event Action<(string id, TransactionRequest request)> OnTransactionRequested; + public event Action OnTransactionRequested; public event Action OnTransactionConfirmed; @@ -25,33 +26,43 @@ public Web3AuthTransactionExecutor(AccountProvider accountProvider, IRpcProvider public override Task SendTransaction(TransactionRequest transaction) { - string id = Guid.NewGuid().ToString(); - + transaction.Id = Guid.NewGuid().ToString(); + var tcs = new TaskCompletionSource(); // Add transaction to pool. - _transactionPool.Add(id, (transaction, tcs)); + _transactionPool.Add(transaction.Id, (transaction, tcs)); - OnTransactionRequested?.Invoke((id, transaction)); + OnTransactionRequested?.Invoke(transaction); return tcs.Task; } public async void TransactionApproved(string transactionId) { - var pair = _transactionPool.Single(t => t.Key == transactionId); - - var response = await base.SendTransaction(pair.Value.request); + if (!_transactionPool.TryGetValue(transactionId, out var transaction)) + { + throw new Web3Exception("Transaction not found in pool."); + } + + var response = await base.SendTransaction(transaction.request); - pair.Value.response.SetResult(response); + transaction.response.SetResult(response); OnTransactionConfirmed?.Invoke(response); + + _transactionPool.Remove(transactionId); } public void TransactionDeclined(string transactionId) { - var pair = _transactionPool.Single(t => t.Key == transactionId); - - pair.Value.response.SetCanceled(); + if (!_transactionPool.TryGetValue(transactionId, out var transaction)) + { + throw new Web3Exception("Transaction not found in pool."); + } + + transaction.response.SetCanceled(); + + _transactionPool.Remove(transactionId); } } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs index afd485548..ac81646b6 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs @@ -39,7 +39,7 @@ public static IWeb3ServiceCollection UseWeb3AuthWallet(this IWeb3ServiceCollecti collection.AddSingleton(); - collection.Replace(ServiceDescriptor.Singleton(typeof(AccountProvider), new AccountProvider())); + collection.AddSingleton( new AccountProvider()); collection.AddSingleton(); diff --git a/src/ChainSafe.Gaming/Web3/Core/Evm/Dto/TransactionRequest.cs b/src/ChainSafe.Gaming/Web3/Core/Evm/Dto/TransactionRequest.cs index 82d3f8189..87e9c3dcc 100644 --- a/src/ChainSafe.Gaming/Web3/Core/Evm/Dto/TransactionRequest.cs +++ b/src/ChainSafe.Gaming/Web3/Core/Evm/Dto/TransactionRequest.cs @@ -8,6 +8,9 @@ namespace ChainSafe.Gaming.Evm.Transactions { public class TransactionRequest : ICloneable { + [JsonIgnore] + public string Id { get; set; } + /// /// QUANTITY - The transaction type. /// From ad1437544bd73215bb15268282d3ffe98570bd26 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Sat, 6 Jul 2024 10:44:08 +0300 Subject: [PATCH 06/47] fixed WebGL issue with web3auth --- .../Runtime/Web3AuthProvider.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs index aa11311f5..b8dde1f5f 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs @@ -54,7 +54,10 @@ public override async Task Connect() _coreInstance.onLogin += OnLogin; - _coreInstance.login(_config.LoginParams); + if (_config.LoginParams != null) + { + _coreInstance.login(_config.LoginParams); + } var response = await _connectTcs.Task; From 5e10cfb54e5b3c7326591a553b6517b3d30d1f11 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Mon, 8 Jul 2024 15:33:36 +0300 Subject: [PATCH 07/47] checkpoint --- .../Runtime/Prefabs/Connect.prefab | 1996 +++++++++++++++++ .../Runtime/Prefabs/Connect.prefab.meta | 7 + .../Runtime/Scripts/UI.meta | 8 + .../Runtime/Scripts/UI/ConnectModal.cs | 43 + .../Runtime/Scripts/UI/ConnectModal.cs.meta | 11 + .../Runtime/Scripts/UI/ErrorOverlay.cs | 32 + .../Runtime/Scripts/UI/ErrorOverlay.cs.meta | 11 + .../Runtime/Scripts/UI/LoadingOverlay.cs | 19 + .../Runtime/Scripts/UI/LoadingOverlay.cs.meta | 11 + .../Runtime/Sprites/bottom_rounded_square.png | Bin 0 -> 4957 bytes .../Sprites/bottom_rounded_square.png.meta | 166 ++ .../Runtime/Sprites/close.png | Bin 0 -> 3583 bytes .../Runtime/Sprites/close.png.meta | 166 ++ .../Runtime/Sprites/error_icon.png | Bin 0 -> 8460 bytes .../Runtime/Sprites/error_icon.png.meta | 166 ++ .../Runtime/Sprites/loading_spinner.png | Bin 0 -> 6452 bytes .../Runtime/Sprites/loading_spinner.png.meta | 166 ++ .../Runtime/Sprites/rounded_square.png | Bin 0 -> 10725 bytes .../Runtime/Sprites/rounded_square.png.meta | 166 ++ .../Runtime/Sprites/top_rounded_square.png | Bin 0 -> 4933 bytes .../Sprites/top_rounded_square.png.meta | 166 ++ .../Scenes/SampleLogin - Connect Modal.unity | 912 ++++++++ .../SampleLogin - Connect Modal.unity.meta | 7 + 23 files changed, 4053 insertions(+) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/bottom_rounded_square.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/bottom_rounded_square.png.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/close.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/close.png.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/error_icon.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/error_icon.png.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/loading_spinner.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/loading_spinner.png.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/rounded_square.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/rounded_square.png.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/top_rounded_square.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/top_rounded_square.png.meta create mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity create mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab new file mode 100644 index 000000000..6adf75b31 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -0,0 +1,1996 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &508506244377372483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7838078985718008179} + - component: {fileID: 3660830121239284988} + - component: {fileID: 3460970445955151786} + - component: {fileID: 4959813611464448825} + m_Layer: 5 + m_Name: Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7838078985718008179 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508506244377372483} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1379415363473716232} + - {fileID: 648966681873114944} + m_Father: {fileID: 927670855158962907} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3660830121239284988 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508506244377372483} + m_CullTransparentMesh: 1 +--- !u!114 &3460970445955151786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508506244377372483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9eca7939d43f1464dbe937418b350f47, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4959813611464448825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508506244377372483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 150 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &858375910881990934 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1434635570019924198} + - component: {fileID: 6488158042095282669} + m_Layer: 5 + m_Name: Error + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1434635570019924198 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858375910881990934} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1175272198045419377} + - {fileID: 5635724673564464309} + - {fileID: 5065669832710481866} + m_Father: {fileID: 1727674147626260063} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6488158042095282669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858375910881990934} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8e1efb33f5231a4ca01864cc2c7f836, type: 3} + m_Name: + m_EditorClassIdentifier: + errorText: {fileID: 744602821817686934} + closeButton: {fileID: 3312676026106168536} +--- !u!1 &1095526093096085220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5412364599528845662} + - component: {fileID: 5400396181300235978} + - component: {fileID: 5715795542608107382} + m_Layer: 5 + m_Name: Spinner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5412364599528845662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1095526093096085220} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5464612045836999735} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.35, y: 0.35} + m_AnchorMax: {x: 0.65, y: 0.65} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -100, y: -100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5400396181300235978 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1095526093096085220} + m_CullTransparentMesh: 1 +--- !u!114 &5715795542608107382 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1095526093096085220} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 42cfe2a53c45b954b9f91b5db202b300, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1152248004544011840 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7448651822848397120} + - component: {fileID: 2861151914375929257} + - component: {fileID: 4677673153104425569} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7448651822848397120 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152248004544011840} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6732399563691960325} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 0.85, y: 1} + m_AnchoredPosition: {x: -37.5, y: 0} + m_SizeDelta: {x: -75, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2861151914375929257 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152248004544011840} + m_CullTransparentMesh: 1 +--- !u!114 &4677673153104425569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152248004544011840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Connect + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 54 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 46 + m_fontSizeMax: 54 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1429021388470255031 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5065669832710481866} + - component: {fileID: 307917436983963069} + - component: {fileID: 3134920096731298618} + - component: {fileID: 3221666810651607518} + - component: {fileID: 1216389327216043614} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5065669832710481866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1429021388470255031} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5562760844960939568} + m_Father: {fileID: 1434635570019924198} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.35, y: 0} + m_AnchorMax: {x: 0.65, y: 0.65} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -611.77997} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &307917436983963069 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1429021388470255031} + m_CullTransparentMesh: 1 +--- !u!114 &3134920096731298618 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1429021388470255031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c7ee9441838f964469b354b1c18bb60f, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3221666810651607518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1429021388470255031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 25 + m_Right: 25 + m_Top: 25 + m_Bottom: 25 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1216389327216043614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1429021388470255031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &2237341416548017329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7745417804556379745} + - component: {fileID: 4032498525751300840} + m_Layer: 5 + m_Name: Column + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7745417804556379745 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2237341416548017329} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6732399563691960325} + - {fileID: 927670855158962907} + m_Father: {fileID: 6558448801438321956} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4032498525751300840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2237341416548017329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 750 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &3620063580313004822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5488325748173676434} + - component: {fileID: 5791888603397280985} + - component: {fileID: 6576779523520890522} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5488325748173676434 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3620063580313004822} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5464612045836999735} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5791888603397280985 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3620063580313004822} + m_CullTransparentMesh: 1 +--- !u!114 &6576779523520890522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3620063580313004822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3877765966216603309 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1727674147626260063} + m_Layer: 5 + m_Name: Overlays + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1727674147626260063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3877765966216603309} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5464612045836999735} + - {fileID: 1434635570019924198} + m_Father: {fileID: 6329436153274430458} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3895911955368965336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 850444260342609506} + - component: {fileID: 4082656798130106691} + - component: {fileID: 4672817495575154206} + - component: {fileID: 8282516275078844245} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &850444260342609506 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6329436153274430458} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4082656798130106691 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_CullTransparentMesh: 1 +--- !u!114 &4672817495575154206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8282516275078844245 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4672817495575154206} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &4538423631168186023 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5635724673564464309} + - component: {fileID: 6124791464915302979} + - component: {fileID: 5311402912615556782} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5635724673564464309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4538423631168186023} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3634766939270035496} + m_Father: {fileID: 1434635570019924198} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.35, y: 0.65} + m_AnchorMax: {x: 0.65, y: 0.725} + m_AnchoredPosition: {x: 0, y: -2.5} + m_SizeDelta: {x: 0, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6124791464915302979 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4538423631168186023} + m_CullTransparentMesh: 1 +--- !u!114 &5311402912615556782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4538423631168186023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5282376474319179916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 927670855158962907} + - component: {fileID: 6933173120826074429} + - component: {fileID: 8205949823160346083} + - component: {fileID: 8031514570600876421} + - component: {fileID: 742992652230266778} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &927670855158962907 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7838078985718008179} + m_Father: {fileID: 7745417804556379745} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &6933173120826074429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c7ee9441838f964469b354b1c18bb60f, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8205949823160346083 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 25 + m_Bottom: 25 + m_ChildAlignment: 4 + m_Spacing: 25 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &8031514570600876421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &742992652230266778 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_CullTransparentMesh: 1 +--- !u!1 &5291967881455159225 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 648966681873114944} + - component: {fileID: 1109294377025620865} + - component: {fileID: 5244840317215842884} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &648966681873114944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5291967881455159225} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7838078985718008179} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: 0} + m_SizeDelta: {x: -15, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1109294377025620865 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5291967881455159225} + m_CullTransparentMesh: 1 +--- !u!114 &5244840317215842884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5291967881455159225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Provider + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5924577586993790483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6732399563691960325} + - component: {fileID: 4102446605622547045} + - component: {fileID: 7091605519317671907} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6732399563691960325 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5924577586993790483} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7659673790302877183} + - {fileID: 7448651822848397120} + - {fileID: 1432415783519671661} + m_Father: {fileID: 7745417804556379745} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.8} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 72.5} + m_SizeDelta: {x: 0, y: 155} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4102446605622547045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5924577586993790483} + m_CullTransparentMesh: 1 +--- !u!114 &7091605519317671907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5924577586993790483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6033532184202397071 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5562760844960939568} + - component: {fileID: 1019722780424375553} + - component: {fileID: 744602821817686934} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5562760844960939568 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033532184202397071} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5065669832710481866} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 288, y: -45.110016} + m_SizeDelta: {x: 526, y: 40.22003} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1019722780424375553 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033532184202397071} + m_CullTransparentMesh: 1 +--- !u!114 &744602821817686934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033532184202397071} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Error Text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6036957702279409077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6329436153274430458} + - component: {fileID: 5955209656218357189} + m_Layer: 5 + m_Name: Connect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6329436153274430458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6036957702279409077} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 850444260342609506} + - {fileID: 577935142268829008} + - {fileID: 1727674147626260063} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &5955209656218357189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6036957702279409077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e7439d940c02d848aad5707169fe785, type: 3} + m_Name: + m_EditorClassIdentifier: + errorOverlay: {fileID: 6488158042095282669} + loadingOverlay: {fileID: 3073663067520950825} + closeButton: {fileID: 2547221875300260690} + closeFromBackgroundButton: {fileID: 8282516275078844245} +--- !u!1 &6095527205806428435 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3634766939270035496} + - component: {fileID: 7581207110789186895} + - component: {fileID: 9169908938101243680} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3634766939270035496 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6095527205806428435} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5635724673564464309} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 0.75, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7581207110789186895 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6095527205806428435} + m_CullTransparentMesh: 1 +--- !u!114 &9169908938101243680 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6095527205806428435} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 6838229fc86f8964885089fb1d0ed6bd, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6256314027645616701 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1379415363473716232} + - component: {fileID: 3504248024878233216} + - component: {fileID: 1260545670901075144} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1379415363473716232 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6256314027645616701} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7838078985718008179} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3504248024878233216 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6256314027645616701} + m_CullTransparentMesh: 1 +--- !u!114 &1260545670901075144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6256314027645616701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6406804929541681753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5464612045836999735} + - component: {fileID: 3073663067520950825} + m_Layer: 5 + m_Name: Loading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5464612045836999735 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6406804929541681753} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5488325748173676434} + - {fileID: 5412364599528845662} + m_Father: {fileID: 1727674147626260063} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3073663067520950825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6406804929541681753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7659d83bbcad93b4e9eae4bb0dfdeb48, type: 3} + m_Name: + m_EditorClassIdentifier: + spinnerTransform: {fileID: 5412364599528845662} + spinSpeed: 1 +--- !u!1 &6964812571422519759 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6558448801438321956} + - component: {fileID: 6085279580583425317} + - component: {fileID: 199958988756034151} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6558448801438321956 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964812571422519759} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7745417804556379745} + m_Father: {fileID: 577935142268829008} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.85} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &6085279580583425317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964812571422519759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &199958988756034151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964812571422519759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &7540885698258229545 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 577935142268829008} + m_Layer: 5 + m_Name: Modal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &577935142268829008 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7540885698258229545} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6558448801438321956} + m_Father: {fileID: 6329436153274430458} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0.15} + m_AnchorMax: {x: 0.75, y: 0.85} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7674483670752238931 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1175272198045419377} + - component: {fileID: 3850686875445404471} + - component: {fileID: 5995437016800862059} + - component: {fileID: 3312676026106168536} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1175272198045419377 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7674483670752238931} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1434635570019924198} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3850686875445404471 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7674483670752238931} + m_CullTransparentMesh: 1 +--- !u!114 &5995437016800862059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7674483670752238931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3312676026106168536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7674483670752238931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5995437016800862059} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &7738577535433790659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7659673790302877183} + - component: {fileID: 4837691293256020319} + - component: {fileID: 3610818540548522733} + m_Layer: 5 + m_Name: Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7659673790302877183 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7738577535433790659} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6732399563691960325} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -50, y: -50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4837691293256020319 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7738577535433790659} + m_CullTransparentMesh: 1 +--- !u!114 &3610818540548522733 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7738577535433790659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8997209791918168290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1432415783519671661} + - component: {fileID: 4867007146758828141} + - component: {fileID: 3537795417714461763} + - component: {fileID: 2547221875300260690} + m_Layer: 5 + m_Name: CloseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1432415783519671661 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6732399563691960325} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.85, y: 0.5} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -50.000008, y: -50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4867007146758828141 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_CullTransparentMesh: 1 +--- !u!114 &3537795417714461763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3cf65a8da9d86bc46afbb415a63a4ea6, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2547221875300260690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3537795417714461763} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab.meta b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab.meta new file mode 100644 index 000000000..d10dff0ec --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2dd57b774deda1948bd97dcb6d6e9fb4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI.meta new file mode 100644 index 000000000..dd98b5880 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: edc21b8a0bd76a04f98ba694be53f2a8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs new file mode 100644 index 000000000..e180d17c0 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace ChainSafe.Gaming +{ + public class ConnectModal : MonoBehaviour + { + [SerializeField] private ErrorOverlay errorOverlay; + [SerializeField] private LoadingOverlay loadingOverlay; + [SerializeField] private Button closeButton; + // Closes modal when background is clicked + [SerializeField] private Button closeFromBackgroundButton; + + private void Start() + { + closeButton.onClick.AddListener(Close); + closeFromBackgroundButton.onClick.AddListener(Close); + } + + private void DisplayError(string message) + { + errorOverlay.DisplayError(message); + } + + private void ShowLoading() + { + loadingOverlay.gameObject.SetActive(true); + } + + private void HideLoading() + { + loadingOverlay.gameObject.SetActive(false); + } + + private void Close() + { + gameObject.SetActive(false); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs.meta new file mode 100644 index 000000000..0fe5a357b --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8e7439d940c02d848aad5707169fe785 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs new file mode 100644 index 000000000..eba3ee74a --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ChainSafe.Gaming +{ + public class ErrorOverlay : MonoBehaviour + { + [SerializeField] private TextMeshProUGUI errorText; + [SerializeField] private Button closeButton; + + private void Start() + { + closeButton.onClick.AddListener(Close); + } + + public void DisplayError(string message) + { + gameObject.SetActive(true); + + errorText.SetText(message); + } + + public void Close() + { + gameObject.SetActive(false); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs.meta new file mode 100644 index 000000000..f2e1ba7af --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c8e1efb33f5231a4ca01864cc2c7f836 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs new file mode 100644 index 000000000..b82c24158 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace ChainSafe.Gaming +{ + public class LoadingOverlay : MonoBehaviour + { + [SerializeField] private RectTransform spinnerTransform; + [SerializeField] private float spinSpeed = 1f; + + private void Update() + { + spinnerTransform.rotation *= Quaternion.AngleAxis(spinSpeed, Vector3.forward); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs.meta new file mode 100644 index 000000000..7fa37c0a0 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7659d83bbcad93b4e9eae4bb0dfdeb48 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/bottom_rounded_square.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/bottom_rounded_square.png new file mode 100644 index 0000000000000000000000000000000000000000..15f093404fd18a1ec312652c72c783a6b7882143 GIT binary patch literal 4957 zcmeAS@N?(olHy`uVBq!ia0y~yVAcR(4mO~O%9kS_ffQ$fM`SSr1Gf+eGhVt|_lJQ& znBUXIF{EP7+q(yIL&7B*E^;RcYEC?4wA&)++YXjXj$R&C4SbXMoY*fk1~Xn@d=vSA zugB$DpWH5CUp2FDGd`XXw{Vv_du&$v`S)j+|9)3ne(wDF_x*-_#~;?3$1^Y-__tRw zd5`^v?{#JQ$4-7`{;vddhyMGzkMWEQ3=8UmvsFd71*Aut*OqaiRF0wXU3dQ=1MNwYIB2z=9fYzK2x zJQmX*G)?%C7bAnN7d09Mqai@25SZprnJNPuE;uNpk*)^pt+VWjxcjIyOA0vr&^UK3 z)6=z}?mGLoEKv=8P*G)J0P5JQ%vpE;(Nh&*ne||TozAQ^OsSS9UoR~LsVp)wle>kG!SvrUU!q6#_7Pr^-_Wi3>(t@!>8}wU3hmn$hJ2ZU;bKoXm(@Kqm`e4 zI^_Ott6O>2L2|Y|(5M1$KlAsGc4-96i*f}j{r14VTNyM$qQC3SVZ&p^!a%XSldlbr zeSGE~zop6OnVP726;N#Z(~GY2t0Nca)Xn7g0rGDwRe!Bs9%~+OE^P_W)HkPI_sgF7 zy3s-M^NokC;}2Z=);9?*4syJ=Rh3v)#sIZB3vT#Ma5GC!cnZG!DA+4mcJQ zbNq3xKifUCfMZchDkdlceKoPX*!hqA?K*37&MAhd|twUtFiT}SUi}?HRULOK_r+3b|=zopr0CWeMVE_OC literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/bottom_rounded_square.png.meta b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/bottom_rounded_square.png.meta new file mode 100644 index 000000000..1b895ff50 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/bottom_rounded_square.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: c7ee9441838f964469b354b1c18bb60f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 43, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/close.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/close.png new file mode 100644 index 0000000000000000000000000000000000000000..c88415660bb097875199bdd0d70b2f2eae8afe48 GIT binary patch literal 3583 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 Am;e9( literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/close.png.meta b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/close.png.meta new file mode 100644 index 000000000..0a233c0d6 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/close.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: a5cb941ef329f294c89555356fa03827 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/error_icon.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/error_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..322ad742b4b54d3c696472708774ade34e02185f GIT binary patch literal 8460 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 literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/error_icon.png.meta b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/error_icon.png.meta new file mode 100644 index 000000000..5cbcc5597 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/error_icon.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 6838229fc86f8964885089fb1d0ed6bd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/loading_spinner.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/loading_spinner.png new file mode 100644 index 0000000000000000000000000000000000000000..77d1530200ab2401158e0e413894df0ba173ef4b GIT binary patch literal 6452 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 literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/rounded_square.png.meta b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/rounded_square.png.meta new file mode 100644 index 000000000..d6b763fed --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/rounded_square.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 9eca7939d43f1464dbe937418b350f47 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 34, y: 32, z: 40, w: 26} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/top_rounded_square.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/top_rounded_square.png new file mode 100644 index 0000000000000000000000000000000000000000..07be7727541bc581b72b49a0b15246ef824012b0 GIT binary patch literal 4933 zcmeAS@N?(olHy`uVBq!ia0y~yVAcR(4mO~O%9kS_ffQ$fM`SSr1Gf+eGhVt|_lJQ& z=)0$jV@SoEw|5Wv#)L~WT$DZ?w8GtEdA}f0wBF_XCy?G(Vz)-XKpJei$dF7$k z(&jcQ`7kg%cxgFTIziW3>owPu!#n55JY`~NSpM>@&7+SCB&VkH?E4m57b zU#t6nU%yZkf2i14WRU-OPt7ZBpxrSu+-(2NXn*nk=|1;8eb43!Z&m~P#OVFAyd9S( zuK&$)s$|`pa&Mpy?mQ})7angJ^sefN_Z%R9^{x5Goy1oEI~dF43gVZSF87H1+Hw7& z%^M~Lh5~tQ+3!)Q>`xQ!`nR(%FwC3tH}u`R(&z;`ch+(FAZQcLZsg0Y;Z$AJE9AJK{ciT16tU1X*j)CFE6#3&4@AdD${>67HNv@9_ zDAIDiEN~tBsg3FLfG(CUG0C42vqMf}{TiT+8yt6sTR+KKAhV-b9LQt!WJne9^cn{DIHx?Z(R1M%;3)1U4pY>GZRG^vLGIq_r-sk{y zuhusfpo;=N-skIDew>+s;r6zQwC_N*9XoC~Mn>>5Ff4d5GZd&p3#4pl;I_Aed8y;&nJhof6X2D#;WBlQD xb?>u*&H3oBg>~Oo3Z6SAG2iT0<}r((;*+#X_48uqt_1p%!PC{xWt~$(69C~)n8E-6 literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/top_rounded_square.png.meta b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/top_rounded_square.png.meta new file mode 100644 index 000000000..0f43a6ba2 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/top_rounded_square.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: bcaa955798cb6da4f9302a97182bed1d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 41} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity new file mode 100644 index 000000000..c182c6868 --- /dev/null +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -0,0 +1,912 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &141212710 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 574819874} + m_Modifications: + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_Name + value: Connect Button + objectReference: {fileID: 0} + - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_text + value: Connect + objectReference: {fileID: 0} + - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_fontSize + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_fontSizeMax + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + propertyPath: m_fontSizeMin + value: 24 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + insertIndex: -1 + addedObject: {fileID: 141212713} + m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} +--- !u!224 &141212711 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + m_PrefabInstance: {fileID: 141212710} + m_PrefabAsset: {fileID: 0} +--- !u!1 &141212712 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} + m_PrefabInstance: {fileID: 141212710} + m_PrefabAsset: {fileID: 0} +--- !u!114 &141212713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141212712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 75 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &574819873 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 574819874} + - component: {fileID: 574819876} + - component: {fileID: 574819875} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &574819874 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574819873} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 141212711} + m_Father: {fileID: 688809890} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &574819875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574819873} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &574819876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574819873} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &688809889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 688809890} + - component: {fileID: 688809891} + m_Layer: 5 + m_Name: Column + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &688809890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688809889} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 574819874} + m_Father: {fileID: 2097125330} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &688809891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 688809889} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 300 + m_PreferredHeight: 75 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &893732502 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 893732505} + - component: {fileID: 893732504} + - component: {fileID: 893732503} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &893732503 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893732502} + m_Enabled: 1 +--- !u!20 &893732504 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893732502} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.101960786, g: 0.101960786, b: 0.10980392, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &893732505 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893732502} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &924560430 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2066044329} + m_Modifications: + - target: {fileID: 927670855158962907, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_SizeDelta.y + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6036957702279409077, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_Name + value: Connect + objectReference: {fileID: 0} + - target: {fileID: 6036957702279409077, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6558448801438321956, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_SizeDelta.x + value: -210 + objectReference: {fileID: 0} + - target: {fileID: 6558448801438321956, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_SizeDelta.y + value: -642.60004 + objectReference: {fileID: 0} + - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_SizeDelta.x + value: 750 + objectReference: {fileID: 0} + - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchoredPosition.x + value: 375 + objectReference: {fileID: 0} + - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_SizeDelta.x + value: 650 + objectReference: {fileID: 0} + - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchoredPosition.x + value: 375 + objectReference: {fileID: 0} + - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + propertyPath: m_AnchoredPosition.y + value: -100 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} +--- !u!224 &924560431 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + m_PrefabInstance: {fileID: 924560430} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1290034538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1290034541} + - component: {fileID: 1290034540} + - component: {fileID: 1290034539} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1290034539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1290034538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1290034540 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1290034538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1290034541 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1290034538} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2066044325 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2066044329} + - component: {fileID: 2066044328} + - component: {fileID: 2066044327} + - component: {fileID: 2066044326} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2066044326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066044325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2066044327 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066044325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &2066044328 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066044325} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2066044329 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066044325} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2097125330} + - {fileID: 924560431} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &2097125329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2097125330} + - component: {fileID: 2097125332} + - component: {fileID: 2097125331} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2097125330 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2097125329} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 688809890} + m_Father: {fileID: 2066044329} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2097125331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2097125329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &2097125332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2097125329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 893732505} + - {fileID: 2066044329} + - {fileID: 1290034541} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity.meta new file mode 100644 index 000000000..a64d797ce --- /dev/null +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9cc8718ed12082a4582ab037b41d4f98 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From 68fa2af7edc2ba0332ec1b2a22d929a36895c5f6 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Tue, 9 Jul 2024 21:58:16 +0300 Subject: [PATCH 08/47] colors updated --- .../Common/Scripts/ConnectionProvider.cs | 21 ++ .../Common/Scripts/ConnectionProvider.cs.meta | 11 + .../Runtime/Prefabs/Connect.prefab | 356 ++---------------- .../Runtime/Prefabs/Row.prefab | 354 +++++++++++++++++ .../Runtime/Prefabs/Row.prefab.meta | 7 + .../Runtime/Scripts/UI/ConnectModal.cs | 15 +- 6 files changed, 438 insertions(+), 326 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs new file mode 100644 index 000000000..fbd9d3d56 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.Web3.Build; +using Scenes; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ChainSafe.Gaming +{ + public abstract class ConnectionProvider : MonoBehaviour, IWeb3BuilderServiceAdapter + { + public abstract bool IsAvailable { get; } + + [field: SerializeField] public Button ConnectButton { get; private set; } + + public abstract Web3Builder ConfigureServices(Web3Builder web3Builder); + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs.meta new file mode 100644 index 000000000..3439b8bb1 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4339c1b6fafbb934081de0b151b2de7b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab index 6adf75b31..2a552e72a 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -1,103 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &508506244377372483 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7838078985718008179} - - component: {fileID: 3660830121239284988} - - component: {fileID: 3460970445955151786} - - component: {fileID: 4959813611464448825} - m_Layer: 5 - m_Name: Row - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7838078985718008179 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 508506244377372483} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1379415363473716232} - - {fileID: 648966681873114944} - m_Father: {fileID: 927670855158962907} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 150} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3660830121239284988 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 508506244377372483} - m_CullTransparentMesh: 1 ---- !u!114 &3460970445955151786 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 508506244377372483} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 9eca7939d43f1464dbe937418b350f47, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &4959813611464448825 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 508506244377372483} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 150 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 --- !u!1 &858375910881990934 GameObject: m_ObjectHideFlags: 0 @@ -209,7 +111,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 0.28235295, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -300,8 +202,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} + rgba: 4282974207 + m_fontColor: {r: 1, g: 1, b: 0.28235295, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -421,7 +323,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 0, b: 0, a: 1} + m_Color: {r: 0.19215687, g: 0.21568628, b: 0.16862746, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -827,7 +729,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 0, b: 0, a: 1} + m_Color: {r: 0.19215687, g: 0.21568628, b: 0.16862746, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -875,8 +777,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7838078985718008179} + m_Children: [] m_Father: {fileID: 7745417804556379745} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -897,7 +798,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -962,140 +863,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5282376474319179916} m_CullTransparentMesh: 1 ---- !u!1 &5291967881455159225 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 648966681873114944} - - component: {fileID: 1109294377025620865} - - component: {fileID: 5244840317215842884} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &648966681873114944 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5291967881455159225} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7838078985718008179} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -7.5, y: 0} - m_SizeDelta: {x: -15, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1109294377025620865 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5291967881455159225} - m_CullTransparentMesh: 1 ---- !u!114 &5244840317215842884 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5291967881455159225} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Provider - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &5924577586993790483 GameObject: m_ObjectHideFlags: 0 @@ -1157,7 +924,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -1318,6 +1085,7 @@ GameObject: m_Component: - component: {fileID: 6329436153274430458} - component: {fileID: 5955209656218357189} + - component: {fileID: 418606618353359064} m_Layer: 5 m_Name: Connect m_TagString: Untagged @@ -1332,7 +1100,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6036957702279409077} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -1363,6 +1131,23 @@ MonoBehaviour: loadingOverlay: {fileID: 3073663067520950825} closeButton: {fileID: 2547221875300260690} closeFromBackgroundButton: {fileID: 8282516275078844245} + providerContainer: {fileID: 927670855158962907} +--- !u!114 &418606618353359064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6036957702279409077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b5a2f51f95094c949a28c71dc8658551, type: 3} + m_Name: + m_EditorClassIdentifier: + gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ + connectModal: {fileID: 5955209656218357189} + providers: + - {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} --- !u!1 &6095527205806428435 GameObject: m_ObjectHideFlags: 0 @@ -1395,10 +1180,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 5635724673564464309} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 0.75, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -7.5} + m_SizeDelta: {x: 0, y: -15} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7581207110789186895 CanvasRenderer: @@ -1421,7 +1206,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -1438,81 +1223,6 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6256314027645616701 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1379415363473716232} - - component: {fileID: 3504248024878233216} - - component: {fileID: 1260545670901075144} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1379415363473716232 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6256314027645616701} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7838078985718008179} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -30, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3504248024878233216 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6256314027645616701} - m_CullTransparentMesh: 1 ---- !u!114 &1260545670901075144 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6256314027645616701} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!1 &6406804929541681753 GameObject: m_ObjectHideFlags: 0 @@ -1933,7 +1643,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} + m_Color: {r: 0.4113207, g: 0.4113207, b: 0.4113207, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab new file mode 100644 index 000000000..473391ecc --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab @@ -0,0 +1,354 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &785336076525971349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5374865845666449260} + - component: {fileID: 5544998337246866349} + - component: {fileID: 819551480880317032} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5374865845666449260 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785336076525971349} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3409427843973998943} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: 0} + m_SizeDelta: {x: -15, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5544998337246866349 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785336076525971349} + m_CullTransparentMesh: 1 +--- !u!114 &819551480880317032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785336076525971349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Provider + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1532402231193903633 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5814816957066204196} + - component: {fileID: 8302206430701901484} + - component: {fileID: 5974183629704621284} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5814816957066204196 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532402231193903633} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3409427843973998943} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8302206430701901484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532402231193903633} + m_CullTransparentMesh: 1 +--- !u!114 &5974183629704621284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532402231193903633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4942797880779212655 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3409427843973998943} + - component: {fileID: 8168168912145149136} + - component: {fileID: 5181835182331206566} + - component: {fileID: 8327469659141986182} + - component: {fileID: 522989249825618709} + m_Layer: 5 + m_Name: Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3409427843973998943 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5814816957066204196} + - {fileID: 5374865845666449260} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 6, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8168168912145149136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_CullTransparentMesh: 1 +--- !u!114 &5181835182331206566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8327469659141986182} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &8327469659141986182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9eca7939d43f1464dbe937418b350f47, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &522989249825618709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 150 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab.meta b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab.meta new file mode 100644 index 000000000..ef06c8dda --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5fc3fb751209aae4a97201647b943503 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs index e180d17c0..40e2c894d 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs @@ -13,6 +13,10 @@ public class ConnectModal : MonoBehaviour [SerializeField] private Button closeButton; // Closes modal when background is clicked [SerializeField] private Button closeFromBackgroundButton; + + [Space] + + [SerializeField] private RectTransform providerContainer; private void Start() { @@ -20,20 +24,25 @@ private void Start() closeFromBackgroundButton.onClick.AddListener(Close); } - private void DisplayError(string message) + public void DisplayError(string message) { errorOverlay.DisplayError(message); } - private void ShowLoading() + public void ShowLoading() { loadingOverlay.gameObject.SetActive(true); } - private void HideLoading() + public void HideLoading() { loadingOverlay.gameObject.SetActive(false); } + + public ConnectionProvider AddProvider(ConnectionProvider provider) + { + return Instantiate(provider, providerContainer); + } private void Close() { From 92a092b2ce9e755e76d2a2c402d90be0ed225155 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Tue, 9 Jul 2024 21:59:22 +0300 Subject: [PATCH 09/47] checkpoint --- .../Runtime/Prefabs.meta | 8 + .../Runtime/Prefabs/HyperPlayRow.prefab | 143 +++++++++++++++ .../Runtime/Prefabs/HyperPlayRow.prefab.meta | 7 + .../Scripts/HyperPlayConnectionProvider.cs | 31 ++++ .../HyperPlayConnectionProvider.cs.meta | 11 ++ .../Runtime/Sprites.meta | 8 + .../Runtime/Sprites/HyperPlay.png | Bin 0 -> 705053 bytes .../Runtime/Sprites/HyperPlay.png.meta | 166 ++++++++++++++++++ .../Common/Scripts/ConnectionHandler.cs | 83 +++++++++ ...ider.cs.meta => ConnectionHandler.cs.meta} | 0 ...LoginProvider.cs => IConnectionHandler.cs} | 19 +- ...der.cs.meta => IConnectionHandler.cs.meta} | 0 .../Common/Scripts/IWeb3InitializedHandler.cs | 2 +- .../Runtime/Common/Scripts/LoginProvider.cs | 53 ------ .../Scripts/MetamaskConnectionProvider.cs | 20 +++ .../MetamaskConnectionProvider.cs.meta | 11 ++ .../Runtime/Prefabs/MetamaskRow.prefab | 143 +++++++++++++++ .../Runtime/Prefabs/MetamaskRow.prefab.meta | 7 + .../Runtime/Sprites/MetaMask_Icon.png | Bin 0 -> 43393 bytes .../Runtime/Sprites/MetaMask_Icon.png.meta | 166 ++++++++++++++++++ .../Runtime/providers.json | 4 + .../Runtime/providers.json.meta | 7 + 22 files changed, 822 insertions(+), 67 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs.meta create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab.meta create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites.meta create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites/HyperPlay.png create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites/HyperPlay.png.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs rename Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/{LoginProvider.cs.meta => ConnectionHandler.cs.meta} (100%) rename Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/{ILoginProvider.cs => IConnectionHandler.cs} (88%) rename Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/{ILoginProvider.cs.meta => IConnectionHandler.cs.meta} (100%) delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoginProvider.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/MetaMask_Icon.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/MetaMask_Icon.png.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/providers.json create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/providers.json.meta diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs.meta new file mode 100644 index 000000000..8b5509b2b --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 961be8d417c5bd144b2e58f2da4650c0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab new file mode 100644 index 000000000..0873c2b2d --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &3512705784189120061 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 819551480880317032, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_text + value: HyperPlay + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_SizeDelta.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Name + value: HyperPlayRow + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: fff42e870475d1344995a94a16299795, type: 3} + - target: {fileID: 5974183629704621284, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + insertIndex: -1 + addedObject: {fileID: 3304901130453211424} + m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} +--- !u!1 &8369934619212736850 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + m_PrefabInstance: {fileID: 3512705784189120061} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3304901130453211424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8369934619212736850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b64d00084d2c544aa644a8a6010964d, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: {fileID: 8599114313589093787} +--- !u!114 &8599114313589093787 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + m_PrefabInstance: {fileID: 3512705784189120061} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8369934619212736850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab.meta new file mode 100644 index 000000000..01574c1ac --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 71b112e16f898d140935553a4b33ae1f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs new file mode 100644 index 000000000..fb9c33ccf --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using ChainSafe.Gaming.Web3.Build; +using ChainSafe.Gaming.Web3.Evm.Wallet; +using UnityEngine; + +namespace ChainSafe.Gaming.HyperPlay +{ + public class HyperPlayConnectionProvider : ConnectionProvider + { + public override bool IsAvailable => Application.platform != RuntimePlatform.Android || Application.platform != RuntimePlatform.IPhonePlayer; + + public override Web3Builder ConfigureServices(Web3Builder web3Builder) + { + return web3Builder.Configure(services => + { + var config = new HyperPlayConfig + { + // RememberSession = rememberMeToggle.isOn || _storedSessionAvailable, + }; +#if UNITY_WEBGL && !UNITY_EDITOR + services.UseHyperPlay(config); +#else + services.UseHyperPlay(config); +#endif + services.UseWalletSigner().UseWalletTransactionExecutor(); + }); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs.meta new file mode 100644 index 000000000..a4995e31f --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73b5e9380c5275043b3558f49f807100 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites.meta new file mode 100644 index 000000000..0bb2f3171 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ab0d0c33f8aaa544890e7c26e8dcd86 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites/HyperPlay.png b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites/HyperPlay.png new file mode 100644 index 0000000000000000000000000000000000000000..3396068c36db12722f1095d14cd1fca0beeb1c3a GIT binary patch literal 705053 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

87DAd&U^F=cE0?F_OV? zXY_Wa9fnypyS_M3!uN8+l5AjSsR*P})n?6dwCka?gUM2>`6SGqClTaEFc4`>7R$KM z2|^s#$7Ctmaq$~1soP29;N%p_p&J(dn{3#>L6&|&mh$&;`Fj&sKmI?Pe?IA(KPb0U zI65*6cH|cyROEo_6%=6=stXFg2+;tNiHMiVykh^hVSFS=2EQOqQ11!&B`D8{)8Yma za`%dgLR~S~HKZ~=M>`TuKe`Q*uDD^2Yjax$yih(Cb!DT_ag~5V4UG5Xdeu`Bkaq$J zwL6}|^~9|l?+Fu2prlf#V=Jw2OA=@wJrtBf*piQBBOAi?CDb188}e8{qv0~7eaUs1 zv5abz2JI_r?+Rui-Zqda+yXe2Y44zjAd^ZSP5F|wa_b^Y^MT+V+^WK@D3S-_aFHl< zLqwlb0v!SwWJjPTvXO|AjFs~2%eG`0M_ODiGqi|@0}B(?2$)n^mulaRo|^Xhk8^Q5 zmXvI*4F$cRa>(yzsER_bIYNUU8I&=ohDO!3KugE@aj)G##F|vsBs1rYp+T>^GRAu% zqd#5Ia3Dc+z2eE}t}jlGY6;{M$08R7xrEabOGOW~IA58FOtYWLCSz)#q|t3pHUR@I zBS%Yu*Xw}*OnbSE7Zc%aDT|sgyQ$>5Mv|>kp(VPH#7Uy$NRhUyY*^l|U^_M^R&k)D zkFgYi4Xr!KzkSQi3Zx=uIu4zQuTV+Nj@|xKzJh}N9eT1giA6HZ+$qOC77r0mHiV7_ zqwR@7{Y57SHQO3A_B=49w;KbDWptYN4ceCx`*>@DQ`Tr#(d~4I;t7>j1=sbc%vFv- zr1pNd?(9;o70FY><@c}Bo@?V49Tt}sa6Ju}2t&ROc(KtgbNZk119Ql&WP8w>um>=`b8jc=n|W zcmDMRvCidF{`B%S z3U9yreSE)4oTQvQd6vC{U2fcXpJK6zQ648woZ|NFkJ#UTM7cbNA6A%~U*rD04;c*) z@xwAud`1QjY*S;uu!7W zUS=}tVGN9idzd`N3##NM!wc&;o=-H~B8|GU=aPip4O!eJi#wQ1oEIl-ia^p1PEeE3 zdoskBY1g1e2MtUvL2iX3Bf~uXl891HVC`k>xbAOK^89oL>#4u0=t>pd0M z%BKhhJ5D!dHUf0~f}BuIj`jk=C2fP zv4VD73C9C&SeT6qr+>0&A{9Hibhc*k7!wPS)GyaSsSuO@H)#L9a=gpR@%X#G{JjXQ zxBs>I=W&$(fl^RgQ0(6`3=RzAuAxwoXYl@Q`5jgl6kZ@%s<5o6E-DIjNJfgNFXOTD zoMLon815Lx9dVw#K+$_5qNjC6#(`l)F*%fXvXxcE_y|Teu&xaF6iX6y8}m>E^r4LeIJ)Cs)%$g6XkPy7dA$a|lx@ zu>i_Ip%!g8I6aJ0)|J!=ZtiLZ9|zJT*Z?Nx_0hw=)^R1u~XX1xrs)jkrifMZTB8NQmoXV73!+ z?fN-pGe*^2^tx|@_MlQjevpYcsXO-T%4pJb1(atxndGZtd+>5>u-#FpmMe}@Clj|x z%cu`W76|BP=v7~iUwaAoj)=2^RIK)a(B<`_lscP8#HESN@sg3vB2f_mK`QJurrm(T z6_o$io#V&mi(pfBD|Cuqn7U1>XrBX_nQa=%(L{aeApRvWWuE@GT+c){us%U>BX(gz zmy~Q2rgo`gA}(g{Nsq7*irZ-nD%Us#MY&m~(yYjraMWzeFCArQUqt3xKYWMN&z#0& zin)b0L0#UNJAnfVKK#)D8A0a0$IP!Spj}1W%W#yYG+(4VU%~*_-o8b-QKGg~q5pVH zb*aR?cegq9l~sbUz+@PaCOJ1hxyRX;P7stlf}+oBfAn+QJY?nEJe7Kp!`(icn_HZE zW{q@`(K+Zc>PIY{YSY>8^Z5D!m%jE4^|>M@SA6)!6~6h~U!m5lFdoLd@zXbX>Fby9 z0*_HI=IEfyiLt{7Uq|6DRJ`bI=}ef zJ-VG9FFgAy%jHp9^olW~_cO=!)pgE7SMh-fk-jz(1K zZM2rg1e2$Xh6lva5Z5c9bV#MSL>l#ohT9~O%~&};<@x7HM*F1EA$b;wD`iq~pvdvc zE5gG{2DTA+nYmJzgE2DBOCoW%FqkwI!IUMS zjEowyRNO5;z$@25X-t;j_#r{HK^9waWvTLcG`74fFc^|S*9x%s_qC($Lv~pXc7J!5 zzjJ~0__F!uVU<7dLZ~k)N)0Jx9(Sa}uePWd_hEDd@xTz+aQe|hLo}39XD@`XCXms} zqM|%6qG{X_r^yTDAlrKk$yh{Eu?}fua6G7QD9UppXtD?#t#FItSRLNXXDqEkTVXPT zS5#Ei6vehe8QCI~^-u_^ilb{eaaZA26<$e-nbRRcP9GYa0t{}8L!})Fy9X@^ucsps zVhSmHHaV0|YMc_p+lJ&w1eIIX!p8E&HS=0P3dx>0RJthcULGs5p==^LCE;8t4Q^ZG zHN4O*A}&qU5uwq`q_`QI zAIfCBMwE-oWLZ|GlZsPRccs2(%B)i6OJg~`;>!WBpNXU7YD{0om8$B@a$hrEmMyiW zp9#MzmXN!O1;GkQ=)CvT#|9E=&v%&Rvhs;!?aWXF7B+aE3{%|Nly#+WL&-h4p(EV4 zr!-q08M=Etd@lqIH{QKVbFqQ)6(>)h!VR_5Srr|Wqu9E=PpMV}t+;*l4oj;`xCMvi zQXMyN$rC$*Rq*EPZ*uDFDg1&@xh-A6|>SF6O6nEm}j%Jnh|MSHzLJjifdO~Efw zX_P3|LgGquoB0 zMgbFfEUdTr=M;lqbK|CRH6{>fchb4}{?Cbd?DKmFsMaB|}e zFTC;$D8<#QSE$x%EG*CQ#bvhJ%h=qj>PM$i+!NEQseeyaN&V7US z+#;SAa^=d0IIhFu;z@#_%Ff;sc6RTuvUY~RtE05y;iH?x$%vDuo+C+M5|7y5yNh-- ztLrb3n~W^aIM}<3ACy>Jxk#QTB*~bggGZ$Cgi@t}>-v;yZH^9~Fc}T-!y>uKsI?YJ z)0jbbk2H-jd5Y_Y)Y_|zhkGQG9$6~IuwiKt?fB%GfIze85KMyh%b0YG6Etv&3*_Tn zviMM_)Uv*g6Vx%uNR9>A&Vf74PisEbJZ~16VX#>E3`J&PK4UJ z4Y2oY&{`?{lA?D{HUhJWZPFe5_ZUDo_BD^Mh z2CpO|Jhv=j(5+~+gRrsskd6(0L*ci@u}TMWziAgn_Y7`DQ9di5kG79bicW3%N|HR8 z(u#OTMlDK%za(gid}Q6{%(AY0i%W294$5Y(oCdgU$z+*W_*+gxPKMe7B(<-|9tgs~ zJt<WV%!!WziTJ-w{Z7 zT_MM6#yM)mL)Tr|g0$Qz#&$#qG7_D)BgJ7ZaMGhpe*RhsaMiKp(>tkb435m~`^+~p z5qyCb+`}|yc3?LN`vN{yo+97Rk2e%MHXPrzO9-yTZImUKWsVH0VqH%Ayfi)enB?dX zx6<|u8c((Wr_W8N=*-?6yP-QfeN1)VxEnDz8WL7QvO~lDyANr%+b9p3%XM+E>^L0- z*FU&PW4?iM6ptP}B2*>(vd6}Sb=<%q?xeUyjT1P$^~PH)%`KBoGA>>cgaJU*Pe~^! zpIyGfndeUu6nwgyBU;N<>WfuCar3j=9B%hH^}-s(T8K&E^*?%tb1$8wR10x^&Evbf z)LRwE95(OnGPl&C)oM{{6nN){AG3CPiPIN1@Ise&-uMN6UgFG4Yb0^b?#>?Cf%amX zPv5=9sf!!5+w+8_fFJ(p54rH%d0OoT!~TTrC)=FZSZ6q#@Y)~0!8gDCO`7cn2fK&7 z_0G@v&42h^OlHV3xOMXuFMsV4+gsb*xqY8vvC1>gUf}u{*ZJ_n_xZ|Kze&AbBaTx( z{P-Q7d;SF$7gpKZKVoIG#rsR%kDtW^d;nlVKOfbwR=6+69LFL%K&hq-jEKQfiF_ z3Y7-q{yu3Olg1s4$tcuT$kQ0dEs&)nvZP0rjb(fXg!Qw6Xh=E&6tyEZx4dGVDd}i3 znWeZZ>D=iATA&(`W^>lC??AC1QsXW$SB!<*efB)6c`(Gf&rh-aM|8B*W>q(|8 zx3E#=924A?6Qva?M$;<)AL)NM6)~=c}AYZq@%vgbGbIpm7p94zf#97SJ9sL``YvG zJ3)Ba2}1rZE}FliKR^8M&3E&}{K4=@aroFU?7;4Ah=%a^Dr{fRv3xOt63m^3_Guxg z2PLVjQQD5t#)?T-GFhERIpdC@zhgLhC>bm5D!dZRozs-(gQ9vGs&A?_JQdxpuOT)eUrIR`DMo)Q<%v3#|`L&MQ^LpC-9 z4H1u?EpN_ap}-%0WEee^d{MX{f&(MDC=(+GyMe)PLt$0n*2O8vBSW-lh@Qxkzi=9h zV*nDx=$awhGk8l1wp+=33&9H&lx*gxpaeNkv3V^mqdx|Q zd^07Vx|mGHdX*25r=!}cKxzs4>m z#P;z;lJO#uHx?!~v%o#6grCeHxBoYSSTIP)G%=V=YK~@`lLIS+M^D{;Y`)x~=sk73 zcf@5RP*9X!QB|`Wq|R}U&k6Lj^LB>cdiuO!VmQ3rA?xJi5hSC8$G5k{H7#i_e(fAi zRqoR%$T)PcJDlCc&HG;v_Y)Lw{@L@C7mM;eBCq|+S1z;nWDkI6&pnUpyYvr6xR#N3 z@ALai`Vl*i_IdH^mu4rT$6JrtzH`9idrtsZ*;p1*yn$?zkwlqL)eWR+#*^E7%+0r{ zwkqJjy&Lx_H%csQG{6|P4<6I+_whrQaX(^ZagA!b1SsD5$wxf@;ziCsdzK_l`TX-Q z@B@$bQjIjuXw??*J)cMSp74veKjN#ee3f#oKs<>V#eJF!H6GpD!f{;IR!-t-#ryBS z!}it|zxPjnk1#0E?e^$(dVKe{zr$yrT%%m7QwYl}ueP~y>pJ)EK4h-GPNh=j&b^zw z_ukLgIC+8PrFA+-J@yVCQYsaA{@HKS?Q|KAdZc;Ex%1C))ZL@km3I5N`8uuU0@tp7 zf-wruD{=9{vt(J!t(#YXoG>hM^3;oTkDl=G{uMBWa%GN{wHN8^KVWO~DkjhI`~vG6 zUm=c%>~G((EB;!x36;a)-XoHDg2@f#N`oLM5l@CphCPhQ$g-HAG>3M5VJzh_ll}wJ zWCTj#7v>178z>BugKOl;P~H?dA=)c5-PAByj7eh=UUszR6j~@Zz~nL6_UlH z^C&l*i3pR9|B^GR`cM4(KXv`5UQ%f~V^N{CxKb$44%!bbx(3^8`P5i3nb1mUqWXUCSwphGqplSdKBa6mff5_bh2JQ0@F(QSjHp|Y&-sp z&A*@}z*3V4iea)TBR%avu&D6Lipds`NZ8%2DB>reOW-#YZbMuyV{r;zL!kpHkXDY2 z3*#+NndGm$IqNtj2;dQ0<~)LQ&tL}Nwj>1aw&kSl)YOcNr9%-{`D3gzA)8^wA|OPh z$#_vY2C7Pe@&k@XRmzV2GDHxKfS!@^=(fge8yFjO-C`Sx$~q(VWUmaWDOn0BMHUg3 zABbR5z806q3TT>+1h|z!Ra^KTlRDw8eWf?!}viw{a*-gvH9+r!a2(8eD*kjoq zobqv0$ug{p)30lwU=bG6TAq^pu2oUC3(?}DDd+e(z$^eidx-M))L^U|*}2yvYy@P7 z;ut%wgK`yN!)I=#J$qv`-AL@+8xho8P>Rd%U14!`5$!0>oj;EgxUtjV=qO@;>wpU{p2aJ=XydST z`;f)cEm|k)y#JGr+1)x|JQ(xhZ#;v+FzAf<_|2=FIJHKhCZN>q%{?0R23eZZI~uXF zwoI*2rgu2zqjx{!g>PJ>SP#iF!<#>Ui_>S%(CZD!)0~CHMe5B85AJO8?$3Y8@BLTb z!}C4%cMsX$Kj4M0KEsdx@J-fFuCuzbPPrEFvp4>Xa;3t{UweseXTZIC_h_}-)SFG- zed8A_udGlmSE$q~{P?v$;o0Y&Wn<$EX`XTG&KJ0@$E)A|Chxrc9-iZoW`?hP?PcD5 z_jR&N;ph@)&z<4+-K*TbeVg^w^R(OZ7~t}iw^*28CM+yct(AGQb&vgnO-`Tw3XWSK zNirTkzDk@%oIdj^qsfr*sL$ci1A?%^;>xoOh6ju%9s2!!3WXZ2g_DejN5t`vet%z< z9UAi_=>#tb=^SnoM`Ma*vHHu^29t50$>_+QnsW-JI<6lQ4R?tr9jyIMxpjdoOGu+5 zah}o%kl|L=$QD0XV&_NmEQ> z?Rym3b#0DI;T0=5en_6BCV!3*$G)ZWO%)&*dn~3RnAopo<3BN}Z3Iy#;VO5z^ROS^y3DQK7TL5UWt{5E1?=+c6DRVr8&SM!71{H;05YbYe6TwxUliTNs zj8sZhk+M}Ullft@!ToIHN)f0-q^0p#NJ}dd&$&NhNN^8Qr!c4cM>~%7T_QW*{nj(zS zu7DDSr6urD9Z3J+6bd?dXr#D#UYx9C&%QK_j3{CH&clY?j|^E?M4LCS(18%-wJW1R zU6P9#30#%bhTtOzo)M~gzHhe-$KcK*bnbnFwl1UTf^LGdZby$@`473%7n=fI=exNgtd}v)HoMQ zWRRhnE_zPbQ)VEpj`A!|%JQbnRwA}_)v>{Djaqai`!um*Gh;XZs*Y>~4yU{rKPl4a1D4Oj#R}8Mc+DX(+RN;D}St ztg-v>kT^-G6ldB^H0;`uR!(DHx+jPI9g=u}$z!zRQfZwfi3S*xk;i>ZE-T#H2{0y?QQvqUlge$3 z$w9k#r8V-nBjdkxWC`u5%|0b4C%_4tm}DTLYuY*ZtE0XzWv`wVUcWjb{ENlZm#@#U zn6fAY35XvHB^?xwu?w?&g1ktj%Epcdl_T{zc6{iBMOzz`qg)Ti3oLw8UhjDt+W@+; zVrL>>Qz_iAAh?Ds#|aDgrTQ`L-StJtP5TIyM!W6|IBN17@|h8<)RTfpzaav$6Nsylzr9hKB~nQygs? z_8-7t-%zN^lfVn1(o&RLf;liogi)SK2!609;%ay#e?SAbGmQ(m^?$AO3qCsg=l#b8r1SlWZ)g2JyT z$c0T*Xv-*a_(%@!=|~YaMD=?GEmInc8W}#!ZRlM#0{xo8Ez1eTDJYU2q?R3p5upYm zezLC37e^8V4p$U~6B5=nJqXw2$(-y;j>s)4vO^iEgeMf?hSc0-9s3%ah?r7J z@>0r`>t;Ra33S^6smyzj9|#h`T@rSZ8CanZK(;B_EN4zWZVqKLQddDY6#15Qwj%6U z33NpZreSCWQ7+dd7Dy;#P(>@s0tDGGVm6l2OB%ClM7X$+-%R8_F1WHaxSt=FIEQx2 z?a=0+l(>s(*}67^3^g&}X>pJ$vf*bQCz6jUNr$2G6nfDU!7{dx&!bE>`PKs{Y0Pc{ zjc_8?^!K)atzIo@t?9|I*bS@U!!Xp)06R}s=DNdnPjVq4rbS) zB^Eq!(v%#8Oq|OG=F~|I^f9b;8hUrE3*}f*6j+BTvw5dVl(z z_S47qrvvdYE0Z=E_Bp3SOgT#UY+WOT&Nc+^mc^YT0KY1(lk$!qPCCjMcO$%_hcWQ( zpS{P%#SKufbYcl7)WXgRM40W}Jj4$@oIrE`-a|Uw4vQ;`RN7@q&5$g~W!f6$+`M)Z zlN;&_6_(dlP?3XIbZIS1e(UmES1Gt9>MJ!)o*ghCP_@8SYY@5A!lAX zfgkvIzQg7BZm_W4qP1Kj&kWm-_c_=~mbdahdJyU6$rI*f@EbUcb-ft8a4Y z`EL{WMdCQ+=ABQdRvVl-{Q~#z-ylv5y}=&OJo6Q@RB`XYU6N#i>-ju?>08{o^$R+k zL((jwHMh?E!Up&6{(>}1Na7*$i|6peGTU3%$t z5hm7T)F)0Nv?HU#B$^OSdc?^PlT8Q<4cxFQp>~szMhB!(5AB8+6XO+EaJ?egWS?xj z%M>!_l$OzMD4@|ilCZl;?90OfJPS=3{pGQ263z;h-Q(Ad<74vlOBjVeFQWc)T`PO- zr$g=fsdqKgO~BcoV?n3G;tUL`l!JDsq<3WnQTmkel^?rVj)!)AD_*Tb<+zfG($ZBZ zbvJTj=_3@!%A^T-o|0PurF|dA^#tFbHGZur@X}PWUT$c+4x@=Z^vE$S9S;O#nq?>q zQTMm3THyupebim)nq*tk=m;hQ z;X8RnMKU(*-G)&|g401!o;+R%jTH&GXDN)kBJxWO+58)KWkWEFg}AsSyNdT zBt&e3@s2Oy_0bb%K+*CEA-l&Naig>=C%oQuLp~C*Ra}wrWZD-YmrcZ>%M*iJ0Tao1 zG2WBca=a&-iC#cS zhYBkIvl-LN408E-807wK$09~Db;KMinM@AMCbLr$Wk-Y4WrT@{B{QY%drFAzo~`Z~ z+C12SnQd&ELm9K0p@iF&FM>{m92ZG@$1atzPFOUE$=;)N~KZ4FN-+4 z@zGs+-7aA%#0xyMak%=68=QD{1??)5amJfJdY^Koz}mSbij^X0*xx*&wc23o<^knq z0nhcR&sUiYGrsuX9_L>=$@2OV%F(>{vkz%6*I8IuzzsB?U;Tn|wM5_+INa}1u9OIh z0i|+@pZte6c;@AEEUeFwo1D)+zQ+0I&eH1)*xNc_WqF;Y)dikB+~uRozvLhP{`WZC z9gwFm91S>eYMmc_|25XvHdtI(qt-0(@kgIftyeg6{uKA_JtRvrwBxa`G{=vA@+X`> z_Z+RcIeb6l{SSW5`uaMjHZHQgyF<6zK|2o5JpU|jzV%a@^?5qoBc8i-iR(8$;qdT) zMty<#xmAox`25B%SX(_$7}jVu=6SSvgW;&hnbR+jrV8!2Z13EoSg0~Lf0FT}PiCOo zc}#om425!?!Em1_8W4^9lxuSoD=mioed5W0C>r92MQV*j;%G=_az_0QX_`=}wM5If zF2nvFc^2V?Rq`~#3o2;GAs)%cwap6^svBhKm^|7iO9U*al!I4U$0R)~5JnPQ&te%d zm>j1xCqgA1VUi&jp_40+ck?Dkxdm%3Wp-ol&q<`e;@S6C+%9u`H`)zm%mJ2MnbI1!2dN+V%09ZJa_;cvvRKD_7C3Pc|OOy=h^JrNcfZ&+D1? zU(K}tuQToQw{iJf6Ih?UX8wCG;P+i$QCoz@vXV`|q7ssNDCmS}0OPJj8%*T$ySEHU zB+rY`R%+B1p}wjqHYDqm$1)Q13c|V??aS}EziseKFzE<=J*X&3bCSDq0|AHn1x2x` ziMk?YlD^;_@hOL>=fq%o%No0PrfZDX3g=w}O`NsZ1)4np>3Y zly;?;&@ITv4n9e(3oGM5?J~=4O*awaeX$w+Iq4cSxj0zKk!Wm2V!Pco$VE^V?AWWH&jR1F!KYBmp3u@W5l5<^ zMaZ}sy=X^teG3cC1pKMn(rq|(q*PH$1y0LFH(YVELb)GvWbq3nN4EX6lJI+C1LMAy z4M7VpRTamM)bwn+W?~7@Ps8XcupG0Y@U_&)mPjvn67-J@s;s4lFtyvF+o}83neWD}dgD=FBw+m(*Zc9rG% zg;ujINaa~U<%xh}n(=jze4T~HZhx^&xml78qDe+J&T&gFDt9Q=rGqXXfY)#^nWA?% zAgFraC?4E;M5$cBEBLhLTNJ7VyQOFg-ye5)a&w2~Y8~JAA=9)@)G0Q7{Ibhr5Rs)B zi>DSi+UpW0F~w4ma;wbZ>LR^vpF%Mti8AKq+bo`%M|+ybpYL(7*=7Djo3QLN8jkq< z)7zZ?%1Ing6HgL;{KG%vg|9w`6KKZ$m@B`$!Rco=2#Y?Sy!i#szwkVb`8rve@rVEB zkNL)Le~ntJLY5jn`{){LrhnClw@X+E7!Jpr zIJw3j{qY}i>g*}boIAsCIOfjn+th1q>g_VGegAbXKKl%d%kvx^b$IiwpYjiW`+L-D z4Ti%JU);RPD_?ts!C=G}U)&@o;ap}@4eE7-RIJ!iqyTiG2&(ZC6xc0^SRI4laevy^c4X%Ij4oQ;Xcpla2 z9G>s<_|au+pc-n;RibFf;r>0sLK&?zrD~ff>eKJ;5tga|xPE}vntpeWG>P#10N3{^ zR%-M+JB$WhfnU+zxtBG`m2hoU;Xpt+Z!`w zTA437TiP!kZy0JdD{7tzsrM$aC{A3uVRD4a4BbE=Scx#FU$g z*1F`a{GtV08mKOc(=|Gh=U0}1A1b;}48tRvm8ydq3V*8DP*j)1vC0w=OKvD1A05i` zHJykv=7tdUp}YW%lN!G!Sch~XLdXjhi8!~64v)0SZk;*p$aVIWjYdXi!sh zZseq6Lr|B|BStaaG4ebG(2~LOicmSN2pX~hmyHB=YmAHv(?0kO5kg9fqotID(A}zh zoLokD0C}WHJHo;8=M`Q}a$CxgDiOD#aBGU>z?Sm*5N|^Kz~C<_{0$Lw>4CTpT8Z<; zbelE;rz#^Hrz!WVJsBhBeQ__GwiQuE!os@p)W1ET59W!W1e_Bx?qf=#S3udiAYChL zVuT^Jp=aX33~gObSz&f^ajq%?Fhzk{)beI=H=hAE&1Q;jJE-~NY8MG*+YP(1pe2ZM z$xC%JK^zQo36)Q`;Kn&>)fbU8WnU!*vy-3~JZQO?yOCs`^t3loqgH(K{bUC0WRxEd z(F)pTzl@Yn2SR99AdjUi0d_|DEI$Pjc2_O?k~Ip|bmjSx8MG~jHvL>`f2MUp^PX%= zrhPuP2Mz{18nuIFJ=aD9hKFUBjl zboU3`e|V3@l?57eb!yEj*FLyOty#sdczpP?Pgz=9;EPZ1aPs+8(j+Guq}=}eF15KD z^|=a;r^yn-;dYm!tsa$n3CDA&RT|XistgXsT>kJHFMs0_^|>l>l+ zOAOu4fO@&b*5h4{_K*15cfLZkS?2M*CtUyh8ZUkG68Ele(wc99(abHh`0)>4W8=gr zo_*;&(KzAe&6}J!u|c=fGcPkyLg^I z{lOpOx<2R6K2Nz^<^F?v9Cr5jN5AvW`1IpX(8{ILJLHwGf1PXBKH>1NgEE@)7oO$e zquboN^D!IiFHi`pBr)83c$q@6%E=Qiv%9m!Xgpvv>2Utsi*&jjjyn4chlf;a^DHi( z<>AB2#BoBBjaXcIjmk7?To~7jV2HS==K_#^PAz5l%RVybBIc z%E2UE^7sg2XZ~Jk6{S7fN7#crvALvR>Id${# z{mS2;8s~or4UyZBy=*lq*SAiRl0s+mloMvmEURVmOakpzoGI65T7lz)CAn>C%b3*v(!dxJWL|)mlG85t9AKUmf!>-ezlItQ@MZbp#6Y+GMr_z z0J2fv0!LF&nmma~#zW8wzgh>SUmbT2yUBR;eli~M>%9Eh1=j2TAG487%#Uhqa2&H*$_1i$fKZMAT#{ROg{+vs39r4z`7=oY1@5hIAr)DD5crZsr``v!lI= zi~)j@qTH5ELpKlyD@!Dcl;sGU)wvS&{YLPaVdnArO;(X_V9QtXpZD@x~C=El^-Im zRn>M14y<7C6#0Frozcr0RaWF%c6_D`&Iv7q@1d}>=m2q!T9C>a)5|2gq(H4Wm?xIq zl-O-N4Qk1OeT!1CnK5I#2UWm~X=S=8y5*o0Y$n;9#!br@uO_#;VP8Tfv!~>$>2J z*w-bweU@bOb_W#O0eKEze0r0`6Z0rXF~2g8SMWs0x$-8ew>@Cc9TJubOnMP_@7-o) zV}(LFWZ~pICe1Mzg1XPqZim<3d5v>tFHo!&s8^ff`lW_EHw-!h{Gv}#45(Ea6dD2L zVhO+GG495E_})jn`n|7EZIy9Dhj)MS0m~TIcQe zU*p1s=UHAn!z7B?+`5bJ`MmPA@9@SOKcQM(U_2S}!b`94`4=D2A9e|XIwww?r_HyNQEklAJ=|hE?2)7ieh^Y^%#*}p@+={mh`1_N z7Ra+$#!Bg!H10{Evs(lVL2-dB>0+Xe)ZLJS_V8w zGA5j6ue5Jnq>SUhq7*2rS?&>LFXF%HAIG)t+Rbd!ZJMi6Q_*F==+m_{cElpL^8>UW zV6s$PrJ!K1EBRQHr87Zg(%6m*g|IG6D;qcuLfleSZky+lw+ccLRM_*L?IgtH!p=$) zl2Lyq{FG}q3KjU3241Cx_C?IP#WH@SPM&2FlDB};WYCk5WhVSF!9omvH_3*7l%?bC zEFJUfy8K!N)_Z?wHi|`FFV$4NwkWx$JcD=)rMi?hcef0A3P}XT3LHLw&Zc3~SF_N2 zp2@afZ9#soNyl5usH-BPfT|mZE2o!7C^x2N3P% z1Pw)DQF;i6o5ID)W9cUx+?5PZX zyWln?dy-EeJ(Qq+W<%sUfZ&7`uzTW)DL|JMW+XyLdw>JUj=?D_{1q^cBHfY=K{Ju^ zXXV+=!XqQ%q-V!kO2DFKZ0~zsz@cW_3ZxKJgsoQrRg?Qs27yk7GL}+4uw_tX`#All zPSyiqhpANuvz1E~P1&B%OO9+5mK5e76BL0hcQ$*eocJ@KpQGy z+l?SwbwjS?aVYtD%|v!&;3$=?K1)i+5jTvIh@fc|4;rb~@sKg2uVvd$+3}qHzw&Ic zwXa~>OK4FF1nO8US>YyQylE)jjsO+*bN0~e9RGdlFnuY@Wl7B#MDV%O5wrX(@`3!m z^Df81dqljY!-Oo!ajOnllrh{MQCcXXv|{n(;;c(h+0o?aa7-HIxPi;yXvqG-9_^(T zLD6S^VFAZ;$Py9ty+I>EUj2<%D3n4*!!dX7-sOd_JkOgydxuJ?!Sc#7^=6G9 zzxI7jpF2fsZjSqRA7G4OeqoU$iul>jf5g{c`3?(9iyR&taqY&(TsZ$Mo)@yWzt7(O z7H7_$=kREc8#k}9x^j|2p@w!`zPSA{XU{xOv$;UG+hzaY37#A9>@zQO`O143&XV7aunmiAxSzRC{!^fCnz<@;vw;P zPey4b!wZ}E#W~XPHfeMy??f@Ug*k9M@^mCH(R3skCO4cpK|*^UT8jHIwm=0nW{|WQ z^z%36q}TQQz$E)BhNhcF{rMIH>OVU(ROb=`nmXp9b6wI1bwLrQq4R zOpYIrr-^L*`Jw$DExsW?29D-ghRG64lFX0`PN7I1M^f8Xu1N=BB5s!B2WZzNk7XpG zw8og+65n$>cFainUGg-Rj$YRzv)nVUT*a@}XY_fuSi-Njgy9uOXzl)Pp%ngW-}fiJ z@AK=p{8|Op|N3|TyZ@oLYrZ?~8!AnCk|Z%y+nVO85ZnEtBF~{VFXZ;#F2obbQTath z=aCV?)q|icxh)J-=M~Kj$uc>PA|63d6#POufzgqaB&U&ljl+96=|m6?UQtGbAc1qg zs&IV?xO+uKbY$=gFxWCgJ-K~xK{gtrE~FDfGB9XIGu|`g5sY_?07Q#Qw)Muc8CaZG z#78oUh`Z8N=-0#%ONB{C*oLDkIa%KjA4$mFt;l_7`%YhL7~Pd(+u{jZ>oYW@0~vXm zSaMmqpahwq#1TvOWxNtBD%^&Q9<#0?8%xODUsSSBZ_OUoZncqv~`kA~tQ}ZtPNTp3?1?Fyo@?FH?FVARv^ZlB%~v;q0)n{WF$l}<$zn2`ZhX`an#`4W&`^Kg`RM1LbMfV~EU&EK1`a>@ zlb>?t;z=sC65~Na9>e@ni-X-RZ~WQY{Imb+pAdvT+nakl-g?aQFFwcXKY5e&6KkA2 zb)K;3@$NhCu&^}8!onh7e0B$=H7je&>}>9F@BUrB_3iIqGR0^z=E1{zeC->r^7dPA z;kqvK%~ejET<5bZm)YKV$oKx?f647zw@K23UcbksOJC*o?Jwwehm0nD&Yio!{RcOB z`1mF#H!e{rHb}CR`;R_jeoutuP;Lh#0 zF&NS`VqxhSl61t*_I0#yc#%rAiaWbs6*y z$dVXCj_dhU>WhpA`$Urt#$*_iQmUUoDTjExOBx?Z21z;il?}3_FI$FbB(78*qm{;x z;}uuP(>~-ec|4fC;IyoUGp(JG@!-?KiofD$@GtwLj_>cOER~wBwa>0I4Wi3UNY?xTUK6+(2*+wdSmYP+1@;c`m?H``}FylTAjm4Ml?@>34*|r8HitL>7tg z^@^2x&|JLW6l?#+Dc1P4Tz*~R>cJKBFD3*2kCUMUZyisOOknRmjC)Y5%7$P(20u{L zSJVs$suhG~VPj>nBAEz7$_vHH+`Ai(yAtCE8>IM7B6l=1XJ3V#~8H58Ow$??3+WdAkI~CV1;B? z#(c?vY!e1c3a=p}K$9x6fruujD7h;$25ls3MXqp4wg}pXbO*A&u(Xt`NFLd>`AkCV z7#SN80~1C1L>N}yX`8v~+LLr7Xa^F=_YnuFs06i8lMO+pP}8Ao{Fx5W2Yh7oGeO3P zQ;2bFPtu_cK#%Q#p*THmS>Y2Z%yx!K4QkmDQ4kw(K#np@FGp{9f(Y2o#Mw!W1lwJ^ zMd)ZNI_*|q%falVC~e)ML$S>Dq9>fKP>V>34Q7<1mpls#O;HUO(@ABdY4cR3C;Tn6 zf{`5qI!GA5=Ajm3i%|LYF-#q*u@PrU+X^6iTr}P6*v%SA;NKibHI51$anL4G!^4qX zsn&v`P-PiUnx1SrVuhGeO2kksKXWr;R-9}m)@7QCCC>)zwG~=DE1)Jo-w0*?(9Ajo z=^=ToRDOrkZ9*9@+WU4yh!5|L3Ff4X*)RHbY%HS4E6G~nl#^&uIK0y(Yy_Bz;?d?q zwC7N6mZ(;$EG#a{_O2Cyy@LUlKe)o`#xiKQe{GZX3oGD2bGd;@4G%uvroLJMZTRTT zPdNGPI{WuKtY2CtEC(c$jA1w8`UiJto~Tl7RtU--w?2M=V|=Ph1rd;O&eoG1mQF5U za@fD$WBbt#=UzO8ANp+HJYx0K679t%Zb9?M|I?3o^|xN8-l`IhGv0gWeOA_2@I#;O z-WaVM7S|Tp+dSl>Uw*<@zx5J9(Pz{jap&$`p1pLDpa1kN<`)(@b?P*p@A39qZ*ubV zX|w}(Zro?Sy~OJJDm&YIeDKNp{4f4jzt7%gmn6;T4URZ{_6$Gz;SVVlE37V`q1LGI z*=L{9Xx2G#YJ*?C{~_gS6~}Q{JF(82@BW09rBk$;OJpYJ=ABQe)#tc);VWFb{wc<| z+J8|BuU03$(Z)S8MNzibnuWgjmYzi#ntmF4Ha>L1f*=?y4@)`DQ`mXqj zq*7_)6)UrTLQp8rm+R)!v8f@8Mm8ibBbYoI3&O#1@v3#fL!^o1wHj@luppzrJjX4R zrP6LPJ{E8WlHL&}%gB-lrQHjogWYc2@4X-Qd;Co=zZQXY{XMe*{K)qesU5GiSEaOh zcwlBZzC4G=R}H;A=?E;<6{92h;VPlOR*sV6iB?F6sD9Jnfd<4m!j5id>7%#Hsffhs8DaiHHeR;8%SjLA+L2yz| z*x8{3+LdcvuSk&{%2-f`itNbXHZ9HFkx;x=;#BF1n)a58+f-M=F*;zjCZ8YJOxRiZ zfBwXt%zcF_f;qH~MuLcm5cGzISV>;VmLlth6&n@`iY?UE>yC^qcT#b^T8=~(BAf5g zNVvOXOPmkv1CAiyOi>=_4PV5{$c_vnB;fAbFnMe+!&HdtftGP%L8EGR^fyHxj58tP zp9;wjQd<|J;3&l$rRY^3GRU_j=VdYxSQvw9PI(0KIF(Yf@?;TBGSX9loxe?mr)wQA zS2i4HeTG9L;rE#6?k=TR+po^F8~!m>b{>? zOd`*t!_T^eZCN|qytzfSS-~l4=H}+9v}KK4yW+AY!<6mEyHuKG$P^E5JY@as8p_qI zU0A_5Fg}{#hA#0q;hi_$<@}3haXih+`l@6l9S^tY(BB^O&bx1O;e~Tl>s6Y|b+R}o z&kV(KiAT4e&|Ii-u+?GyM4P}VpwR3**(Fa5FaE}}IG$$GkNN(;{~;TvHYnFajDZ_h z?y$79LNrM@+&|>pGiRu`t86{m=FQjN=6C;>{{Yu<2nrz&?mXoDrPF-y#${GERylp< zG=9P5op;`4er|zgv%wcvZ?iDJ%;L%%4<9_@_RTwd^SiIIy|ssF4kAo8S2!o?B!v7<2!@7o0uw z9KFF2H*bGNySdEb{2IM}huil*W#hy%gh8Etzr)V{1Df?EPMv;^4?cPg&n=UabMD-W zJa~MK-Q9asDhpI93wVLg!-pT@dLiZV9F7|@80^sNZBeVQ;5ZJB>oMr<5k~{&7SEDq z6O748qA_taqEed&lM_c{l4L@f#1t!aJkKYIMr4+!r4*E^^Q6fLrCrjvN0#={ZWT;~ zc0&nd$6fNIXGgy|Zg~SmP97hUC)TYpIXbA>QfJ#SIDOZyjzx|N8!{#|*;Am=zmAal zmFqthYX8zEpmm(48-ylHj-9RPNYEIRt+^3r$u1$y!tmxP=%)fD$66_2c7;)8!}2-^ zkH?1!d2^RU@_7__l8{AGiDN(jp-F@>1}7}ySELZyWGPNi#4p!opI1sS9s(TAXGn=; zV1c7)g4Pb%ct{$Laa3S_ zhT)#!@Q&fhhdFy!1U#A!6=6--TuvxsJ(C%-Sg7rBN8BZo8WE5$YAUA$KI#+|PC=1P zMAUV@Fk}-bE=s;iTi|7MWa!;CBppL^C{*|Q3yR{p!mHX~`@k@`Ew9DGvL+otHkJ`z zv@NekU53&rgim7a6N zb#Z{2jNFuq(AT>;`A#bD02~AiT2MCRE&>K$3y3r_uo+|exe(YbG2KMgxx!|de1)?S z%I$N+i87FH#k0`5$wb7NgH&9wgG5T93kuzmP`A=Zx8O8~RI+YQQKQ#95q2J6Df()f z#ZuVH8pP!bt+>qX&!B7PdKz({rY_UOI!;!o;aZ`p?Co-6e^+)KSdy$0+AcA;RtUE2 z=WA+~pHo%)@^?56y-)M|1$7+ef9jNB?3;R%!uVi9cc&}cmpP;bn-_86)Ymp}O0uLd zeJ*u&JM7%uo895PJ9kkAf~wEAfA5M#8?sqY%;+wzm4LkCHyVvfK zMH!FpZAw!_D;6zIu_}%|l9sI^}W| zl;PUvR~QU?eD}A$%h6ufiWQgM;DApqzt5%TUSf4^jqzy0Bpz}4+$ruoxJ9=!pj}_a z(VELw-{bM-U4G-6|Cl66iQ||giFo0~uX6SJFUay7&nqz3TBO_G;?d@9R+leQE;s3Q zd&KdOMq`e-)&`rKw@Km&3dPBjm*{jhIXc?K^9mFSH7eycJKI;u^9(;IQK>DVw8P%c zO~SBD5ELnt>tNt$?=i+0T+hezLkut)b%a{(xVWy5(pp@wXoTZ?ZerAhnu#j&!&#tB>YwVlWtm@FZW`!ms_-IBOf%3$K| zUo4t_we8@q`sb-4=chg>W51dB`tsK>@nq&anLInrVksqbcco|UmG;8p+okbr3(#Z< z$*?CObtT`2(sDcPczC5MPFMn@@6ZXJ>Ny1RSs*?qi^e4V4(Xt0Hv&@;Y6!I1tJLwU z4cRITLi}12zuJ_qhn)QKEG3tyK7%UjD`o)}Q=e%>OA*`F%Hpox9N8F$@n4^#w&18^GsO+zr=CYzt zSB$%09Ym`0ii7)x(V<~@WGJ^~960G2f{J4Pj3y|7b~W)x5mXelWf<&Ay-k)%W-E;p zdp9!jR8d>j1ZCOyONNqPDlN#^ZqhT>l@;;VduWJyhGH8EbqUFj_vP1bGKl-oyPsoH zMcfC!Dh`{g*$l5o1#iaatn0YqB{ z9e~%=go`k^nUf9-Dp9yC;aug3)UKHHSZH~5b?oept@~l5NZPGPC!rbH@nqZnPDTP1 z)t)$9W?~4=Y9UfTG*YMI%g9hyt;=EibF*!O(^k;2F3{1MBMdGpCQOP{WoAgQ{o|T2p$vuf>&fl;9a$$$v?Oj$D6Mr{mksK%0$HMcL{z8R)7$&P+{l2{t@0 zb3Oa9sVilVq6TD~93PA0>6>9Qv2OrU>A_T?;?W0>sV-I}N)l_**buaQ&`@p*$Wt0L z#39?cFD_9~_KErtH*el#<-{sZpjla60j9OY=VR{W3u&;N-_FI@r!)nc8>LK(-` zl-fm1Zn*x=9p)D1DAWVS-Iz+dgmyHHTxtsyy1RW`-^I}$I&*0*)=83-EXmn^u*<0n zCn;0{cAp$_;`}O0s|z^3=I1|tn_{`lxtBLE1|Hmd#QpmZx%9PXh@+Hpqf9)=m|JV{ z@mp6YSE@Y!)eC4xarM*BDV0mq8#Nx>dcykJI`wvq$tdDyKY5+s_};hZ9S+fsL%-YS z^!d~L;0J%q+|nG+z3?o1+a0>S4y{(3NfhzpKl=f{^S$4vR4%f&yT_x=d%XIMZ}5X3 ze4lEqhU)QMhDz%!@C4gAYD=4c9GTjAC)|6y4q)kDgrP)X8t5bbzA+o@`wqEYxVv zou$)#LT(Jh;Vuiymrz=BcyNa-O~~?uh2@KkMjZ}z?qZC=kkgtwL6#?Uj<)Q{HmALG zf;>&=b@#2~krEUtlqzjT{T-t55s;x>k4pP2@o1l9yl=;P8BWl^@vFkf$|l0SG6~u( ziu0osI6iqY!eln%kS8dwI2#k1+-}s_GvSvqSIR}+0sWdb24`Z+zWAQ1z)_BeawW8= zv?HR)j``$vvtXr&n^}g-Wi~Q&UEE^DI#vedg=nphw-3$n2B67v8N0?ZBGrzI6Bg|< z0C>d;Zdew9g~9O)Gm$iV7+Goq?bEuQh;%f-q#0;s@eT6s(yun~Ds>6E+boz@s*p`a z!q`G`X5x6I61KM^$fV!JWa);<^RCIV_f3}Z*S-9W1lGOx%*J3~{zH8cN;So#k1(B# zYz!W4!DJ{!%*C4Y1@`x#P=V%(WU|7t9EgiGO>I#K?b9uaLIp-$m~^H1*((SaD~$z@ z&{&aL9KWncBf&tFT5>?oA|>$B7)o<6+y#ZAwyG#EfnS2roY74ZHW4#{#^QyN3p0s0#6eY4SddM}bRb)U zNmtMle%%JrC$^;7gM6&)W+4R2iu6dbQYIH{MADIyl~a@vruHD&6EWq4GVaSQZpGx_ zl);;`&QwQ44w)j^l+2a8pm54kjiV4Z!kts(9T8L7Q#Sh}I0jX+C&-SR;B-qyGI{TK z%<3-N+Z>9(QU>ye231k$MR7`$%_Qm-h1s*=_7K4`jD+^B8Y1ejqDaQjL6QEnm((UH4vfWG^!-?E>xHZBn`lvwiS56=!U==9*s%Ib9@p0(E z#}BE_Rne~E!Hq}sCSB$h=kT47wKJ=;H|yGwvH7*1-=MwNM0=X)SZSXW>Et%dDGd{)7h)?z6DCNIc5;#V_9D>)&`4-zyTu5%(V4;l-C<-a3pEs>=OA6|ZoSHJ#Sc)CEZH{kL1ZO)#(K$MKQb?b9{ zzsSPeDudAxcOPEi#QH@%x5QvDVfWx3)k=$n`IFqa_c2+TV#wJz`3!gN{*wM+pGsw! zu+##Rvb%Q!*A1vvml%%^nM6It!$az=Rl=~spts9p+#}0Vn)4fEdBSAe6$FFHXtq|# zvV_sFOOi(9c}lTd!*M<0ct{itFnNR*lqi(vNumx}+$Xc^;eL71YK{?T7nAfvKq(hY zic^?JItK^jGXz79TUrDY$tW(5n1MuJ*}UC<2Lrc$)96qN-6#25#iHYiBB=F zWGTklwc0vX$aR$KeR)Kfr!!GB9Vtp}4LE)%Ma)@@a=c^UXr6=P;JTj8PAL&wNiqYD z8oQY|4bQv95=tPEIDSY_ZK7Sz2G|X5Amn?KCbMHpo6WhCX-=b0{56uXFhu39SFkfBi3CFV|Tt z)+G1j1(JsPim<(Xj7Z)oiN|q|>8+v;n09!?O$B;&HeXRvXI<}2E_kGE^4C<;r8Bx|in^j%OI|K{A$i{e`-s`_Ps+j}3lV)H|LDo-U-HQ1K7*VQ$J;{&;%A^f5|F{1-RIuHg_9!XjA^mUY5&eb#wPcHOz zzae?2Y%FL8trgKeM0+B13QLl?N{8|o$sm|l=z<8dd~Ev*_YCp2!3h=NNnu)L133Yj zR78(ckgsC~hV)QwYhv)`^ep6V#*(>myr%?}EqiwtZC0m0MF~LqP*_Cns={dq$z8ih zK)s>_Es%jZvO)=aQcjSdy6sQYOLCGmV}z(l?d0kX|E zvN@ya0i*zW!4cQ1Z)5|oX*c*hP;CeEB$0r-r%>x2DiYykI=Q%BzJih?@KImjolJ5W zKeb&Mwe>7pD>33$B@!}MffYlUjMDN$Ibi69iy7Giopq5=Kxi3RMU9@beS*`>(a>%k zmbLs{A={F@%o5@aW4}LY1RM$j!C_kxPml(W&E1?VrOaAfv}jO|Kxr zbb4P;-!8MC&!$0mEW{NF!XL`>+GGZ^Ck|w`m7)XrImG)3PD#&@5Prj#=Zyld=pK&_ zm6<)x{kw-0t$5jexJ$KOMY|4jt1TMUHhKy+)sQ7QpT2gL#WM>i4cia4SvtFbQgGt* zIvB%b98)NTC{OX}2bWn~l#^SnZl80{ouxWo!t-5z`iF1xoqzf@DvdISPx`$7&Ig=0xkhuT zM*m>U=H?dj%WYiGE z5yulsm6mL^VTj`~Nj#xYC|d_dlch0fJi_w}vYn>njeQz*$g>F7uaV~wuHPU}2IQ&0 zM&-?e!mpkoo9vP&9qU*bl=g6o3*>P}m{`;Btx0VlK1X>aD^9Yf#MRRR=`Rycf0fTY z6>!&%%^yv}=uZnfb$mS|VR9_jO1qv7&Zg2a7#3}5GZJW@VIS-`G_m6g*lmxkuW#Te94kn957}<$S7LDaTtq9BG2_{X^u7_7`2m>q2al;}(b53aT zkw6`tpdbvbXlyHX1csW8hvHtQDa!LnItOG?gmxTTIxW)-w@@TpSPC6Ke9`g4f9?1o zf33@3S6uz^|26$@Cw=w5JK8e1p3G{yJMv3vuE+tpPyx@^_(iC+1+5T|Ac+jFFaI7M z!0<4~mr=ajklD`r}iX!ghvVB;WclYB>>85iE ziez5|W7yV&8@2}L$dC<0WX+HX+3}mCtOHI>YDAQ)Fe4F?q{78=t5Uc;1Clo6XO}#Y zfV~rn_)?z2TbJ=*x+NnVT>xE|a67hWT`4)istK}sKV@u{K%bJ(HUpuUs{nLUVeaLq zOh$&LCt^&k3M#@J8OZ<@?QMtCemf)mc6G^|nUQobnypL%;zeyoeDd5hyBVscapqm} zN2zQ9mPCwTfSQ9UiC|MjJv&}0koy^k*pgCeM+A&gGZ&9o!uWd5m9Thjq>Qqk|APj#CGtu^s*V*eUDVk00f>Izy4~$;U{QJf?z{O+j0#ZMJg>)n^E* zV>;qRMt&wiMy>_e1!;`$tqZatyCP~+X7e87cQ&Qfg_F-md! z+I=40d(647oSK0n-+%K1PM$l7$u!D9tyZVjt}=-t-h1t1zV+L$Qf*i19}W1)5C4p> zfA?kLNKQoECnHuimbv!Hbq)^q`NnU3jXcje*y-ShK68t6{OKS4m`g9d$o#@QX_j&A z>J?u8%FBHC!AEGVIe+0IuJ*a|`De^8%;Pu?pM3BMi*qMfSzD#kIpXu1pYpxm`Nv$o z{1Ks7A4EN(W5|apw|d zH(4Zw&5nnXssXfDJmz7|#)Qbh`ad}qoNn~}WuJdqX#L9l8FL(@p9(DN7CB*ANc3jv zt{uOrGTAhMua56Cm(aTQ3sxBAD96POisaL6Lq}Ve%+lU7;a^RW42}hrl8d|KR~jhS zBhM1F=i?U3B8qaMYirk&N*p_m#AIZnp@_0972ef&H2b?>smmM8Ji`e>!qyzh^XJ01Xi{)1kc}nauN?5_L>whMU^0a=lA}rch@c4&@e~6Q zc=HN>PDEKg6w#JEF?dT#V5YgaR>E77|Ep9;?RiiB?Ucc3De_$-PQ{d!WXqwIC!37< zu9P|JlCs$vWIX7BUPeOfJtLW{1?yDxKsS_xtf$4#_JmDhp_|GUAzMngvUGOpa-t$e zghPr{@}Q1G*ol$R+L|j^gTqYj|1gJcDqDmVjf!l@JGU@VN1^6D7>a0OY~*VwpsEGC zFvu**z*uYq=$Zq*5-!!mb}jCwl094WkN+OnkzAIGE9F~idd23ZrU1|BrefKdWw2Di z_AC}{O-?r#N6b~WTw0;Vx$Ptr*UiKdgg2cW(p>Ug-D&BwxOgg*pO@(w$#4yfWq!%$ znHEtW<&uZXtYcb|0&W$kKvh~>o3Dd?VmKt(XM=A|Ly@nF+drOb|jnV zIwHoJjh6h59s7LHFgb`B^+$x2fFw%!{FCdPytsjK6emw_fNS$tzD6nd?9FS`=4u4R zkaDR?qt(FiG}?7IeA1zN*r!w}pU@PTEa3W@(SAyM ztxk7)$l-Q}=0bx~rA)0|;qb8p(NCl^XgspwhwsqAASYxI&}8?j3*P8Ru}mX|MU0x?mzkt^+p4&HLw5d zXIyyp9KC}9M|*wd=a*Sno#)!;SMdX%mDOe5d*>IduCCK+&$EB9$L)Jx@a^w@oBMYk zkY@^oW@&kuk3ap0mGu>tme#p<_Z~?aQLncMf+FvH@IzjD?jPWLMaGke$J@79UERR* z3Vi;>hq#W<{M-t09P#k+RZgA0gsY0AdBV>A1KO=sDwTQe-v5v=Y?70)wsw(+k1ms? z5vB4xo>w3@8J*5Us?}wDKV&pIB%1V@!~+`b6KKcbaPK}@Ccw(p!Ujn)rq|sOrWJ~M zYndb-GamOv1Yjst8Yrb1_O{8h7-KSAzeHG?CzFBclpi&_ z>X-6X*muXEJQyov1>H0hM(rG!ak!|`sRjCN%tr3C?zgR;q;4sAtF zmf{4VY#`>6vGeOq*_6yPl;;z+=5R|D8}QF?ya2aQB0k)Q+`Jkj!~dI`B@;JGc>3Zr z7k~W%>tFou|GWR8*4Ez*3(_apSdzJKJjT+~<-|Jd*p9#i3Kd0f$B;$}KZLL%WOg@z zLS0i|R0I{Nv~etUzzY@qT^TV>`hsL|ENQ*6plO~^gcbP#n_S^~ipqi_8i7VmlDVzi znRLZ*D9tGKY1dO&*I-3Tonl83V&7GSbW@;FT5qd-C_N z1*KIHbJ<8npdjB%+%;q)Lt$AH)Z}C{*~`(MV!UlF$&!o{G2(_PCB1^##P$qYu@r3^ z(w;$kil8k#t9)#4n?dwA$7B$$X<=YJvA?uTM4B$hC{rmBPE)LdE*=*~XG2?@yC`A$ zY|9ABVWRL>6uPElQ!o^lDc=`DxvtsAF|GBfD70@~smzG*YO5Lbor1UdR5usVrGGa?@_`GC8<`()% znu}=2g>Pjhxs11bW@1UzZ6WGV4m75hi8#@cQ^Pv_DnP`M0!kXy@Pyhvmftm61eb1m zm{Eo~Orh>TKer;s7DJ;@*3FuZ-^A^)E>CDdrBw$!VRzx{S>8;!$`a`%<3)lE*DK5A zav`%~wc<$L%OVrZNSrr(!91vn&2Sk3qyq9dZFWl)?6}icBIpY8|Krd*$0Nt-!QBSo z4Ol3tT=K-Qb8CmnTm_SYmjpO9P2L9`YP^bv$>q5-E&M)wa3pw?Y$>_^SfW;_1E6y z)TwhcTTRj=&c{ZIMqde}L;Lo_+ojpM7=}r42!8!H#hM868*s;N8L@9m!1P0cK7Zxp7bab>&!2n;n9=Jq^X=pOXWG@ zWK6gBghH`~=Y?p;VbI$nO(Pm}CotqhlL3=)pFB^QTRce;Pe|f1Q9LHkb1Ky)+HshS zI&$A8!7tWvoPabLSTeg*g!sipDQY&k6;BhC)@Zkg$;T+CfXPPoB4P~f;*{peqpsBA z%=!kExLA4g6x8=G<6iw${`>{^@f3+&xeiluyK-DhGoSVjPB%r6?{ns^S@5&XT*(HZ zE14_TlQCSD&V*u~CbRy(JhQ>^T*R2;7f=}TEJgbvUa2ZjP?O`hKH3T(`9cb^Y({3! zlY~4=WV~l2Ag>(97D6lhN&~lCoe4%KDBzaL;&@qcsQqAua4@Mnu5{QZ8xK(?M|%Mn z$R;Dy|Bto*dXg-#MfL90VhtIO}e)3I)^#?;&2rQYVj|GX&Xx4r$|0_%tWvprX< ztG_(BZAm7$%|JQm#dQIS)>?p;?37lDJQW_*?k95cIKE@4G&JLVOEMNQ62x-Ft9|)9 zhZXtQd;l0oh8E9<{#_X%PWCLxP{f=qWqUAgOE|npMTF&U9Hx~BH#u)A9P#BLd?~2lTZcn{Ln2IhMod*E1~zPqqCQwI_hL&Iab(xDA(@N$Dr$)npYPw7lKw=3Z0_|@?#$C ze7HwrtuE}+<1tn#;(CM^c{JJ$&|nGy@|xUoY2t?--~abNqqnxor6(>D#6BOs^$CS7 zSwFRkDI}L!q$O)xtNiu<>$^Pt{Nrq#Sw(q@mtJ~_)2Gg$mFDJ0_vo#zvUPfs4?cLG z{k;R8dhT(qesr5wyFS)met@t(B}P2O=gDTE=Yd60??AIB)b?~D!bfWv7arWSq!V$H z%1rWE{X3Q*QdB!~o3P@pST)pF6zSMvawX1~yI>f(YMpF`U>rOVXG%l8C(oyR4)bF} zHWhI+-Glj&W!{I-K}5s45|o24j#V}m8oSbhd5{%#$$>S`XsSICQpI#};UXEXWM6Os z^)s5Fp_uPkim?l<8;DngwdGf2vq}4q9aqet8B|jV z-a!Eqw}}^sBgM?3N?_o!T5TzfR&HC)_Dkr9dt>k9k`L43BC2&y#$~(Za%0-w&t$B% z;bV7lIY#*oYfxJBs=ox1F3Ol0l_Fx46;NrQ1pHarr8A~lzT75o-y3n!^olRlILD=o z`i%TcfQ()T1!_HTbwqBHFaySp;$A8dcXcPIiiOY-hiMsN0>LhX`ec)Ev2Cc;NvGgq zI}mlk###o_)ROl8pfjbG$A0&987KGW#Gsvs%W0L{I;|=ggCBV4s+KL)n%qtWV6jUM zSTakw^VVJ3+ijGB@o+-DSr=48yC!2qg##W!GEaE<2fyUZPyUK3C1XnkN3EI`4L`z{Rh;l4IX{yX>Q-X#c0%L z`_wstIN+5xe!%%tPf)L}k|r5 zbNa*ktgl_9)7j#a>n~BQub{NY`uaoc?7oKuIx822S5?fI&5meyP7_8|#=~9GY>X*$ z)=xb~Iv+6{?z**pO>g}yvq_)nWFQ$#YiM;=$?}x>bcl8($8oiZwIxM1#Mlz0EXoUr zs$KGApCawEKqmyXQ&^K>vmv$^10_m%c-3ueF&1HE66XLJR8WyIqFw-mOOz>2UNFkd zxBtm#hTkLPzU=#Scm>Zt$$dSLu~JxvHgIme_5@V}Qkv{9K%q*;Q>8g^x{CZnj5*jR z)}XY;uh!gX)JR26Tyy2hB4(5;g$A%Lz;5!?i7$gGa{0XW2T zN`T&439-8egDrCkC%8!*E9&uGWSG-lMuBlzWP}Ddoo5T!c_M z66C?yZ6+2e)Vi*?SwoS_CScrum*jD>siuH|+l~nl;S`C}#@M+{1`!7hvBT}$ z<&L@@DmCtNE@PBh^mc$fE~HkbqL;3f06wFWfcM;BC#4ik`)X-Zi@*{G%#Mu+EaSEv zL+83J@=_M5rdbQ*_cL<=bYHpcL51pQ>|OyCPsV%wVo8*@eb;TKof{Wx`Pt{Lw{R{t zxg6A-APw{~sE=D{Qd%vM9!t?=)3*&3IVVWxkt(6N8Ms8UkP{I}qmCMAjTpoCk zeWqdskrUs(xM5~09gcW#TT%#y+g0M!ndxo8zx6z)D#S&Lq z6h*>hdO)q#k?c*8k|ra{BB!%@3R7lGCj$zX59+R-B2N=0;{m1nShKZ?RWP3(Vr?Ng ztEfR#?U7CQD6*kDU?AOsW+o!a$QF_EVsuc$EJRi5MhaT;Yhch`EZHklELY2was|+4 z!BqKuTq*lIKKCmk>%k4hrKVD@BFDJ%k^g|;TL`j~jY6r+F`zwk7`bX4&~X*z`_9o) zXg9K3JQm|daf@%Qly+4#9znf@4g$efC?(@Ui!22wjS74jF)s36wiMn~Sx~wXXIo_0 z(x81`@>Gt2<;4}kc2AHF>3k^^L27j{cDbpTjgBQqU*vdEOfi{YG8qAfwT3u)N}QkCoClm6AmW<@@}$x8F-({kQ-1U;JgG$2rdz+InL}v$CzIG+lLy5kb}2 zRE!QzmIyo-|2V!Qf4f>+5!WS`6~sb%Z*MwoRU#+muqs!i$;jon3JB|vj^%(~>nd8C zc1dZs1w;)^+z@xm^F>slWCLY#`%4KUP$?6zQQQ8wg|+l$1|9(5P}3 zHs#n-OcZ_<5jHhNF_Pa+KD2lh5oYA_wI-F5ReIkM-9tstlarkC<-c%Cy5+Kcdvc-- z#PPE(Z)Rs!HV-SZRjK{O$rp4(xK=g=(-+|tp4X_F#th`Xl&^$yr9t;(8_nzs@!dP4 z(QC3@s0@N?Xviqh-WP|1)cp>c3caPU_eJpFgI<+77KI!r*ekIfc$ax)R48C27g`ya?Ap=#=7C!aW1jwdxY zl8Fjr3@KLv&dthQ;j~2%5DsE0&Y}n*)$y0yDpirJ6`71RmFG4ITQUlipuKad#!}nE z%*fVa(-)z1SfCn?v$fccJTxNasu~WR-5)4{ojQh~-Ivj;o!S#2**B7Ft7_TEtSPzZ zI4I?7Q$#q`oY;z#jBIoFvjp1xoDRjI74tzNy@Kw%aP&c+>P8jWK(110#%NzyKF!sp z3;WB6Tm`W6;V#xf)QT|HFx;Ke*=*s59;Y8Vjnax@EI0@hyz}ZiWLZvowM7)gL}3ht zVm_YJd#J;7I^*LHKBiG=GC7*Fetw9pYfM@MwGnw)-Q zTksFp4teuu@A1S757XONL21QXSKebh8FTvlwlLyyc;m`DJo5BK`nxiA@@>S{g>}aL zIq$vxu{ck?7W+E~{OBKk#25eYIri@i@WX&~lCyPggTMdQ_wiN4^I!Qac~)@a#x>SA z))@~bymI9g{^Za9lsqjdOu^3X4v#$cFyH#tH#vLmEL)q~jQV5t_IG*o(Z_k?oh#&d z%F|Cj&*4Fz!T6ANyF-?zy!7f1dH%CsA@ZBdrZevC-{84tU*L`RUdHnxHdoI99tVdz zl(yu_C!XgQuYQ|$eSR?ab*9x$8ssZ?87YY3tW$$U(n zCp4N}N>fl4C22Opn37t(g+h_#Gs--{nw+?{g7Q4dY)Fw!uw*FZ5mZ(&`B>nfHIJUimVrvx_c3t(Kv4;a%kqWVP&4fGN*&6*=;69me=!1ykmt+k9X0Sx&5( zBF8L%pAH0S+o!d#W6v(;T)|Kpr}cwOPD7>vB+1Ih1_4BVN8MYe4_S> z8{HcGN{y(~Lsw#Kp1Vv~g!cUfU{p2=l_ovfr%a^#P$`W9(*D7@BANbGkxVI)DM6$4 zTmNGJ)@JUylWWkTgHcy%_`BHncPhFo61I*{Aj0*aw!e$$fdSab!VQ=0gcxOqxLF}9LHsfmOxCnDy`F+}GS zL03+ECV}KV%lxYFs{B>ST&Ym5%)PdR;xTT!@yJSyV9T9IODOj(`90?BPHIut2|bgv?ZwQyWPJ2P%;)H!^M%dA91HksQR^pr5i zux`82p1@iQC)}%YW7SZoh8r2K>7~$B9d}X)Kvgv5KtwSL0`1F&sXITcJl2(icL{ML z!V7%Lv6ZXNL_U7+{d>!Uex(yrx}LMB7IE(B(8$bw6Dm<1=+D73_|L?3Wqm`_@T#_zxo2o(|qve$6WpJI-h;5oMXuTYZ!y z88RN-#~4Gib&6(di`|{~DN7j(wL04k@-e1Zz(&D~S}Zs2 zOyTlgCp@>`^ECY1-+q;;wHyz+t7s5To<1SH;|kFm@WmgB;(BAFjtzdh3MkEhwQh#{gWN6fAuf^;v3e|ZmlSW zhcF#jlBozIKY%;$T4qCWj%sbWx(#DRvnLrWtYSX0m{O?jSeP6-5nM=S>iC9{k14qi zr3CMwJVj?4!dN;Ci@9C8U87yg^w3gfEQ_WW2iN+VCahTUsUn+Lyg){S`3y#PMG)ju zak`X}F`rTp)fI6^vSG@KK=fmArECFVT~piA#2pzM<`Y3VEGlx+Bgs>Rbw#`?&XZYy zKLc@xFmf{TYvK|m2a?m$kvLjrE+_}>i_r9IB64)(Lhgn118OCYDLw;1OUUikfSFi= z6%k$O9T&h3#W}(%yr#lyNao9oWYiLDIuiR_zNZ;kahN=?BTI4LWu=VtAudDjBge(+ zD*SCldBC!>&g&@bzy{ncfUIU3;q6bt*Mybr5U~sO|r^LdxK)kM@lMod?cHtw3u@>c^ozsS4wh(Rz#zJa=*%5?W&q{ z_v&{f910zv!WKU6jk9`y!{cm|QIKTE5GBS%p{e9*l!v$MSqC4omqx z2a0U3;NJCnw9mCbLpn>TcB8l{q#9KTf`Haq zlX|bge3X#(GX{6Y#NC*yAAiE>3#SSEfTp)XbE{5!qlNMm!`&(Gyz@4XefCjSPj{(y zD`c~R>2Su@*-gg7G4p&ze`iFaTj${?FOy6%Jm2Ss-~2gGz3>>D=hr|fe)#R5LE*D; zaYfn`ijtk3JLCqnsMAeLTiuB zt!;k(>i2l){L^S1GMS7y9_?}Q{NwEG-(>&jHY=S|csgbUSm+#m?67+a9% zbFyqkt8)saU@|_W$YmwEy|P7~r;JC3xCuDT&MJA9kjy6-BSGwXvqxEE)H>)jFn-k)V!ZydZR6j~vI0b*0c!w_}TfVm5K^ znJ*V&E`Q}$8$`_x$`7$+E~U}+CML^H9-kLbOojp>EpkCQ7(+JfivwmQSZ}gKGFp`y zVOPeEm=eF*Jm<%?zw+Z6UR>d~z5SD<^ObMg7kj5Uw{cEJa4VZ4p1eRd2eDEfZ48W$ z#JM`WWjVZQIJhN$-)b8+A5xqE(m*Z0dQ7u~Aa0m$Pi+B=NmQda2N0#Y63~m}G zy9T8ljoqq6SvX~GNd^KCEv8^fOHj4MJ*aF#Wla-Q1oUa#^CBBs%0$Yky{b^!=eve% zAR%~LS}LoG+8IUdtc2dNP|n==PytGW8rm_iT&TZtT2VbKc_ULmx^I|%U@;l^Z3x;5 zzo{vw7BiJxmB}S9Q}m@gTKN#3Rs@@JLNrrLaUkDk;UsD2*5SLXloHB&acD7f@GmO7 zQ!aM}ly}_Y%@O><#Elm>+zC3cm;;O1wOB1oEWN(qAt?!|SDd>xu-L1mgrR0yi!%kRSdtr#2ZK_OYK#DFgc19<`%sA<{St9z(kAe(s&jh!0#KE4tWgA-LV zVP@I6#oW)anGyPV>cp9KUuQ&sks66e)wL_6RxS%BuAlA(ix&sF<;(YLc<7EB3shv> z2|!f~D+^FLpn&8 zIk~;tyVyeTE7576waqmLjD_BXRiW;e*7eRw7VGsNz9~}|tq669as86#A3sNPt3ggq znx%q|8O?a@)z|PnpQs-2>~qg8McR$4*D2GI_h0!41ymXlYVNyb6d5z8qm1`Ic%Mo$ z=KNEqIdyJ};b_EsJg3@<`S_iyr1K2l^JuL#D09Q%?Ez0c`y^}ID`;Qy`aitS`t~}{ zKKohHamG9Eyu&XXr4_io=O3?q&Y`|Rx; z@a&VH2P}ipG5fm*tZsC8_uvMjai3G`4-p0t zvt&$Oq+B}xBp+UT39KRts$^-&EE%A6#Mx8NaP`I;7-LY{r&e##AKt-OL#K6y@noMQ zkpkXR+s~613HR^*5~Vaz)TCDJF&gfWXLCF+AP8d0GAB!CRBBDas6v`dDT)+hO6rXj zd_QD7IG`+Zl(IBiYiQ*$KE6j;B!D5Rc8TIu;a|;mU06FHte=yY=k$idEm(BeLisgp zIj2kxoQBEKK|`MK)(F8Jc0+w5j{=gL=yRS9|TVyC@ z0eOGvs0E=oOUT$x`Qbmhoh+_ciuvq>fu-CyQE4|WY~Y2F`?!Y}M9arzY)Ltr$mp#s z$Y*2n=~y}j6?j32jw)zJLXX-#f?7i!kJfl$HRFe^6wFR{mu^GKkcvpT1WhMg7 z8u?z60|~UpO+|CtZ3Zd?;SkC}GZ~00q?95XTPbZ$CHG}Z3D?gL#riK(7~d7*x=BU2 z#XU`JOSv(#vnn&h};l(79lFU-(xF z2O6!p8l21tqs0iwWh%8NZWo0(WB!W#F0)%QnhffSXiH&p#jw(I_953=@3Olvv7E;JO2S(1&uuA6k8R7<6cS5&_(}lR0 z%t2q4a5o8pbm+-wa1p3hrHsLJL!(b=p^v+ZF$FH%h>XvaJJ{6}dfkVq5j;ZX&T(yO3ocS zDP(@|Ag(_Bf4lg+j303Y%ZrQ~nalF|;%X8oZ0_og>KZ2QIqEAWH^%6ShZoE0^wG^D z8t3ZbEc6;Ds0gj_n{u+S?pT0=y<7YA?+j=(8X~yn&{(OX14Z{#N8GFhM#EEl^x7v} zz4z^rc)rKafBF&+J#v}xXvX2* zA!je1p}o@J{=Hq^|KMF-c<}{ZfB7xC%{7{>CSIWV(a-;Z=f3bfcW&M%&kCxQCTp8( zTzTb}RO1HgTWh@a`djq6>uhbD<=|+Cx>!fP`c2MkJV~wEABPUWAfV7LFl^q49X85=qLP@2VfTDb?1;TItZ1*i>fX&T1r3RqIL&lB$zKK z)h=h1i*VCHB&E()XzoF^F7Q$paMxiZ+rJCSyfK(`u~AqoGf~!-vYl9I2*5PYP<}wv zUB!Wm4ui0^~O20{;S`GY51KE)=S^8=aQLyF_~Bn?^y=>mOCFIsbm7z4iNhQU4OJbH?t3Y8{Q8kV36 zv%X<+Xee`-9$N-?3}L-_%kpZY0w*x@j5Twqzq1UMndRsH{po zPS_MNmCqq_;dHMez|f!}zuPi}=}k*Mg7jG2Hm?dnb5Z!LD5mo9pd$jb7&!|2q2!r@ zj@0Vt0J39Cwr43v79An1Di6Gx{9gwUthkY1YDw=qe1v;UTFb}t9fKKJ{HDT8B+PCy zP!ae&$yi}!o3OlV@m7>n;jBq7p*fakmQ~IjJC=|;+TxuT9v3C9-_VHz4FocZ#8c=k zHy+F_=6;E}Z)6O(BDpL(l2T|Kloe~S`z3a0krf}FII5{ z#x2hwF_gGmH4Tv#5b0Dx^Ca#uU}gO2go7QH5^PTm<{%gMD>c|*A-~JiU`H+|k-D5& zYO(I?2*FNExj!T0P>jnw4P7Ng;&N|@>ts{;o!JB9SZo&4cN>HmFg!s_n4yuaJx^gW zLq5sH$=KzIvoAZi|M_0J=)7Kc> zn^5aXv8)-vt1rKX0vg>q0K=UzJGXY}th8yg>y(8dZiHk-#&CDS_#mOyuJG7}r?3`w zt{rggo!flr#wEq`VI&EU7mdU3Eq75 zEgpUJGi+{eGM~-4cIN}0e)=hX@{8|78F1nBqs*o=rt=ZKl~wkS?s9On!$W7ECiH6L zX+c&boIi7k53j#Wx3xv1)?qm8V~u5XeVyTCmz{&Ftai>)>@R^*kAuX)Ptr)u!B!QYh^^aH#{1W-0l2 z;IdtYBAHXnC&J6J;Kw!mT0?^7VYGZ-imE-7=L@j3JfXd3qrL>?vxH(YB%h2a^Gxsy zl{#J+;aBVUwFZ@qQ-tjalS+loP>MZC62Wo7NfxVQ1*@A}LAP6zA%^xyrP|3RUio=+gEK%=Xf4I!Dj&Au4s z1312K86Qgq%6F^hp0DYhl`TKtS4{gdGHa|Tid=4I4PsFRR;RbeuV4j^i4!n)g{%A~I^8(0*I`Mxl-7S5Jm5jK`zk^2vuilCt| zxssA-z>hVPYlggU@nWc)*6w0JEqPc$L%x^Egr}7qS<+ntM&Z{XIwO@lHj@`yF*F2C zIbj%q663{EUxQJUqZ4#Nazi#sf(?b=6pRCa-*qt5V{z^P{GNy@64^*JiMSTHN*>*k z@VlK!{>s}_ls7EQTn6p5y#AFHw~w)$#8piK)ynnrQA4l|IWUm`xN5mdoYZZj8Kkad zQ`lE_*LCex)k&YA+Y+=hg9?GF7Iv1lf;Y&WJJr(Y4S{}2AY7_x?65#-g>K!E89eIycMiM3DO;RFp}Hu6rVEJuP`K_dN2dzPN7>oFlN19HnSa zavb@n;LTsW$>!=7#83^Z)LV6QMH4q;+M6v@;OcLjL-)P!e~+_U=h2}i@?*j%Bx;0$ zX-EomsF{ss)H*e+ftO!?nTr=L(mmZ}^>i1M;`YaPsZ?UlTs+I}%{@9B9S(0FbN;iZ zIdkr`EP6y9w_d+bSc!P#xr+p~08?5%xpIStp1MSLtwRv`y!!H+w7N|$J$Vj`;-lBE zv$KDXho8DgGRY}2!(e~H#YfL^d@$n9t@}Lk#ATW*Ee>{%_{GnE%9sA+^W3|&ORL== z85eAy+vEq|{{fxG8V^795XmHEcXx-)tt}4rj(PX}H~G_l@n_t`#ZGis|0>Tf4E1Q&$)d5Sw6lYV_4sh2%{PYM>lBJ zR%tahxVQTu7K2inW__K5qpSFSM6JHcY(5~(MwBLJYwHUPhBui^b^wU0ZNjL|aCjfB z6`mhbnt~!vDa(v{a|NY+X45`pSzs+RTRqCMAeoP`%3`t3%_=Cev3v3rXg|UaYM5+* zEyfZC*P5WZMVTF9ixCS*pblFo9b)n!CLf+ir>NydgsyXN@$}YiMb}lk{L{tL;>GcM ze3=pv;b!KahKFi>a&Jzw$j8-*Fj5LHuA#J+ExpBkEF7!Sd`f&RK%zLtl^<0wrbHp7 z%U%@AI8kdE7aFttdRvHS5+;>J`#v_$mlZZ)tBcYivUCs<)Z2i?l%+#Qgi@Ka>@BpE zvlCz_#$Ze-B2z1ZT7#h0kdkSwh&ro;%@*2oIWFf|<)fK^tLPt>SNtI8q zqVSyyrF^ygIx?Zd%eYTOnN-BMLgrM$>$<7XE^MwMSGc{QutOJM_FO2wJQ*J{v)BRX z4ULLqG^heO?&#C5re%Z(g2ni2ZpF=V4HU{(s4a~>6qJCfYRvUQ#MZipZh5HeB>zJs z-Hmo4H8#oz>uL0+;2xCQWCMjwq`a7phuz6VJXJjz9Y&zLzWl<~f+=MMgRmON_THcr zLi@};wn(yOc3Qf?x%@qrISC^IRkb|{uxAp)SH50u2})It6SXx@0_lleX0OzOK<^1? zRjv3k%9|R=XgOi4nhpa|BFu@D#e{ zogDZVIgL-94HVW`ia~)F%Vy{MSKcQKL*lTCr#x1BYv@3uLa2A^=twr+@*>CcJxp%- z-oO7Y7oWI3{^pzinWsMcl(66Cidt013tg$U zg}?i|Z*gk-49(R#jgrB{DIv(h7ut3+{yk8ixq*|QhfJG#s9XrHx}GXz0Ie|SJ)avpp5bG-8Q zcUkS6AdBVZq7VXvs&E^`{ZoWz!HK^5A$cv2Q(H*+2GkAW)-oZy$1yS4}4%-~| zuM&hcVHuf{>FfxlHJz37j7Im!(g_wzwYGxtG?U2@p6@R+KzTN$C^8zY9%Ye|W{DG9 zC6#JZA|dmEZ1q_~RBfZZfFd1WOoFvJN=NunhcY{+%#K;Cr+U>>P|mS=A5%`3BF3+* zV~U9@dw#IUSvyhXvEW{PT44Pq@$?%4>z@j>>tFfY1EKllMxl`FC9k6e%DHf`ypvzf@8ee* z;$}HU7)pyvkerqv9b}VGHWUqhR3U72rDw3n(P2nf?}&`e5 zgSD1oGQbwDv^t1nBhW%vsS&i=!s#jsylS1O)5VJ-$|M0(;>9suTp>9+ctq_F{~unr zo$wppeyhOxZ~ymy@!#ij`{L1km<%L~6xSe~St<=!JEN(#pxPF~x$i@FTX1d{1C3hN!kd?aH-tYc2iq?0hLC{{0N!m8Zf52f0s zxu#qfrCPcQK}9j$7q_jxs%V}T_SXDZ5E4;Cw)kfI5)!wCROsYW8E+~j#n0Bj=#IhU zR<;Qp+}7lhZ>nu5s+*F}GP%_HB*(4*+LPZyKDH+iRiI2PK}`{M<-~8?MS%`o#mzu| zhOi?-$mYV?QUSz{X;ln`AC>Mp_EaQ}hYr*-o25f{68GE*+`UC-CG%DGoeNb;DRgn* zw*Gu^oyxvsinJ&BtMWj42>osF)|9wY6@@*rcpY&8Wh5vxb`^s;kk>I5%w2Jr^s38z zF1qj{CGRKB2{B5tSs_9KcN`=;wWv)uT60SPsw4DxJ1oVe>KhRh>mI75q>4r%B5NQV zCl=oiB$Pfi!l){pXi#o@W^T}HzH@L&83|?<4hz{Ztb0;vqn)sEVQ|&YM_jpbh4Yusi-;_syU_&{ zO((9>QHCiDe&})U!+oybxX#(f&k**v-8>OQai>|NeWNf9Nb{FQ1{cUSs#pF;{-^ zI?sIRNrEWAkA1%R*WY4&bAy#r9ggmeu-dS9xW|P@&+^`tkJ&u4NpEG1)@q&Ce)cwl z$uVF4qc36&+_`<1C=7`!RlfgsKjww6yg;klq)1C%d*cP`K^Rc4H~9X~zR8zA_s1L_?USVi#+IBueV(`8 zzryy`8LTR~cH?6@ja62<+uXi?mDzm6BNw0L$~)huR_RiWnv}L=@8}li&pg3wKIWi* zo0ZmCl=di!jKO%1$1Z=Bn|EHPG&xp5v%b!Be#|@_ac1i|j)%8M(h)_O(d}L&O-Bqz zcc|CaLCNSpnGf*8n0j-S$#{>V%!F^%SOEp|=|J2YrSLtUyvQhuoG`4&cALp5ixg{f z;%Zym{%k~9%vey@y{L=H`j~RO6h&UVjV*`RasuQ|goS9ojy1^x!FKDA2yQD^2P`3r zEH?Rmo0$4tV(S4h^?<;VTootpKX}_kO^z#8UIgrQ5XvT?%SvfK!j`$?>**!FVL2{* z;CtE9v9$aUKXQf8D7?6e4kAa?mmF7_B`$+iV6&7m69J~QhZjqqp*6<2OD$K2Wbwj? zpjwwo9OtY7t`yo}a&g7-;W4(zW#SYBf_5+lFN%p)*3of{!s100!e&P@So7JZeuw$6 zk1aCFEJgbPiF2!Lk>ORU;<^>NaJ71C_?4Pu&3u#k)y9v0(_iklV@M7E&3r8RDFyU* zEylobUvgH%eaq?@#e8h>L#fEIMg&l`EqSZB3PmQotZXJBcdcYBXpM~S)-TCMVblOq zO2}P%mbeCkk)=o=8OsSan?f=)q!Y!)BZ^sH?k8@_?fpoRPAs{DV-|^Ik3vt8C6FA6 z+tog$Fr}ilE}M+mSfHVPEbdb}62?|o6+DCXAZlsSV}q?jnu!Z$QcHDJ;ROmRit2_U z>&t7Y5E>?MD@nTJUUJ;&Eq}OE2&`jiKvU9l& z$kv=v;IGSQvA7{yhssxY+X`>ZVvnKpq*BLQ1;$pK!x+d#h$#3;W{4=&ca7p(sZN24D}36rGkV zMS!YHkX)^KvaLBOp#U>4P?;4G;UlBDP%;M;;_}!<7hfh@adtO{b>EEweGyEBK^0aI z4>b)njjsBb`Qqx(iO7l-apr4r7jrAlSgaikH5UTBryqRp_t^sbs_! z2W8dpm)Tc&eD1Yfa|dTnom^%;c)8_0a8TFc+@2iUPXyEA@V~r{UR*dQu1q_U=koOK zkjBF;m|FZYkj01sf;eE~xlQL7g4Y!%t1Jxj(VSYhh629z_kY8ezxY+!>m53qU7quv zUuJtRKY1Ax%nnoHZs^LFcbVuBPkiPHwl8n6_0Y!h!PZu*%=S`#`HNrj2Y>!$bfnoh zy}@ic=jun-c<$@ZV1YYV?~@M=clYn`)H6>lf8O20`^=e9kD63gBD_FT7A4d1oR!TE zWoc1Z`u$_HrwJpUbeQqb`G*O^5bbL|e)kie`SMe&bcAR1?g#JD=+)UezsYQv(C)U# z-6q<9_@BPPAN|=MQ*FhJ#}oDsc2I%hlXq`myn;Xa`k#S<>1@h;ma?|F#&^E`O+NSd zi^O3Kr8M(oLJ)bp^5#$YgD?FF;4z)dsl;`HP;)fgCG;yi@#tsyoO$5|VUAS(a?BU*zqNe?Yz3 zrB-P(cUy+lT94JxK^@3m`=r=DpKKBO^>8J zdU7baq9AhJeHLnM!7|uVk&Fc_YONxlDYB^)KhKUV+Shmi%#TH=Roc>DI6bi9Sk2`* zo{eF$FFdTUqKI0Hl4(U)m99WrIv{DJDBU(-+LtF!+?B4vawgaYjI@py6G#`K_^QH> z9i?2rxR^q^{z8W}$j262ic@8CMef|F>S^a7Ek;^a5w9tVp(XEI2kunD!HT4$*{_TH zW}MTbD>4Q%vy*K=?F+)8oH_dYB1dCg5I&NhBj1&6x?oM=wG`!%xJXKazosZ%bq|Gt zvE;gJ?oP_N3xgMKoaDLQ7NPwN0qm7sHjMnQ~M!9`A{<8?RT+8TAU*GM+Y!8MmK9Vfoj zn(v%6<8o9;RZml+8y@CvCik%r912v^QQ8sVi?3YQo)bkH$uXt>gUQ(AC|j&sSKZ zutV7-#EN6L80XsDET1!WZp5`(9M82{EHSa%Ec73AnK=157nj&}A)?ete_`%ajpyo) z6taPOEDHzBS;9l@qM4wo@pB(t7tUDN38C`9IMIz7=ldx-)F@Br>aYInRn9$h4it1N zJzAZ%klj5c^!B-Baxf#P2cQ&hyz)98nnt%lwOt`QFf@CT*;1jR$Vy)O-kYp+SE#H; zq{EDr%`VnJKuEn;r5-m4t1>#d_WBKa+bgVY^k{E4DGI}lckXcZ@);WKIvB-hIA*Xv zm8nY_A|1fcz?|IzWonedgvimwmNve=B-!WWwp0Py;Ea4 zoI|N-t+cVF;`{&kCp`D1XINS9;rW`M{q*Nte)JNP(TrQy?r`bSW!5%(+_-j&!SR5{ zo_T~{{O~2VHcrv$bO@q=x88k&&%N+GKmWx~sn?pEKXVB`4Ef;0cR9U%fxUwrZrr-Y zGmm|dSu$ldoeB0J3VG+_D}3>}uW{$z9g4g_YoA87%dPt#aq-+^B-xbv`!`r=Z{c|{ zSw3ex?epB@f5KZI{{xL$mrB?mNhTbRcB#Z|dhIiOa`RB-P?iOw$sWD#C9Eyk zJNg9Q3-N*oKZqHPcZe%(d@o`;JD@D*c%DzIbDHsJk363f1d)4QTks^c~$diF%T7ef-@%$=fdL)~GPC#kDF0Pdk61K91P}!Bj zmNT~m+?8@XEBB9+gUzDeX5n5ffTO;I(-$3o zQkml_e6;7#4f2>}`_8#t7P&to$HJi6bYn(~j;eTmC}TT!Tj>ZiZdqVa@@!GQ2rO%* zuEwv_@G1=vY>wit{6IKmj!$IEoH9$?!a*kC_H>TL;sue^^%Mol(?qQm{90ql;nG2f zU#W?MW)>_m$VLO%R7~g2Vav#;(mCh_p=8D!Wj<)MBqSeK0gE43h&nx~Wt~s4ri{}` z|Ho0Yd-K=*jeg@6;b`Cd%OVr^Dy+cDwxZsJW*64ZDq5?GwR3_mh$=E>tJW1-!SKK^ zA4!q(d?aJR(m-=fv3gcf>&PfEszRluX!Jykcpe0?CQqcid3<0gGRPcHs@j(OsIO{T z8!iYR$XLu681Gt!cP;tcl1+_l(^^ZdrDtwMnG&^bmG$-Zb0l6^yR*HF$SmldB?!ld#Y+%yq1fqB5aF}Z9Q z>WbhQ@*^llP>w8qN1>bGH)Z|499vW@nIh8{_7%z!UUGN~Ep+$%ri^cNMFi8rEmCz6 zmFBcq zi(Zp0M5Poewc>sm&|QrkTN&}Ch&$s#@v7;@g9;IDsc}^|g}7WxZK9y`pG*kaM?HXsmqQ&;?be20M}~G&^#b3IukF+q$)fvNT{5Bkz|uRD@HcW3wdq z+nICH0w<^&i!q}-U%fR)&)0V8o7>WG`0?TLm~;R3Jw^v|HCky_`0VF|Pi29X^&WoB z!^{o&G?(WxhM#=*$K+{_(s23WWtzjwY>#c=JN^DWWedoi`?FMpLsH+UTHI$9AnCoIBF0C5j%&n zO$acU>|(8<*SWxKeoTLKhd64G=W~*5LRsdluRczZ&ln7ENuDlhg4QJSzN^v+7?1WO z9IriEozrB=j5M7(O1nm(D2p7=5AgheESXW{8P*!Yu!0}N%qB;Ue+5C@B8Zz5*)e&t z=fp;YAFqQ+Dbs_6ZomuIK=~4EFQ)Dw=cB`}6BgqWVWYI1oKO!S8XmZKS={MA>Fw9w zX35<9)csnNA1!Yq<5Kr2V?_MOjZa{nC{z$GxmU^$&<|`BT2ne|yBrsabmHoE981eN zR>}*6+8)N@f_VY@0hX4@3ySGz2@Nf?Iput^B*N<;#0w)lKS22bVZDW4t)V>+?Mc2) z*^_{LnWYrt5oMNOvW#pzpq$SH(Exa1B;eAhii%>Q_6kvFRjPA5Sp?9b8&SI29bsq< z$p(Fj`AjwzlR5c#AX}6Q$zWBg_>CrEyG!HL`Ty&0`pf-V2kYB^Y0sIGzl^HT-;+F5 zI+bvHnOe$1QK>_7RpAFn1}c)UdcC7aT~mP4Qa>{}5|?V>g!zGFsr*pUJEN$ygi)0z zE|=93p4Fn4ut+2;H6K{AIm9(ZV?)MrK~)jB0_Wz2WUXwW@O+n_v5M3^?<;LZb3+j| zPcm3a$=9Ysaig*^#BEU{$+5U)QA6@3(_M>604s&aAYv=1YofNIvZ~03QnI{ozHIKC zGhbm+!6KNM3jur3ysU{jj%S4uIA|(Aw>6L*$=7eKt_-@6DKQZDo1K} zA|Z2>c3+`NOMVDuCU~@9ML1dj%0Rv^0wmmYu2(3(JHHL&O3(|w6N9e9kbor*3r~r_ z3UQ=ypir_^Xu%%H*QuUDSCNyjFL^P$FX3;!C63r4h_BZ*^yP$XN3ILcL!h6oR9aaP zeR|UqjKHywhKXFJD^O4sCKYpo+LBSDJ#amJBZEpU)HV8yF9CXA1PqCl-$UlI6TUjx zFw{;wcKqeR&E`fxqN7rNzKuX|4^xAR751Qz-%ZbjOEWnb3*B4*PpaX@k)e`2SRes+ zN-I5wv2)cBqPjR$E-y85&Rpn8FJeW$){cw-RSSf0-;kb0J9e9pQy0vydxB?xCC)-Q zlDnPCXmv5=P>}@SmCKQ-iU?zT_rCjmv25iKp>^-|d(^vi3GAb|d-V>z(>=(c-mXz; zRv>XsR~Sn6ac4wW4N!sNc=wn$uDs6Kht5jFL#so*C!yQ8RUxW{%=#(Cyr9~vP?m-_ zfATil=eL**6CQc~Ve0FZ<@0ZLl=9&RAFy@i6!mU}ZnwkuU`pJK>8^JO>j4LMkGS^M zO*SuVaQ^HiTI+R+)Nt#)`<#9B6n5&-UTZMiow2*K$FpC0nntUMQi>n_?a$e~xW>bu zy^QB+u6}r(58wZYXTJOyiqznRnwuZp;o{>L*}r$d-u-LH}8JJ=EiC6AKd0>xX*J>e}#`ec^^*) z#FaW)YwjJ~;ET`v39r5P6T+ZIC2A1*HFl1!)2^@4X|D6$wV$!lK83;~$!1KF0S}-5 zBG>P}j_-wpQ5B_pX7fHuX|~p$;O_3*gh2(ZJ(TvD&W_O9XQlTr$Nj4m&KYU8PmyM0 z(sWFtxlUPT%;!T&ljHjVjn*pT@c~7VVcnQeDNB;fKs)iJHKr^vCdCgT*MT?3mUAf@ z)&YJj`72wD#f8!uud;>7k1_c`u7Xi0uZH$xxow#&g^$v|3KDg}(+5P-??q_%M?&kt zf&2pk>r>!T`#{br64oFV?W%#Kyx9TejLS9|w_UdURwrNQRcg+$D@2GXeKI06B{t8O zq74hC5E!irBfKz{4MA%OYIVG@BH~PGbP&pd*fQT`DU}CacIPQyFz8M+X$siTqo6?b1vCM^DH9DD3`g9jq`cUu>-^f=H3gEz^-?uac?d z-c{JSE`;`@JC^a0rGL+mOe8avXHbLzjHM=LatKFv;OMqtHn8k`Y?<{f z!+UPyumfRLil3JS%&BF(ZyE222$&pO4zJ1WX2(JguXd%hxzdyi2QO9x70G{Lsz-oTm4PqS94FEfE|#5Ro-MvSd?>DTR7oTNn2$pIYX9Lq3Md9n0XVAvrX7 z5rj>sZVLZu@f^)3BGSA7;x#9xav`>t8H}$9ao%f4AU^EMSSRaC(X_BaD34C$_n5G~?x>)1tS3SnJ&U6<{$!r%(lq+&-`ByUypp&VMgt_yevECcWO z;!@Zd`AS5~u#`=|L_+6! zGmrpx-8-SChg$ensq_=tg94_Gw^Wt#WmVJYwl5+sa)I(#%hq1$T%g=w`-KRh#9)pJ zc?DXqhqCp^#MR~a3f=QuF|q{aRYi$oSNE1wd$k(K_lcZ13uM%)Dnce!Rq0WbZ9fT& z11E*m+GWz*xKOucV-GD~vnXxWJr{J37eROTyN}%OadE+Gp&XwasEdA1aa@RF2&|r4 zUH;6r1hEaTVn$j&_cj z_oW+bG9U5EPhSNEe(dwbKm7ty%{7(R3-I@U|2>X&kGcBBH6DHXQM#vFa^X?;dHuCF zx%t6urc=2RZgpCG_}<5u(z1HC0}6I-?s4Upui}Ru7e0G>u}nt)xKB{=Ik@%56xqkgR>!(&39!zL7o2>OV zu?9Z5`VsSd%G00!45R*p)y@WaVVI1k{OCvD=c`})8ljGf!U~}ulBWgN?|jJm<|@^= z#?js}jjA|tX`W!c0;>(Lz4J0pKlVi`ag|!7fw6{4rNWJSAJXltQWiPG(J_^PjYa{D!Utt|kOY=$ufXEvYUU~ro>o6%`*uzPq7YYbsfp;1}o{@!~8K^3Jm z)7c@`mQ<@N#BrO$<4?r(&^~!S#}qk%7g4MBI6l6yWL)`vNM58Ac|u%iV69~~9e{-( zjH%T-%%?+A*Q*zWRe~@kOQsl;$>CG`vdvb^6*HI`LFSUG#CKn32j1R?e zD)U6P6RpLMDtK`f<@qQ-z^^v&!dR&4(qAXytSm5PPCgxx_YWzPDJD%QWWP@YLe$8i;iTvMMixjbS1QLBR=SJ9pao@z%?_h0|Izu>QRu>SRb{TKhXv#!o*Pxw{VLcOhM zbQH-H()mI_X{G}h_hk$yYstdIDl%xTYeI*0C{jfjLtK;R&3s_-eMMPFA@ktAz(h^q z91jHh5I2O-9#$l;WnA#v6firsm_l5&@s4DslA(~^L1^w}A`V!YLq0Z`LXk_25oIdw zR8SQs%MXNZUg^j-pmsrD?a6(aRPHCL3Cba#KrywHspP}FP%+!LB4{E-&=QAhL0{KC z_*M746Zv?0V91YMJ}ZW>tB6 zjF0l1vxK;B);V@IaaV71WQ@0|pr&9b&xu9ljy;kdLp)?-u%cw^FGGUxoFwXm~PMV)L4R^;=t*{GK;)iS5$2=sE~ zBA`PBiHwEsT)#uDSwlw}gXQHPzRbCY z&w&pc>l@UXRg|yMp+|kShE;Iq$~~Iv4bY0W-g|??+lOqP-lS5kvbni|U-hw>Wj08N z+Yxu(xl3oOgAO$N*N@p)-(cgy260`2=ZAOt6j{O93ukDqHSi;kv|kd`e9oRfD~{K2 z&Yf%bSy@?Od+Ri{l^BfW)$hDb;Duaz>^y$#alGH>jaT2{*)Km$r5<5Q%Qye_?>Kki z9BXHLq_cw2(U{pNVf)fLZ@=;`t81%tJ1ew$P2T+FyNripzW9gFQxulHy&X)UXm?tC z^RK_fSHJdE8jU7pVR-L@cX{%ur+DqvSE*F0T)1$FG|9Mo?-pmyUf}-jJ?`z^;Y%-k zjVrIdOtZE^yVWDjGH&l)=ZS|u%gW_A4R99%$d)(T2ht=+RvLYeN=giYF zYb%$?i#bQbJG5HcB6r0!7vB%XWx|kVV`|kEP?qWB5Ni!e3v_fg z>tk(+AH>2uGKQke2!fa(j7if8Wm#ZMi5G zgET6LmwB)yMg|GMFE9)^c{HkXTZ&`lRjSJpXImENAR?$WMKqQ&rOv86S%vt2lO5dsERpqwynHIiqN82u{I|#gWM~7~D6c6H7L8 z0w;oM2cnwfu$mj1up&=9<*5DhzF~4;NvD?iz)}2C}DVG zkZ`^WsE19tkD#eBr6uc2mMS|Cq3KmcxCAX(7%+*54y6=jB2HB~0b?vdR}ro$g047l zCWHJ)&d24`caoBvJ&e z&NxR!iSV+eJcDgwu>;voR9%fe?L!23;$oR&<6xtX^AtO`$5-eT7Z%TCyl8IakQs4r z9IRA@&Z*HNXjH?oqza22l-T`D@?Vqkq_59sIV#kv0knNo%Q34QYeu#JjbyQq_iZU- zJaNlP%wZueq_2d;?vAN8ckice^APzR6IkrL{FPU=JvoLyu+F{Q6kJRmmdE-Bc{&gN z(|-C~V4Rq3$f5)z`TC#|$ln75B)d2^JNHxtigc1P-<`RROSrppo7s3KB#qePi!Zz& z-_}C4Q^AWo=A$_WcMjzEV&IKWu8@vWu<-O_&+zy&PoO-F7icQo2y5WxmAhmUIWRU> z8yGk4&9V%w6s66Xjm3#L-aY2%=$QIym1-lV-l}o!+9!PQ&igdhYIs^vW|r$Wt}{wT ztX*z1AEczyf@}9aA#C}CbsuXim3oEIXvmEZZZYkrWYe5;XV1&F+$`tk-+r0%51rxC zXU<_QT>a!4v-xZ}%53)hyOeE9B%+`WC5uYL8O z$w^Wh_73jjhaUg%!|(CjQ-6TX6_HmV%@VW^H}8GIg$ozSvyAy9q1Rr=Vkpa;X)?sv zf{$*z!($hoWpF%_i!AL?lo``x#N!t}&vZUwI60zSUt=^mCNDGcBBj&Z4UKp4i9`J6nPErpdIv@ykmBI~=2 z3=c0_bsd+7D6w0l#pFXWRN69`AcK?)^`qb;}w~4CI;R!2u4F*8hT5ujP|*_# zyUAtTC!+%CB@AK_f=WyHTxmrQCKA$tGXiY z$oI{sa&c3p5Vhnnq{kw9{HnNf#YD*HI)K_aR}wuJ0a(tV7>a=LB6-btHMP8G(h78} z@nxxj>=??C%TzTS$-NW`z6uoCo`j?ILYNrgV(C~2@77gnc~ynqRRkR{4kk(hUQ1rv z=0H~Zy{b4(=Fo{M6y+Te;e;%mCZ&{6QzKM;b`HwsvK2U!mmnQFkCCtswa}^lNa%JiccWL=e^~XFy@e_gD61WpsK_1MQzMYU5^QF~^(ti`< zwk2J5Z$U=4b0;tj;#9>#acAyatAWdK1PXgBkXNOE)KVA;{YzjU4sRb(Td9ewr!Di{ zIq|BD7fzo&L)?fKNfvRvfSnI_skLh;PcgVZ;-|0vm`5Lf3^ZIkeVL#k$Oq5&3F{&0 zIOFQu*I3zJVSIneXf|T|u}zeQ=0=m`Fvn(a>f8VbLHE8X;&#N*{XXx%_7Q8V>vT`G z>8x~6o+26Nq_d1#tJDjU<&~8l^=gB#7Vybix6m=1Jul9b(wd)t` z7rypI)=#aWJ)eA`JkCo$dx_Iq=jnD< z@B^Q>-g}Lwo_U6sul$6-4|(k2XV|&7$HDO~tDRHq9NuCwAMwnSpW~%hf6V6UdAiLF z@*?NX{#BlQ^m$%=?jJ&7K`?@3%6Um zpn}P#Ses!@hSni|yiS=NVTut8D_=*e*m8_576(Nc2P!XuG7)#nJ!h5noh~|IP5s(8 z^?;lH+rH?xy{YA$xFEY^rWO@53n%SUg~Ya8ZUQQQAw&$y^U+cD1RUxICnL$FfLc^m zxpAfYUVdByQ(~=MmOR^XQ3AafHHz!9sJB^UwS2cxsI0+@YXtT7(h>8b7{5}-WC^x3 z%VSeHpSpZiic(4hSXrQyCs{G)uz7JsItAm{Z5fJVr9DM4bAVVYEf(3ZFK$(u;6)Yk zVP77nvG`RX+M7H_2NBiPb%I)BDGGyHgRt4AOs1sicrR?Py!_yw=^r^*)rR-qgcYf- z@dHIVhxtUp<+Gu%ux2C6;T_9#05{*V-2cRIbkCA!E?-;`m!jTPgpuGJW+TK|8e8^n z8isp@;hq#g4|grYT|+vRN}3>+AbdKNQK0r;Mn#*8C z4d+%xQh5{9IoV(ZDjnxiMbNq6(K#o`1*IWytNybC!))J$;57slsk#ZOifkm#*Yutx z?aM}BKDGD`7+UQ~*uAo%DP|HvH@Wbs!j=T1v%V$kOJLrl5UoJGA)`JWDat9N`-U=c z7bmIf548gB^db>mUR^F~%DE-IXRyW+bRprfc%~^2kyii2(C91)G2y{n#;hU4^%y&|Qb8(C)UWI2Y!~xfu<2Tct4j zR(b_zRth(LQ10>5UIf&w(A-B>GDHffyY0;s*-WfCGJD~+-(rR8h}&cfyQ~F5J25a3 zB!itwxLdW|24CbVUnWL2_ogm5p1Sho!ZE1Ud>IASJ$H2|!qN^)F?~ix#M)v@Zz>yk z@&XYjPBlFzDlNL>DrI8rGEs9K`lFsJK zt- zW$uQTzVk9~U3rJ@R-4a%^*I1;esr6U-~X6;qsGpiU9gbMW=zKk>t}nEiL?MDX+oan zM75Cq&Vc4hoq!lL?A+Pq=;(+){^x&0T&pmf&iVWAe2<48yTs~753M|Mn`27D@!p6} z-n_v-|7ZV#Zl}j|GULYGt33APLwxe?bv8G*X*atRdC9d~pOBRaaV_T7joVy0`xx4K zvN4_ISg+*0tFQ6-r(a||9uRqTq97*AGLFW3bUR&kk8Uy?AM@C`&oMk65%>XN7&1@C z9FKN+{)s=~-K#HQts(GZOlio9l#SJkjOKl2>4;{n$8|w3ssVbEYlkovsv2^Z+znU!thXmWLbE|$6L8U2p0~cubs|~alEPsSD zON4_}6qK_u*+}wL*2>SLw2$^fytqQt>Jc>B(hI14bP%IGUz{%_Y+q(G^63y$78LUt z`FKRuKXxLmT#iq@C?=>ksji6DT`Ji;&^EUGFk!yD>XU;0|yq>k`uUEU~(1WJ}vlk`vuCnkzP{@ zl~rLyG?W(A*4UjAa#t2?<@RdDlZ=WdqSy;$pcPAQid$ zUsT*otlXC;j+&}_B4UTG{-+eEtEzh_;76_E*a#_AwmRn2sUhoBi!o6SSMNo>nuiYhX$9UE!J2%IBUwn#cJ0?#{{@wrkKk&$BE_3mbvuMxb=JlK0x_yVopLvYg zC?SXgZhm~5ho8L6-u**v-nhl%Pd-j-rNQyufY)Aqo#(&uS@!N9qO2yL7o5IumVfxs zcUbLhaQf_NZr{8|qtRfsx5l8~=j{((9x=IJfx-d7e`i1=DoQskKX7z4I1p zD`&74_WHM}Mh%Q98O@H#i7q>8;)fx5 zmb$QhgDjs@lrnbG+7eaT7UF zEKyAnRV|%uMSVrnTGzBUMZASo8Q*DN#8a8LvEo#M<#F8-)iss2qP3;yoRNUH7btXepBN54G-MO&Xze157GghaxN_!HZX47U z)t;uZst8-|wFe{v%j6#9LrD7KJ_R)?Z`P4)D3*yE71rJ69kLZzOvKU32NtEo>56(H zdOY_UHo0BC#tSmh#x3Di&|mIc9TM9Fy#9c~p>Xu-FN68CwRz`R)Kj}>$)$+006-HZ^^IPB=a*I7Ku=}~3^eY;gB92sBFE{K|&DGcD{7h2`t|q&lbRyRAe}Enmb{2&(6c@WTpUD{!O7w&(I= z&Ykm=jO@CetHu$R4+T^ey6Zrw4J9ZC5Em_S-@mR;jv9*%#OecQg^H4Dn+K2kTE>ry z?NvLmjQ2-;a^+)jCV?bKDDx5(LT$Us=U)6ggmM?Us?olpm=^SR`pa+i%d5W-V!o$1 z|HK8JeDX=@LCXxywFX%D#rI#Ln9J4R=GGQvYS6yMk3GCdGuj>T^Pl|;FVfUjD`+&P zfcIYdkj|+V-P28u?~N!k!%IJVnbqwc-OV;iLz<<0`0ghh-yaZFBa~9KH=B&dBZAmt zK1rD#&pCVQJf05lLXS6o{x<8YTRi#1lY|wYs~=ut=f)oY{J;8R!b-?|KIhiW>ujG} zVK9eTs-wGcMd+HS?N-*v>8nI1@IZSQA#nJ57=C}%IQDRs6kh#kc>j44Rx$0y^huno2#pWk;+Sc4aB02Y%SoQN3}$w8*f z76D@kkT0(A>;rg%PYJAF{r|5DsoyQcKK1q>x&4948$55B&r(6?ItE3AEw>A;+bDE> zWj0SwHVUy|Su5M4L4+5CXg_oetcIW^v~ar6o**8Kq0AHVVV@$IVakGRJP`4e z2r58(QUvW+8~F7mVP}=7+Y=hRAGj?=O_^tyJj0rjVmcrYr?d5Gw|IGN!6F74;QiSjpd3 zcvzLDe68;`Kd*pgJP7n7E9ObInvwK^3XQLEIHPawEF{86B30C^AaM zVxfZlQa%?6giu9JAfy6&RcpSW8>U9Yf<>56k=wFcY|}-Kr4^{NN8PB6LImS7Jil;$v^x2oTAgeL##-K2 zEIS65@4GD`EGmK5?e<*-DhBD(0q)t5e| zbGnO46*|_K)Kc%(!B?!Ttq@cKPWX&+SbFD`x2ZSkgmK95c*IM;c!^7oUIq)FIsY_4 zTih}2DZJ2U|Ft7td-Zi5`_dzz;9zf`M%=<=mX%X01T~*5$w(#{v*UzHD`qyHvw3z? zGMkyA){XIPNPSHRzc2sYE1Y}c4C|}wbkDRcb!U;XOWSzTX+QgQXh$6UJj zFdtogkAuSlKL6~OIM_en`1qLhjSWVV5x4GM=Zl~J1Ah9;e_*3`ifYs(%X9XRces4v zQQrRO6&||qB&Ia%9^9eV-lh?EIU4T?)U&?E)w^%-`1u#u@84mTj<8r-wN-YHZ?M`u zM^R=BC;QYZUGg#^FEa|0v);SN?$I@B)i$0VyYPES5L7_HJQ>kyZju!<=JNptOSRg? zn36P`P_3^~l&KUnTZ88Z1W}b_KEm??@HEC0l%~KKp|=+<>@I4?;s*gmKF8V&KWs>; zvq=&A+~7s)*m5Mo%F5_WM;k(BFUKqi#0r#OcUy!HRKzUHoPVt{`ZWUUS2qHG-JAN9 zYjv`&{cD8RLToJ@Cne!@r9C-uY7ZSa1{IRCS_(E>oK7k@t3=b{I#49JvYWSJg|YgFb^+Y>dQ zzAg|^FE|I%!8!4_b0E&5vb-Sq?2l-!9u4yqYHHDEy|Q zvG*oiwe(uoa`jCiNe*k2(wF9py*$N1uF{i;tfJWx00!8vWyAE1=>P5rtJIvjL%B zVXbqH4{p6gtGdE;c1)T{$b7APp22tzU;9+!Ci}-Xcg zB_HHAcl@|YP-}x0D!La{1VZ78o%7k4(oyuwEOl9^T#RkcNBaTV_t8Np`KoFI?FT5W z&_V1_2qo5(e^UM+d^wnvBUO6HJ<*Js&Tw61KYd)f#bk4Zm6^>huVkZGviJ*>Ne(+?4d_fP6Bh zm`*;G!&*96|MS1K=ZeJs-)19=r^OjExd`)mTT}0dd$g#}sWwhd@Yz%Zlr`}GBkjMQ zWy!MiPVBe0>(CKLUwv<8-qflxvs9O^ZZsMg%rpQRX=6h(z7EZ3HZbD@`2+(W`9>Q5 z0g^_W84iE}(C9|1sxFmTS(RF=n^&uIj|weZ?aha^-OstzRoxilG0VJh;&^y?M0mI_ z|JJvD-*N==kw7$?eTZULC|gB$Lld_wMJnOV){2q7%;oodB}Gu!P)r{PZlTfBv^Ql^ zaJnbR0cFKwHNIz9P2@SFrebo}GTWDv@!*`s4<)BCUpl2n$yA}q#Qd#&p}YH`BfonP zcinBRL``yv&PnCT7NQmxOG^+d(vc9_z0fH(N?M75^JM8zSY3Xsi3c*Zm>pTn%HlUv z-Kz2uRksw2nNz4D!8sHo>*BCPl?uA5o`fqGkRMuXDvwvbnAEjGB6#L9Eg5X6Iu}ue z;JXp|VkGTH?I3ZgI+=Q6V6W6EF{xL+8--1sgj|BzbCZAV>hpGah_M*il{;DMo>P%l za*}503Ro-IgJ?uqDJ^hu9fCst+P_puM#n*`vNGncQa|x8Ke!TEc9GYvOpB8Q6a^bhfFjg#h9IywFig* zSx+I8c0}5#VNMzi zK!u(d$w$K4vY8bXEt2P~;HY+Nq%aQM^IPX3+bzXcwm|Y78w#^DjIWJIwi{3$D`P5_ z7G>N^M6q+;DJggrWm-CrpqylW`J>m^T-(BreOBp`!#js;oZZAKxVZHQNxva+M;f9= zh&7g<{Q1u~b#4bg^eI*a_io(h^u^Nzt$$H*%n`hU_RyjZW^VfLhrKdP^_AFt;=kt%gVE6tWPrv*G+LzDeowwfQ ziDw>1q4@IS8+1BdTAdcY_W7Uw_5Z~0|NbAazO@O!+i$1^Ih@|-?B?U#J^WIx z+P#n{OxPRU;quv6xU>JcbP9q7S+Qik9Meo>h~a2*pUuGqrprUpY>KglM$%(4+XJO( zH#Znh?qQst$@2qN*&OW!gkg*M;sE1{20u*5(m7T^l5|+DrWjLVmBsf0BnUbe^~74r zGLyo>mc)&9%5qMTkC890!3)!ZdHOz2YNn1tB3Z4fu;OV zDDHtTbatiig3x)gq-|UAwesoEnf^=RYGtWdSDS6Z&HyixBH3@W3ECa;ce&h3?faOr zAfJx0MJ|d}7_mBdfXPx3`5R5=4>Ra6B3|DXm}%hRecGK~+28uVd)aCQClstWDqjEr zi_XR{AH(h~Bg#)ISAR(h+Uu}>MzMBA(LW{O$gRGjyRJywSbi0CV+t7FcLw-Srt#vo znASJWYX)aD>*r-1jjpa+Y;%{pr#!`KBE^~x#HSUu6rCMuB?hr;fu%B8m@j47bXpPK zZyqV^b0JVZ+<-N*>M%uBNquIMDL$9N$E?!h1KC5zSF>_0>4qjWP(o6>F4MQ=O;#UQT zxx749s>`7jUX=#_jKV+bjx`F(eOE{%j%!uA+lfn1sJM_1FrXePLZY3t?52QoO5{i*_-hZdnlJs5;3PmFjaWrQ6I%L1aL0_%e0qXz5HO zTE{L-&9}0pGqk$4o@%>-&zanvyr!s|T$0cS|$ZJd-V+&AS2L$yMdf-V> zCNp&*Sx*%%%44Qh;rw2uC}vW$xpTzK9cT-jBIwQ= z?sj#NuA1)sR0^-{(|>&6{ALPo5a2canu&JOf0d`lL9j>nkC@+?)#sf-bAT-cp4;wq zc;YKh%J!uOuPOYV{k!|T^@}$hBT><5wkb1%1=i25^X#+Fiu#dCfsKV9|MIW6_uw8X z&}=`tNvGGr6qe85zXD1T#sRlKybHjWA70_ni4#?-zQ08mh+Ui-+G%%k6mPQdjpH2(QIH!%k*f!6i!sG15qkMM#UDkW2Yk||4l3sg@!_j>@%?&J;2g4iq+9S)C z7;9-n9hymx!_gfEogEgdF=-~#ok0*&7ApykZmzR`cnz%s6q?dx7*i5Q9l{`CK0mmY_^ES~2Rg$=TNMOhZ0MA=eGQx>_jIDO5GJVhm-v za4kQXC@iy;fI2PcAjXRuXg>hYCv5ic0(-)!TBRTPjEb!EDg+`~Mhn2pJ%Bhtft%H>?l^JR(hG|Cf0eAHhj z>JA9n9dsBHG}{vAqhz41Ojnf41*@ZdVQS4Lq{DrRncTLy08OLi?7P)RQ!7~i$N%pC z^50_ly7HjaRcPO-JQ~VUT85(sLPfV${8Je51~s~h?v^4&If2 zUybAl5yVoMSyQzZA&6z)SsaSWWeW&eusV`#LZP-gBfXmjto%rEU$#?t9`d|pRw=ED z)sb;hrz}(XAZ;%H=}6%>AlcH`0`ifS;;fJfK!F6SdTOv-2>so2D2H_4ioz8t{1yc3 z8neRX=vmCvsRpW2pd8jAR1`-BGj~2AB`TS6NeO1<@(Ux!yb7od`6_akUWKjOT;3)U znw%=^!is7YBGZDQJ8q;3m5J)bk(Kqg6?zRZzgHKAx${1i&YYegz|grB?oy<%dj@5Y zHlU}Z(DIPzn3;Uh(c-;QAZ@;NVJa!lO#-$x7KOcExB@~+YjfbtqPf8qR#c^-yOP@p zuy^Djq^g)5q*$uV-^xQ2v%*T@(KwxAf2*4>DNa+Q9Dw;?wh~nOU#@ z=vQp+Y~jTo*(~Ge?vT@uo&pWqXLbmiA31z`$T_K;k#)?{ryBQ%1W} z&OCOC)lp7&qs#uCLxx9V9(nEpy+If4d%XFxci6qL$9Mkmw+Wj8))@Z#|M&mEb6bJIU;WNkcyQ~GMytW_!HA2GU*PV|dwlTT2Yl-r-=($IWHDRu(^vn7 zZ+`0=>^<10%q$qixeMob|HF5&+VI%pmwEe*x4Crgak{-OMN#tJr*HDDuYaFk{OU(+ z_D{39eul+t#m(I-JbLL#uH5{DMx)90`f1+%^mR6SXVA)LJR5>iv>F|*-TR2Mn~(8e zc$>hFh{6V|Y|d;kWUY6a*>XsluefyT1-`iR7D?2?Vp*kgR@t13XJ6vp{+D>#r`y`# zV04?(7=j=o@MGr75$pZ)tg(vtJU1K2@OFIV<|D^Oz;D$kk+5guy%>|JI+5eIxeQrSi26WhPg`;)k_7lb532#=V zN=c37xLJUXoAvsYAA;}8Ngw3Bt!|eUIMihchLNa5rbPJxL8~v1D05M%m2% zBCS1H$EgsaXa|js(Bn(tO@*x<6-Ubg+7ASPTER$*oN~30^*i;+3u8=?;{^fHV2hy9 ztlxbvX^K~BF~=H5e)oLx$*@+d(3)bkl(1-}@uCDjj-?P&ny9}<*c*s%%Y9zaU<0tE zM+cNyCfS5ZHpg4F_MBTG?83-I8M<<=*L(VpBM z-m}bxmTYB-n$U87q{4aNmSf9&Wa~(r)zq?oqvYVaWpq!xU8|`;Ouaw~sdO&w#45PE zNF@hwcvBv;7`Yt6bw$)vw6_$Efub?c_^}i~$(p9Irtu@eLulX8*jtLmh9d4sF{YH9 zo6{jeVxL*ku^8C37FBFDl*z_&1+zPXi~vC|^d8kTHZ)#b6;+DmzG1m91zx_e{84qgQ1L;|YKN~Q^u^IDJ)O@XN9`||$a zNg-oaVsO`yT(y)7iT&7ZCA8;}tuh8@`si3QJDM}PH|CS~Kfx9j&&3}pt(YvweDcAk ztj1{#R=soU79YI(0j>207r$~=0H;S|K6w9qy6YXzK5+`qSIj0euHCrGV7tfB!H8@w zeyg}05jA~=_eY=Ji;VUnE1!FC5zxNh5uifC=fB1W72a`QG z+NZzW<=xjmV6m9-%~!sI7kb>ie~V8(`;c#b`=S%sVwa;oblU9|o z^>kpCE%7{0d^UybH@@c+1QB^Qkx*wVY$XX8p35Yj(pYmcthoU?76ZIVj|-A&T>NAp za&@Kgx7vZftx&4|cCuBd`K^Ujt&-Ujx7EYn!IR|md{wJfV$-T73S*hR1IZrr!{f&n zd97}l)m*$<))iUG9cw%vKM`M)tiu;@u~Wy4Q;0AITe^a$s9Jc!&l0bdPtX*TdWB}O z)>5WRX%&_Q`C>vbpNN{BXU;PzSI?qQb?_T)@O&}MH`?g%*hgkvYp+aK6sslKJy|Ihi@wYGfaWIkxGD>?%Kj~1D7eQ;5y zWEygG}!6!OV1`7R7PY=9q&Inu9+BNQfe z91&VZR#dDR2Vz$_mmY(vRkEUW6Ig!V2IJ3QftYV2NPE;OqELe0(&E!9q!n3A9XrcGAGNPAb9rB}isHc0+)GiwlrM!EK(Q}v zKY!h|CEdAFd$N8rvZ8Kyjsovc4R!{0>iEC8B6)P;G^MP}V0$rIBK7!;@uFBT7*)@IdwVX%`tW+uRoNubILQQXb5>YcQYgUxx6S~K^3@lYCGQN^x)hSCD1>;hb zugprsPps;=o|;iLD~`icE7H7GwddhDZ-?XGwK}H6Q{7*k57fi=*9Y_ySJCxFb0vK$ zDJV0iS{f+!Gjyb-kWC@zh4`f_Dt$%bCC53AOGKeUIaSbozNO{ofBAFHKYpQx1*VG? zYg=motesjXhyzS!q^OEyeSh+A{)EkVn|Ki8c^+|;(CM|wXE}qlHKMf;GqD5>!BSlP z=o)*YU0(dXmxx*c-9d-h;evFU(c9?KjGNrMagR=~%jm(BvyYsi+v(#6J{b7ot!uQp zE!MWyX$_jJ<{9t4`aYK)zsSbsCXH^w{j2+2{qzPeeC;_l&uriYn)hD+fa!R~E8qPJ zaWkSUEwBCjmpuCDqpY3oGu$0h<_4`jw$E+y#;b49YIZoabDG|IpEurojj}X6`@%C^ zzjBKph#8M3oIih_|MXY?k*A-2mNPqNnNL>i?%n0`qfhbK7awu$=2gD`tv}%NE1#k9 z=(GlCk9g&UZ}aAdzu@flB?2$zXnaUsWNZ!2a%b-vgYFhtnX)&$!{swCa^=pu zG?Ol&ACna+E#ELKuT zB~hEa%qYv8ZfBd}bQe#HsktmO@*>0cBRnr;l}-r41ZzvuY>u%8-;eNvkTjj)xs!fT zNPAIfP15L)XG{5ADGbKJL^GM1_Iyk+!I}&xT&|#xHFM{S(#LYT9B`en-T5-AwqHHj zcd`xmyNasc_G3?c{p@f2d-C?fQ!A>mYWE)?m+Em=k|n8%-Y(kr9AN)R(>cQ zCXTnI%U`{*!s6Lubc(w40=B}$9w+qh}O3S?@^LcE}kd|s(r zL9>f?IfGu95F~9^F9<>3^8<<9F%tHSDUJ#3h^I;^PhLw96ZO{7z9&fJM8DWdGCc$SDX+vs1AnbI(^BfesM>JT+j}uYf$`UV(@ZyAgd_=igy65uAMu%k6 zF{UV_pbUauxmx^RZCOaE`|7{5FKAC#Rw(f-9qqzm3X=ot4)PM#+#0~C$0Ubv=MhcP zf}{bRH6<;-hN^uuWg&%EE^%S_v6$oIHncZk=LyZ=j1*sfD3g7rkhWu4NT_eRfYMD_ zB|SxVN7Ec=qAFfT%VQ?@E$KpFr2;M$)j@dz^^{=>Q8ZR#%Y4r;--E>v(uw3QhAl<1 zCbaj)rlz^2v2Nne3#9<_BAiD`m^sB<);YUpnB6YPCZYy~9Ywq*3Kh6eW(gn{qPjyr zEbm)chk~FD@hLH?2Q4w#7gH-FbPcOLL%EXnCdv|YT=AxaeU&{hlyfQCf<6RWt{vn7 z0moCt+7(G5cui^jnbcAoimKyv1lv$$nOYEz5%r*rtfMQ6k)6wgqV*yk)UR?xHJkMU!>waqTW!TFlT2-My&HInD&V4AAw3rIE6QlKSTI8jF0wDz#XID$H{ z7Q?-p^s6Z5BpQ7tbV1S;MAQ{`nWL?{e!Q;IeRb0`2lO6R4jZdb~Ywb)fz zA1G~c+$NCQl~=-TTgBZ{9N$LNscKtnMQaZgEKJ?%_Wi)MNr4rFy-3us$}`)McB08G zX}*%rHi9c(Ug7?&`|cd2xbW!3`drfJHF)gV%k?&BU!g+9?yU#B^XA*`d|^4Yaf+ZD zpn&!54Njdug)J-(zTBfo2f+z+lDaOUD!0wsXd58wWTgZl@3>pS0~*=w*|r2NUh{}Ud2{827H{V2Ay>>b=^ zcr@hPBWJnx=`}8%eT*oGFvjxEJ8u%|i07Yuk@0X!v(ZFp*nM!H4?lZ{?|t(RIov;D zt-A$SN>%d7)%V!hIfFHDfA=2ewjO0UTcWkb^F30tVE6DAFJAr@?|%L&okkyPELomX zn1WWL%Xof7x4F(DoiJS-G3ab@G`)vb9$I^7Jko5*`JJa3P4^tk)8}Y>7f^&jBCWkL zXVBYWJbfThH41Vk|2N_;VUVy~&56PWMV?Z)zlA|Vd{ibU3=)bWCClbu!Slq-U6uvD zFXmR^V#!Vz1fe^@XYTyv=<6m!dof-(z?4(0sigEu=FeQ=;o!j!6**N^bh178n}yVW zj#>S;d93vB`1^_Pag{L$n98f;iYF@eRn&AR8E0yD7fRNY(gt(IPsN|Y%9OjR&@Msz zus`d>grY49A*~w;iZ1h&Q_^G`blebbmC|@g3omNA*f|B(EpH?Wr&!J?oDylvLKIQY zL-{g|=r!7Sal^&uA=zXsMTaq{Ai|3q_(_wX-6a}q zicc$!MTzr+x+RGzG3kn8wGwK3MQk67a%GBKRJc|fztJFC+aPFnX>6V%>lf6MNi{FlSLhEcwckr7%9U%*U4b5Qg`qh*`~Kzi4kr z4q?Z^F_jiyR^4Z|qBt!^5+0o{gfkVj1XkMUDf~pyJFOXk4`b9YeG&N=7kt#|JlksI()``^RSaYO=8M z&IAKF(U&tzIke=5wpPch3nL0qsm$0FJAk(a{yC?rR0eiq#Y@w59v%mIHB+!tU<$e~ z6NgA>J!Wd1QT-UMBEQpdIR5MP=?4EHl5h1aCOE?x0;n7hIX?0zl=@xo#c3IU@Q z2o%*ADF_dw(6pJw9F?{4-yFJXbZIerg*^An!n|~hGH34h#ji$+__SK8E~=~#yH|Gw zzo1|>TXOf--TI_(`urKz*EecQ%lW4+pcIs|60};}|Nh^QPjf8L+vqXquYrNp z?TlA`@CvPsCfPK{tPIQXlF9ukfAj8-XlzNY;Y;6m38oseGMs<%tmG9M_}QQRg8AWs zGmoF*d*A;7C;=ef{`f9&D`x%7fbs4WQ(B6BL(-4j6 zc=@~ZI}%7dnjFzx>+q|$eok5}`Nm7%V}Ey_By4~(tgIgnk3h3mH%MNuoB3)reIp*n>u+kFkcL z$Vied^Ti=Wk)lxeL4xEH8p1FkUCt;RL0npcma;4f!U$_2%a%ZaQWigGU`;A*KOIUe zPBE*MU+u5E!paR_D2>trYvn}y@Nc#F{{Q)@S9#JbU#ZK-twW{5HK!)ZQiln`g(x7earRcpHU|61=Ec7hj-i9EQnL0eu$Y zle2l|yjoJcd2s{3(Us_(xIxft3yTXdMJABX*;tCWbV)HA)kbsx9r$=rf_8@Vpxwi7 zO8e4_l4IJsQ{BvBMmCg)n|wMJ)oCsTol>$rUeY8QY!Y<3#2Y&V?G9n5j}C%bwJYW` zip89AwIm%Ll1;`e4<1OXa5izrRpY{preDLCy4GI!GVn{JvTkfJ3US<1Nu<9u9ex>m3AeM^2oJw51mr4XyA=jGIr-?J2B zQTc*(g^mQlVCIfpWx-1%V^F)PKHXG8YtIqm|GGl=sHeBeeOr^+RmT-Gv3&k!X0bCD z((EDk_du1-w`D|?!huO?09{d}D8XDUk1jwXZCd!jO6Vx#?6rxPY#9hHj1`U}Mxq97~0;wfHQF1FvPY#Sq@HGqzDbRAT zqudo*NNkN8P*N@bIEtp{{8OGn^?kV=C{)vvW16q!zVf*JNN#I8h|OIQR9JcM6*9Hy z!kq0&3ayiqmC94cr;P}7+dD3roEcTEiwCY87pR_wSf20ZuWvkb-tec#2kypNgNx5z zs()|x8U)Qi*lkm{V-|4p^Ba8e@#nQserHWk3(7*Hn{esLOQ2z~n$;@Q&ChP~>(_sc z=gH*fKm8~FjH;WeBE_A%cewS*Z9e_{V`;5>5ELO_es-0x5wQK(21>zjcf@P2{Q^qM zW6wT{A4_)SN1uK~u_zdv?lQh7xpun;yTo2Zd#8ad1x$=K>>WHH=|?CO8>a?r_O{WU z#^i?UAKc-I%TIH9>nvD!`_*^3e|wi7{{9b$lZ5$V&SzhI%GoogiIRZTe98J?9fM)_ z{w_cM$zSoUuYH$ur!Rq3ES7UxorL#4ev|RhgqNTHh79`nG5d%2!7KUIyFcUk$G?Uy zL*g*OSW6K245#~StZi^K*=M>Kb87tp_xElSco9WeQaHF`x3$LY{V%zE_9b?YuA_i3 zOqi{Ppr9G|$cvmsI^*ot6WqH0DM1jiOeZW>69BrcEwXGu9JL6;gz-dtS5+|vmTqfP ziX>|Zf|$ufR500%9%Nc@C^C(S8G4rWENR zRclY{2G|^Haw%S{!CIMgl$s(0TVl&u{d{r&`umLR@b?#ACrs;gSN^1ORTNqp-~CLcx^zF-%lziP~{QdM&2wT8XMK4_HI7n$^meDRPV} z;G{@t;YUs9xk?Be#T}(EwiND_DKTY1xmr*z#*pWZoNgTmRXgU?n&V6P_;Cv_Zn`)i zi^+spl~0Efzq49kR!hp|;RW6&N!t4%mqCtBYkUf(3_t&wc*xYnb1{Y<)~TrF80?U7H%WRnruXh^wQ zk{{fAAwRe$9;`q9{=fP^&Byja>WZ5vQ4Dttri9Kw(cf~!b|cKH!HyQsm7|S^p(0P^1e>v4S9U(}A91wUCp3)Rfj&uH3 z<-}4hMWv#2(|*1p=(qxFPlBGkNOA}L$Pw{<30N+t&Rf-xfraYAqw>ZH=0&_hIskv5 z9O)eyo09P&br#vb3DwCB{Gs5=yWOYCab$*Lyd}B%v03gV~oNMGxHAe+GnB zmMfKz)ZJtsiaIBcs&zP(R$?8WV}UNH%nFp#nfPt$a{2mN)R(9Vh(6{$nS;`?wZv?X z^IBOKi=z_BBvcKV;ImUVomdrtk!$xkkCgI6>9M6nZ3ZwYWsDM|Dt3<#wJf8h?M5i9Di!M!kvDGL zzLw$@d4KH#0}Ypjs1(_~6tCkuzL&y76LsAIUMm`#&0|Qcmi5>i(ou?sgtO*(&KrOJ zYffD{jgBgu`YhY$H_2xOrKA35FZZa87`Q(cac<#BcaB#54{_Z}FxW$<>XZiB_6(+L@PdxDyzxc(^c!bGM``ngvD~sGmpN+jk{OLi;V4!vmA`}$cvQoryt|3Pk+W&9{Vo$ zj&70_D|{~?3Su6N?r>`D5)X!V@Pm*}bDamnn}k8^u2o9PGAE8&jHdf+^v{y!3({gq z7$i*Rhm@tjPp!3N#gcY=lj;1hJ_x1RoTAL}{E#SUuuP}IuL4pDjK%XqjDoVr2!aG- z^SXstnWascqqUFHiY!lo5^GbmQdqkH3cP3yTh7GLuH?9+y^j3d<{Y!BDrM;8gx|4R z^mo@$_U~KZ;Z@ZCt9)H2Z~x}xA$8&8s-3#MpsIuh1u9HxW|a<`?!;Ht(KlF&s#-WF z*Xs%~FNjfoAU-S4!;f2T`p^oO3XZW5WtBBp30fLkh;KA(_3`3H9kb&%+O9pA*C*mK zT}mBSmV)cZgoZAr^SH*3d9k$lY*DrU0=yu`q>H-6sDNyIvrV!6p)ZfHQ znot^))`Xote%uhUyL%tCACS++7#E+TEaZ#1^KE4k2pz>z$a_A~V1uC3lc_>i*oNIc zN_(tEhYyS~|Dy(IwCVYg!gqe2bSd5`tYi}AnWD(S52UziuUR(EDb`MDx*LjSPtn^} zwECK6R}qBbyGrNB`$)F5Bwc6^6rC+adrh(VsG_wYcn0l@>D*MLZ7u6Cg(zm)Q}_uC zE=Vj+=weJX(r#Q$EUSs|uBHzR^LYum3XLhqA`Q+~rx?uk;OyUxtL5>?8K zaRhg13)Up|RN94R1Vo?)V)90b;$>Z-Z--XeRDeFMML7XTE#{tML22jt8RJ@TPN|w1 z>|QB~l}0Az9B+!U+AgOy&a8WGcOdnhdeo7kgiuRNPN;;ee(2=%xe?R5?^=CMF;i=v zJT^BHv6H(gL5*wkNvqBdooC9(RAO~3x4CN@EUgr-0NNhgG~6U0AjO@V#FH>*w@k+| zwMs-`^Kg>TF=nB99GYXV*h!@hh2Hj@vLyG%mm2k82SEF5$K~HTMwvS(E^f^+D~Hrr z!M)G!Qe-)J;Kx2sJo_Zt7qzRs)n@H6X#qWpU@@6<{p0Hd4WF7hZXm;r^5; zikM6%v<3}+`PysDW@Enhd%sT@1&k&~eDv7|eCs>k=GSk&&UWuCopzTZFSxaLjYhjc zS(FSX2Rw4-DU=mOq9`-`z~{3Y@AAUsZ*u$Ib$sO$1u@H|Fs72E#WJ1Kj61ZG9@p=G z%9-^?*dN_Ndzw|Yz*<9^EjhjMDC6lKS+*pK8te^kqCLN6P-*4SZmqLSr?i>_R{4Te zHbX0qER%p`tu#s8Ce4;aVS}>FSuBSRou=!PRW&_WWDBthmX5JxEI}w4i$x*PDaMqP zr3()B0zA*7ET)2GK%GDoSkO(d22&2}{aRI$Y#rYGTT7z<%%A@pwX6C$VMza5g_J!e ztm9Oxs&!bAv7K_DT(M^Bi9(AlQkj$lX&3r}PEme{PCCb4Ev@V4EVCu0YuQ?BFr`fN zfkFofe%urV%n$J5CR*#`LbqxUnv!fbqHx6uAn`cPgzQBLL3=>p$nD~_(#{xfC>B$4 z=dUvPigGm<)vKbmhcRB#z-zQ6aJtdPYqs$lO=sqp<4T2dFj+=A+$TNUqgYHZnJ~IU z<@8Yw7#j8lB%7!3n{A2aNfLQ|SZq;J%x9$IA*uEme;1RbWaE*8l7{Fo#ET-r z?%?^bJCMWb)_Gp=L&a(a{SA@RDGoI7)(K33@r|h zY3ipQ#9ZMLx6yeFs2YS19DU>$X<57vqW(z3}sg4I8sM892%e4!aPQj{9`dT<%0Hk7& zSL=vx>72q2McuMs$~frqNXt;fch;Pr9zi+27ghiOnvjU5$WJZT9|j9?dH zSH$F?J03QbcA@gsv7(n*%(O(e^s!OAAsj8$@?8F)D^OzbS=pK74~oKPu$df4?W7dN zY9%V1+L5$lJ1J#q5q0bvtG*nn8Wym1>sKygou9*sZ|s;veY_w3z1SUV>s2V{Rj~_$ zibbBZhX&iyXitjI`Fzgk_K?#roP!va%O$J5l)?Em=)n2sFQBUe6vf&TYgnr&v(n{a zYKmpSpZw*2;Gh4m|5qf9CKt9YG7IN*(YW>KCaVV-%iR>!hW2)wd{y%6w|~vEi|5&X zW|M#ZU;J-`K5rqL=FIlyw9mA7?~8YM`uCm!1(%+Xw&hD-dl^6WQ3`gy+-H$3c;c}q z@d8bEtH)}bvUlfzr(SrRvM?+rD~1OXZe734i@*20_`=31@4oXM<;w8=fABrRu3QPd z|LzBrrRA0Hzlaxl%*J!>?A`_sI_(zsuI;hb-yn(;w5R#S&ws{am!9AouY4QrDOTBn z2M0Od`@#45=z~v)y%rm5o0NrN@8~{j>l-|E_F1l7yUKcZ1EoAh(<83l`kepj5C3ak zd-JCxVUtFqOji{(f{e6=Qb^lhaSQPg0uoMI_Km6X+p zIiS1-m?fqd)xIHj#+SeA5NlUh>$2odPS?8cz<>VF$uH3F{+rSoYl_;0Zf$Ygma7V@ z>M`XpD&ir3mGVJV9IG}aoyx^;5Z4BHYfiKpiyV}Twlbxt4mJHfmXo$k;6S`!rmHYIj2mu znCkP4aCwRj0Pl^T*cVn){@dXLdG8t>NScc2P_PU^ByGaco@51PON$>UrU#bsfn_;4-Wd*V zi-En-hR%i*Y}0*9Sty!4X)BI*g>8iuY4hNQVR0lMV6!KYGShvTlxy}iK@78f>mZ)e zR!pZ-ASo>Y&#iS;o7b%oJcB4vQn=|8xDqdt@bOx)b45>?DPdnt<@H$utD&U0`!XQl zltgD@cVX0iL(y25wxlg>ZAkZ-mitN@eHe7XFm62+r329 zaVyFS+Ckc$VuaU$Q@*Hlrotx_fT_GyGBIg#DJrE1 zRj`z8*DY0J7gPc|R@f0PXjl}wdhn%?_#2e~OIHXv<*`q_RxrmrQGX@#3avD%;~D3G51R0N_D+DDhJ$hsgZ(eX#~~KaBVw> zb`Z>hu1&E@SybN>zt!Bu$fT}F8u+46754ae?h1br&qet-@Mq!Lg_)SkaX?TzENk`2 z9+hGyw_tV)DZ&hxqg+~lN@4eNDd?=INb(to+NJ{8Zaa6kODly^GOTI5KDwHbS%~&#xn)vfCW; z!yK<6SDEj;_7(?+`)r@uLHnAmc$@BK4;3n+c1(Mt1t^C1h9qtA6J7uG8uMbx`t}Ce z(_FZ4fm@&7VzAzq^(vS=nDD``KH~n-JuW_Rk+Y}H6St+6`RZT4O1IfZc?we+!e+=v zAAH1gIp&G4JVB$ApghIly&-@8)BngT-}o9)GbBnv#s^bAe*aUR{o2!LPxIi*L;Tod zHd}D%*$XVjD<0h3r$6Y^?RROfwfNP~-azB=+>6iA?RS`tX8h}a^RM~A4}ZY+=`D)9 z$P*(dqSzxYcYzw{JX&DPEqfBx5h!nv~-dFttBxqIghi{*lLvx`-hH{O4Z zZ-4a<*nMyx-wVm}oYOlOxN`Gjy6pkYW{dYfe}fAXSd@ z&Ch{fHV^@s6nz$ zjmhgNwX&4pU298nS1ed%@q8a+WO7hz$@;QLJ4OXhC{uX0EYOkj zM^y?#MQT^nlXO*0ryM>(c|Km;a^cQaNbH_}0wk)B6{;c=1*<$(nUwahrjXd2&H(K> zjDi+Osd%)E!!VQ-%cX3WF*4!j!n*yWg`c#fm;y1mw|Z2hdZj&d5K=B@*s`F^B&=CX z^O9%i$1U+2fTd$7B`s+$wfmwpH9CrBUkK|UpHZGE z785b9=c(oBzF{?krE3w!Ek$Dh?KLG{I*U}m(#EAMtbj<5EJt@7aCBwSp3vUW4m#?_ z#ur1wVkDlZGK0ykW&es{c_hKljjj|YC%l4EtOUnx^{@qYAW)%6(Td@lL`llcwOU(w-U3G zX~JrXPX{u6sE~^m&*3R>+gZ${g=npy8N7xRM`j`S=LfbHFRIMHY5*mFU?_&J$ZW}f zSVg&%mY~g!pIljiIkunDsO41q-9uG%r&R}c%U{kG*zu!*_A713M8hc1huA*iRlKJnnMb<7*hE3I3xnOw>vlzb{EC!B>cm=Rh`LoGEy>gz2T5C5mz|XL zdB%*(;{$#Pqw7OaORH9D+ZBt(5}XOycz#Q^FHt0e23wEs9ABuH7S91uv;7kXr)AEo zzxcTO<0+3coja6*v0BaovXo*zrdUh?E6*P$cu^uguVx3o)klY+ zQ$y@S#P)nXmZ`$UR0!_rl1e#H+9POo2pVmCr&{?9QLwx)uG^Poz9JnRlF!FvlOxi@ zJ@V;QY_~z_wSQUhNR;m zCd)8offvUFy}|Q(ZHo&*1g)NUs5}owdzLs+l(~@AS92%|Xm%C7Ek&~n{cXiyM>E*g zY@QeXRjVg>hNP`oOu%=oMi66qky%>nn)aGv{k*2N4&5z9+*TxAQDlNx%-Wz>O+_)o z%EXQrD%u-@cfdlPiRUO^N=Wo-W=SWIE-b6DC7l@3nHcDmhUJl!)}R&N)^aF{Rpn9Y zoKbYndD4>fp|LJxbdx&^jWf`jQeKnEV0CDi?@7^R9g@IHz)z&;ir2IRM7wsRSwVJS z$tRFcrLCu(TBCqyQ=>g3kQ%`}m}BILP~4m1*Rnu4hxEWwOyorB_Z>jgf=z{?Rg9fS zDui%T;Uz#QFw)}C)Jj%(UK6Z413nT0twKli?+H+hsRzo zoJv?3%a)sS#fmpt_aO-4$k;71md^%*=fO z*F9({K_LXP4l;{5aQ>&1V?}GzlNMuzc947f>^w1f`=cN>H zl~G=~;$~`&C;O}vjuq@wauxkr(Ni0NC{=+%ugN5#@)2^o!z8G-qq}?6grO*Is&PzZ zR}H7S`O*rlL97i;h1O7AH!;|Brgx-ZQhiPLVo#6@p&T?@mpZj^y*9=p#Z-MRQE=;n zo8)<37nmQv`H_HMfglX{+Sk8cdwJJRt+94-9cwK|caP+}r{L2sKIMZ?-<4u63HV1p z_%Dd#Sf=+v4;5%uixkY?qx;? zV}jTx3dG==%?qx+caz>)kEb4a2JI;h?+khKr|MgS%{=+8|4F9^8Mx_QokR9>b#{ufF{gUi!+*bh};hw2)#Vfa`a@=E~2i$*fhd4+`S1YtqBuRtP$OPcC7r)NCSAI^b z(PxoPDeJ&eMOhYX^v=p;A&O?)<^I7n;!w=!)*6f{X(S!WvY^}Eq%=9JY)%+N>>b^3 zHA{6Rs%SR*WW`E4+uCQg7^0OMt#>L_9JMG-Az(-Ck-37*B4N%__gH+-C(o9WJ@`<4 zWbwQP#u&-*nok|y{B5;Ub;JH$RhT+n_5>KX&hP_{S>O8D zh^|gN$q5{T$&W#swoL0UoC?AkyP%`Cu&ba}R+O7+s(fg+EGW}iz3rxSxr<6kW?nwF654D;v6G2AUkvVLF2K*_48l+` zJ(M<{($MTF;-)NP5tS=ST>Drl8Hu-$Esk5dfs3-SMhxSPo~F@Lm_k~2VWMh4t@ac_ z;>_m>gt6q%MGb+ICT)qq!Kp+T$lSCcK%+0yiNzAil@%<5h1s4VUrKxKc*;=K3YPYd zRjq0|&kuyZr6YO1V(umjJ;?>k#*!(R40PR|3mU4%G+3)BS7N>ongaOD$5Om`2?7uG zl~B=@!#zx#T2y5VdOXzntBCD7Q1x~zUv_%4l0qvOI1f;Ej6l(CO*ye>*Vle8HmI&XE=($=Cv)DksTkZPGfzH9)$wXoMTJhm8yQjCV=b*TPxe*S71Fw7 zI*NHzC0g2nrA0+r?ynA-v4WOHl>)}C&~P_!^ECPm@_E6%FLv2Hzs~0R4)f`PD2}-D z`gI<8={$qRHm$V=XvM34@;W;^r+Dh+CkdK9+SmNa|L0HX_ttswtIrd(d{*-n|LM>E zjAx#Gjx&#)LV1emaKW3ueuJl9e2SzQ^Wf$Io(|Ajar)v8Kl#g_(QLFhy>X89GXt)D zew|;v^Gp8GKlmqvLCAPCj>322>yokKW7|jm3xbq}e?tH+- z?WdS5hAgu=&8WlP=r&oA(ra%pTTaN!lx}m4gUNli2NyV;+?TrD4_IXj@-ia~VhWRE z%92iNo#}i?tJx#X7G!yf*4jZw3xXgI!{oU%yL^?L1N3*<;1anurcm{6-5M26#dEzW(w(b78b+nT-tT(z05JkzC-oiqHia8w2yPs9F1WEO`d= zv9uL;uNxj*x6H;cJ2I5HaE|;~atqVBD_o33+sqCv_rEAPx@(yo8iscbN4Jbj^Tn2I zAyjtlNgy*8@|D0imlK%)#8_vvvv?77PbpfPnlP5)Ea^$sVA9v*EAS)dzY3411pP!& zEQD#LJyEzOw@Q{rw%$K&AB(p_tgZmF~9`!MdzR0okD?I}}){jv(An zcr7K0m{Q~iQV>de-x6%N%E&@~Xekb4T1`hX6=)W6Y%*hu89Q>h=M*hhaG3)MaK;C{ zsnBg#99XbR_n#-Klirab3JNg0R@#XX0w#4(Q7o`<1x#K^cc4zG+Ec`lmH%*sR!0jd zK5@!WhJ;@4mQu*XNd8`^>j_O#3k~JW@Z!-Dpr~xW-t;9qvGQx=qRiQGS%*NAigyW5 ziNQUt*jxVbbYHCHO5WKz?7|u1C#AF$HQ3xpyG|h!c@DZsSsllXueEWnq z#QPn~oH&2TPF7tlJLR*eXzsGW|r`{^7I4 z-MEI3`uzZ6n2+Zy4(9c?|Kh!$v$y-e?dO{R`g{M4sEo!EL?LlIX5-QZAO7;gnt!z@ z<_w2JriU})cFYg|_y;J*oXU!f`=8%uKAiLAwJTJNuZGuTK3mY)Y7sO<1(_brc;~&h z(1AziY>V|XYm|lI<1ap-EDWcfUgyjAuY-Z3`62UiLevh(<~g>sM6C#mA?gO)`t&YZ zX)av2h;kFqfA(+xf=;i+*T41+!YE?@{sDjUlOOZ=6PJ1X*~=7J!DKOF?{Jq#p1!~* z?|;hL<~r@9gBNOE`}Hrlzki#5{QG~*YLVgxKG*MG;i;#eNc|l=v zX3HtsSN!;mKjr1ezl|+5ngHWefq6P*voA&0WIm+d-r)A$6{0YvG^KE-tYNLY!(=hy zkyFoeYwwC&Lj(q|7SD_4`847VS+*n$ zVi(lB5bs_!)(te0E=8G1>kmb`n$;6*a^+F9+d)XHVibTfbM$waF0`3=Nvv_U0C!dFH@Y)2EoAgB99m2c{68YT^6>&!%TN}`|6g!jxA2pd^7xJ0K z^PQTv5>J-I^tdU;j;am#+E+D9)Q<#gnjVR%F=&aprkzrQatQ~8;3$GvunDUNqL6sb z`0horjh;I`lv8QNd5NfNep5{D6jJz=GdU7^PR;Ww{u2TiwM(alSyxCnJA#=*F>;xL zRqkLY+i4veOFO!Hl}V@qurtI2-&E-KF$W9~zf}e*ap%=own-UTrvNiuA(4q%rYiMx zOE^rbbP8M7sV1JNa*SOVvc|zPWjO(PA{Tp8$FmBRqprIaTOjI=>Ul6OF%y?VI4$Ku zx1ph_B`30qidb1e9yrgFYIqLSAVzm#61po(PdS`{pf89ts^z1w!slvuwYgm-!s)UT zmqR#rlY~uAE=DJ%EMvi*$iF0a1yxmuxfWw(#;=(j)fd*d`^)NJEz1`7B z_xWA6AK3v5k8D3icdc71c-_q&%2SN5PZ-`B(%xyKmEz|=|0z#C@w9x;_i}bF@6g(8 zVG2?Iie=8*fBi0vUV~GYPZ6~vHa0gI-=7jSLQbDLL#x-~v-dwEpOq{RR}9YfIlX<3 zs4c#cy{iW#y_g`2*toQg(uxPS_6eha)2Gfd*dE{o9v{B*A^Z1_`06)aVQ{(!O7Ysy zUuCgK`R4b(CK-rI@$1*$V0~ka3s0P9K3sveeD=wwJp1BvjQ6L!_wEO*4c6(jyL5V8 z{_HRRJ?GC~;;AQ}#Td)pg9l6&6JB`XMgHb*eoVLBqZzl^+}!4i>z`qeojP@DL4>+}ci3h`5XywsJ+KlG=^jjMYrw_1LwDKu!PG00Rk~Xu&h%ihf zj5(drYV?@ShZs{j@mNgpNz$PxQ%X}3h7E^+klnFTuPPQ+X>vR-6lKg!#94oQR{CTSCf-Sai)Q@w0i zw+|)I*~gX{%9oI3Od*G~Fac*=2aB~OCYQ;^>ONECVgPTn&|!=zG8Z$`6NSr^qMlc| zg~rs1QL&gpm22qvZe5zN-6LpqMH#cg)bf*-aIne}TVyEhkxz$EmY6(8`GJH-7da{j z2-($z{@`k2nLUu-%iJdc#N>yQ< zkzTp5Wg`fMz_lUgM$GW}!@dobX!N?sK&t0ESg5Exc3ukIy>L9Ms_3cF5N;CG$aCpI zAosOB$EcDiMO76)KB91?re=DPi@IhHa``v6mydSn;(Ei~6&-!}3_6 zI&fFZsmmgZ#8+lVCCOTYco0hw3-osStesv1ZBczKZAjlhlvW_DPIzGzREQbqjy?e_Y?BSE^AG1^fn$(fzkN@dEM}?9ls9gKD zTp2!j^-}<{MaCkX(`YB?P`qYA!{_slKI8pgen8j`(7xi-*;8bzj5pqS1MMr?TMev* z{i_GO{>CpE-XHVm%NOM{wU#?~Z*%YVeP+`sWo9VSlE{lWIyfTggrv)y@!^!yXU`A> z9@^Jj`}8LFZ|?H+pV>5U8I%bdWES+1ruS`EIu_c52xJjc;^pDbSy1~IeM1gl`Hcb44bL_xw@ zXPf(nH`wl<<>uaJc-liNMQKWmF(groyvS(8ZQ*03OX8@(Xu9tLn{&!iB95Y{iM7J3 z^8JuJPx1Yb`C=sNv(gT<*5LaAp68S2D?II!U9R!R)*7N;7X z;6>qKOi>R~{jENp{f#2%w-rVY{rnw<_20!isVX&lyzYvsZj00vB-Cv>`MW!yD^SY4 z9xoCP6rlWOZAMpKQ1hNDZxevcSI$#qG1=S!MWN0WbVZcc=pA#gDwDDTlc&PLva+4! zVj}nh0IkJm<=V1-(!mQNQRMtkiZcLfD3&ww*$7+Y*gU6P&RlV*@B*1C3>qDD7!kI5 zcu~VKr<82Nawe_0JR_S9DdrPQx~#vO%G2mDMu(w5Lt9;fmMC$aqpeFfz)-FhgogU#}{et)3{qO(Pzwkq~tvyA5OVp}#;im4YsG6k}DsCxe^4Zbx z=N3dbFBM=#rAk^-m{t3vHSR?31~{x01<97;cZ!;t-nJrXL$(xVRoD<iTIMD zrotA^kmoxlmgC--Tu$nqCzEu=O4@EwOVq0QzLj9-%;G1age?voOC%5qyyrWzyRJM= z3O_m~ylY?8{C5NfEoRUk@Mr6MUM?5lDv1*;C_WUM{cmJ5JV)~kJC zS(S5{3eR6H8b#0zR;kBH^ z?2AHG4sET}Dc?P3D7VeNg+idD($Z8?D3nm%cPfTY-R`VBROV1n4ax)6Q>cbJ`A^(& zsV#*QzVmP?gngB`_S#I0@WfKID6Oy_E)GTtKA^sMRUQ%_)AVYCyV~%iuyTcm@>QJ+ z2o~lB)e`gqL#IwTzV*og68fi?=& z7L0;YuJ{a{mrLQou;s(ZN143u?)P8*)i2oG+QN?ltcCRMiuRd~Yo}}0Pp{Vnr&0>P z5kL;3+atnei1Ib#!!bYl#b5L6)6Y{53r?LmO?R`47sv^u$PN3S?6bRjpFBzFuMa>e z(ou?Ud>UI#&Od&hun}T1!_mzVaVKWy+&0U@75$warm$qooVA?+N!BFp#CVCvt@m%E z%YdCTr&vF=hTrhG|K%RnKD@zmFFi|tt;b+{z@4ji`QXiu_{#6Sz?loDDO1a5?|i|h zpMJ_WzyA%k&uoK&58wQVYhT{vo8S97VG@zA3a;P0jwua~J@Y6Zz4<9?8*9v`D;|6N zG49>H$6N2d!8gA89r|m1OksKN)3-T$>KyHEn_s^68kZk^ibm3;)9UimH~xwz9(k5- zx6hTUpRvkTTs(W3t9L$QwwUnJ)4#`CAOC`Oqe~LC2>h6v55DB_^Dl6B|0YT)wg>0A zdha9JjV^#gH)xWm#nJQuI~$j{cW{G7+(K)Q>2gdM#>`jaI$YTpLz*w?b+(w!k7yLc+-f>6+YAlZb*i1JmI6w5i7k}_N2#SM!26l^KR_Et;Y zha$&sGzq%{;g1!Lrk7iW+|Q@kd2PWrejQ+;{CzP|MLGlpV(gHLWr{k%qNycN0T^(VSHf0jrXq> zFgQXxkd|SQx~wkii0rulM`h&MGCLCLy7m>>OfU^)DQ(Cym+3j} zJ43b=Uy3QK^~j0Sj}%EqiiN5b7RC};gA&zBJM($!TOz0j=h3nT=DVUU z`Jq$Q!fKy)F*MroubkoB^PPH=ikV$`kRDo!g+)7nYSl{AZeQ1-_^Lc-+%Fc84ULN< zl5O|fs>Y#|GoiJsP+pT#)K~`{NGr3PTgS|j=kprXciHi+4EUWBElQlfYawkz)sStG zBFlZZ7m|Nk6>B==xb-(zn7OpxB%(n+6OC&px|X2|5dV}ykPU9IM>{2oh7?{>WLeaj z5-(NeB9O43CYnm8VZt(KVGp z-E-Si6`YQJg>nYa;XU!zh?KO5sW z0(2-X%7f4M2$~^&B0FbNCNz3YJYNpxozopu;U2F=kyBc6|MR=3LJ_ti(D0L={Fv?a z9imoD(oDE;>JmvWMkg9S_Ryina*}f8!!PL$dMw8adA%O=`ogfvRvGC`jIw^{qdm=H zy5KMW(_e7u{G&wOkp8J2%F~SRj(Po;zvS}sj}v!8Zhm%)_0wzo&5wSM1*-63%^W;IJW^XM5y`xD;%*@ry$ z%G0#lUHV%+K78vFKKtxbzV+R2v$eC0?`!`2M}I~;?(yn&aX5KEE9tPx=VV2S=lP_L;O=Qp+I7~_ZuMC#CnRy3yv)dp z%*EKO#F(x$T6+{_P8>JMiwt9hIhYk`&CXIvOOd8MSN=$GRdKV93z@1usS1=6Y%4%j zzpLZ>j&GNBG4va&`#TCOextzpU250~BYJ(RmM2jsOzhR9pbA=Yg44ch9TqZi==st* ztH|v&S4E03K{FH&ZyD!9xo5F=sp#8Y!TS@k!Yr$5A^|Ek$skknvBqOka z$y2m1;nB9pg=JM_*doOgGM!nq^GuoJ1rdI`kMcZ+LVW68%y@*G8m7bTS0%2{s`f_B%n_M~MQ zcKQTyL(mXb0M>q-usnP~xmq|Nsl}uz=~z++f>wvHJ8()@M7*{|(CxXHy(PfN`=>wr zm;b^V)eAzI798yfZ9R&_cV%7iA0~ok2trkdH%EyhCOaRY=ZWWNwXn=b7S9(Is%pWN znW#beQtm5K2xC#3mJ>lHXivNw*#fjHY6P($kF%xA56mpfBTG7S1;3TT%#R@MxCj_6 z(~797D3e&8AaPTPTH*F9f<*8LstWDyc#*bAEG&PyD zE|qd#u3VT`>V$90ixqyusWPR|+NIC!iX>{)79Aoa^-?%jl+qTg6sw@^T1!fNTE)b9 z&mCN2}s7DNnh{LV4bD;Jgodw zQn=}k#PzVCo_|rMsyR_(r zh7_jzQ)Y)#8iOV%_~O;J(-Xe@*8qFrVH}3K3 zuYSf$-+YDkcAMTtkKS6J-Ou+>D7xESTI)^z(=Yxb+l|wt%Z#L*aOuLM#O=skwZrJ{ zgnRq<>9zW7oLR>UeP$1qgsqU%+h^!+chP~zXCHjQ_0O;K^h-~3>Cz)a&6vIGhy3)f zf5t1{d4-FQTq0-$tY$g?=KuSzdF5L#aqiKxl!awHn(*`2e#Te7`BnOxU9v^NbTZ}M z-FrO!+*8cQORj%$lSZ@6+F(F;z005e*?&Oe^YY7IrO{~cV0Vv?uYADwzxzY(-MPnT zJZ3Z<^VH>M`Sj|Cd~xk_zWddGfI=~!FSvJbo2M>6&s(3oN*p)1aOw%}@88B)OB^-u zy^y;H*Lm^sxB2wuI|P12BW|%jzQ-zG(r;~WFu6w~ZsYqg!|6VcoqnF{yPwdEJFK!f z%WO_*N<80Zv6_;^Ez(@#Q`*e|v-!~7x1uysBo$>rQRW0eL{a7#YiY!7mf3f+4S>rq~SEpv3xaK%=E z@?&Won!>f_1VXB+=K`7JE3^9j5;aWxSUPG+fnqH|YanWqDQW}06k670`<2J*P^t!v z`f*Dp>rCnRQys_MQjX+axcD0>a>{f;)z;CG6lYi?z|N+qsgxx;iqKvlYMBv#m$g<3 zE;pU1JkPZq6<(a+H$)lGo=4E`5p;SovttU-9)8lISk5SybINq#+LjAf)Rp*g1FzAn zA*f-0K+tRp@U$qToN=|uC3Ohm zUbB8)(b-i2g;$re(KVI_}nvTK+f$QQEAEb~K0 zMz30aF5)MfTZ+sQcNC3vP1urREE*`nwt!SkHNA(DNkSt=#cP#3*ZRM9T(dl&U& ziqWe=hfB#UOpomGcSqx}4N?^PZP!xNQb?somU3Zh#6h^OYVx}^P>db>$`xoq-|?+n zOLleNP%d3@)RM>JCU}dHB|ma4wE+ALp`-(pV<_Epo(jMlh^Gsrpejf1Zy|Ua0v^SH z83{;~NTvvNPu0`XX3zPfEHDrNDGFFYc~d+@c%as$wT3SSe4AH>X}3%Ww3Q2l2D@*u zBWKhsKn-*aCq>KaCAZl9(jgBV7t2$k=2S&d3FfdASm(+fw*y0giV_LBLDV#N;5o>} z;BGCfOiiy>EiKD~FsxkLPBpanzd%g z=%>2R``h5H6SAdL@@t#x{F8tD$Fg6} z%X*S!S;dlQD*RNkA_L|I=W1=MDgDY=wINaxz zr@zhZyElk}1XCKaa>4sof6c}1%P6ba9|_$(%@&{_3K~Q~!e~C^vD43Sb@vl|9gr89 zn9Y?XFEfm>berpVIzU-T3)H7)Z+SxJ zfU(sSncGA$&MWX^bkua);Gu)$H(s`QLCtDf2R;|e>2V>Zyqfy1JRiT=$B&xFugeI0 z*%UeXV(8j@rL@(Y2S|BtsxWESNC-a>j#b6QvUy%(8uHo1fkx|HSoz(fr_>VibhWzhl3+Z zkICJ1VF`II2lT217&Qev+TD>iKS&hq4I##dZl4UBilh&XfjlNiq%dj>G+t2oy5vN= z936)`m#JVMsxR^4$gnst!pO3+PvlD%-{V?iaZilp7BQDMHWbM~*VBIh$Ury0N(+ji zn9J)Zm#`X2AqUcW3mrJsa_osRZXdQr+KAcYxG;-)ig?SZPOdGQ4Xtp)oQ0mTtXGC>NsKDfhc}g`0}SpkBRB)pF){ zXD2XYE0cP@6m`m@#w?hzd#x#0cPyZRtZ!ZwZLXzNMcouqWZ0o(EK(pX#GZRGON*Vl z`&;6p0tBkr(Y49k9vbY}96v{(uo_g)llLIfvYjJmDqp!bHCCv$Gql5TCSav@%}W#lzALseD>;b)vVGHI%ClX% z!pAsMy!*iI${d^RQ&SsZ>yAfhv9pq(6Jk?DVFP(CcbkbQfnXuEjPH-+eMl6=s^GI< zeNv++qE14;Kd9Hger|(jzV@7)H~<}LbmU=6%WHrADke3QL&Iz`=h~Go>tn?azV}1a zNCL8xZiB(;0RX>x{dGS1#iwMGjEhfP;^pUGsh{iU&JgV>o_*>$X2Ypm3@%HWszs~Y z=G*_^yZ9X+KlHi!!ByV-^}BrShp(`6W}7Epd4k3Mf-m2?#;J=teE$bOWO8fHa+LAc z|MQROtq=I4fBcV79u#TGpZ>*vWPC8?dw=jf;#PzyEmv<{;r8v@y!4$HD3bL#!pHW-^zZrJ^cR#NFGP!?Et%1;Xo=;WNPdad(7>x=VC^z+_L+9H-NlQ_jYsXt*3QQrqFp3o>ot@Z1cWm`TyrhQ; zq)73S?(txN<6Ox$W|XUmi?As%*%IS25S16;#T{uK`XNEHFG0;txiH4mExv4aL_Qy5 z%gkjE8c-UG!i!r3?Jj=Ptt*UBL0nV$O}eC5PAJnQw#X=E6N<&O&LZ@J039dd%?e|p z^&P_Q8h)!=E1t#}VOXV0^4XYtG9(`j#dDRfP|Bhsp~(lW4$)wPu+t|VY=|P3G|)ll ziphd}K4mpLWVOG`a{oT7BME$#R;WRF0b!?y-)PY|eV(MhPS|RrcW)Z@@084jfnp+18m9}SPKrfb-)kq?6@})diHnR>udhDO_V`^0_>dKU$7pt1WUd%0v18MV_ zOo}Iy+q%^kuPfp;SByCIIG0H z=dGx7QosS@<7k{p{Zmd&o!y&?r!E%1)t&pdU2&LE@5o~t3cum==*yRDl`L+@ zoPX(pJ4jatb%o6gpTGH;<7&zC4)=~I(-ME(W9R%9-}?S{!d%A-*vhDN9oX_rmj2CIVK(U&nU}5*c zeN16U`Uyc2ptR-aaLAhig9E*Ds;9=E3MLTfNhwUU>n_Y(`Pa z7ka&OinK`C8k}P^JD?~FqA=lbvWurZQioJ9Mn>JOwKS5J_@q3c=%?8d&-0ltMu6l8 z7VgC8dx1;?YM(&++rJY!Ect1nn+SZ=J9=z>gEWAe3Wnkx?v{l-Y{a;Xe6% z!t%jg(#Z%@6nOva5B}x9vQ{M9B8Q`0VNzKu`Gcz&RE*$$pz1;i=ZOj%!pagVxr8!XV+q|9;BsGJoS`GImziK4 zDua2&(W(?JKRhldf>^HDS4Wn7F6^t?OXZXeh4VByZk7%ppIY*v#f#nYo*3FIWQtjd zPs@u`jdRf9@l;{CfO26atI&6Nh-yH^C`zZ6RqQOUp~Q?06hoXT-6>oZIo(3OFNg#$ zskTenc-kpT;=OWIa4l1YHU;C@Uvk2h$EgOW1(>0g`(jX?zr=<(G=ztG-dirUa z8!h*JQ0!gbr@uAe{P~Ln&5-f#gnOUfr_pP$vvGXmr5K-+Gxwvq6!T zy#MigU=>fl@HDr+yo)I;2S@una`{mjjVAx|fB3gtIQs~lW}D43Tim{Rn~y$yj~{&J zAK)pUEK9k0?>ZZUE&RaeuYUQbeD#@c(P{Sye4mf6e!$N5X*#Vwzy9!5E^I%>T4$5- zY|QQb>%4gRo4oP)&xpc=i#tzpWA`&wMM}3ZAS(-ovwbd~eUZ;@zsE**hgB{C(7rFR zDwD;KM$}@KPBEsW-Rv`&AJJ{CF ztJizduf=ctt-7i^**~<$k5ea>cUQbhhxNKDL%H@FqE;y*S%Mgp^3g#9YjUBsYu_m% z;qf+AktR|pRR?tk5v}_E;;&LVK!;7Yz5qYzIRy%I*l_LFiht!s2g(9d3X$D9rOA{T zD1{%jP@YiV{iKbTv@zL2jPuP zqTT?rTu`hQn7qL6u50PDZ$ObNI%^tJSUgWL9lB0QBJnl(N{W`=mPP}e4TXcFQmn*- z<@w^l@*PrOHM2wwnea<|@lwStMRyD4LovB)A6jdg<;3DwQ6NYNv~|9dAX1pN6lJ*s zislQ!F66$VIS>!i{Lt1cEx`GtY&}t^UAwKU+LRt7YYNYqyfF~A6!}74Z;(iVm5xMh zYOKpiKVQlOq$l+YQCHRGcW}YZQ^&Gu$dqBRvV<*FtHIIQiA1VMQA{nx48k6@QdJSr zy@rw^DzkV^Iq_Q~+n{{$a1}>lu$Re1DR8w$4CPHJB>fC2M#|$0BCjdlD!WqHP~M-4 zEZ`@Ka%?dzN3oAiT=Z#$8CyX$RHSx`fIvs0aH&4n3{=y-rjCLmft{)d@l`pMNkvLp zem$osW94sMB?fjQ>*Bz`IZ^0Tuj)^_ZCY7q;|$`mEv$K{nV3qe={^-HQCeK#A|cD3 z6psy!S-K)EGt#zeC^ryb>PbH;#6nY}GTFIQtgxzd{xiq03Y8Rhhq)+UfwaIR3#)oB zk;10>+xp7DH=+t6@40_2u9u0M zF<<@u*B`p@@1E+r1Gt<(bmXuJ%N%VzbS#GBdmr7y29{HgodpYP?KQ&MgQEEQ55MVN zvz&~)HCfLW?|s3kjngzwx8?Me8uDdM*beD!^myr8F9UGp%g?#+)J1}p&+z`3_uhDq zZ~xJ^`RwW^{NX?SBXp$QRk>xkSn>Wx@AKGb#if@nf`!5P0dIfwCS0>ze*QAbQy63U z^7AWv^yx=D_R?cqeDOSGCYg8R(TL@A#pbznj_!`Zv-H|M^1LKSJdSRSS>y{IdF&$T zGD873zr4kbt2g-Wx4w_n@}6D2aRsF{|L_n05nB7$(o))-tjKue@?-q`M?d5I`AY;r zgdcmn{?2P;S;qHY`9qWk)A^iLwxrwd@L+$BPu_W-bK8&LtB`b+GG9%&c&z9XfXCfA@#R@USw@p+S@f(AB|wx13YSsxZ1HZa-T9mhQ^Vrnm! z!&(_CmcxgQmrA~~Ufjl-k}{o&4@vvZgzikr0LDkm(Cee4&?$Kh@mjU}kfp+*T9r=8(3QVO zqHz{enG(zvma-IuCy_xQirf;lwBQb`AQ-CbxjdDEB6(@Ax~Ijie9=TB;6nuZ{;^ z3}HvtQ=6uMVkQ%P6(cL!RQ2*Ux1@)bu&*GLfN8ybT(Fg6Il%|(vJHM$VV2azRdHYl zHUux=wG|Y{=FoC1xqix*!bqipl~7SNfrtbVcU>6u(#kq=Y5UogmDXPscjJJ63M8^7 zcCA7Kc4Ut^Q?BKQLM90p7CmqU!?u=4orSQ?*tMwh97pmL7S(oaD3C%8Bc^r>G_{b^ z8%kP@7NMsvje9-Lvz5Eo*7G6I)j*%L=-L{)pTkC2`{C;LVb^ztJ1J-?RjrQXi4{{S!4SOxcQ?sB+y$Wt#q&DXyARr*^4RHWFydO&Nt%`4A+oh;9}`tdc+UOLMs z?|jBnFFr+oZ6Jkn2_L@pF{gG;^S$qUpZ-=C6ny;YN2FQGx4-}0`hDNu-Q&HF-shkH zZ~wU{;JINjS#a&vHNN{t-yvP*9Na%-eQlEm2M=g=8vOc~ZxDqIp1AZ3y?&R~YQ<+a zKB3=V=l8$;581zWNGoo0ZSM-LUX!=qdy_oRxqRjsq9A6moN@c$CjaaQ{|#SU{}f{s zffwLukI7;TD4xFfGQarnFWFf;hsBcTDWx&QQImX>Q<{>q8;|hi{ZHsN2aKi%;qS)SL}5#tJ#(q$3W`>%TF#zXtCJ$YYM^wbl4Cw~;j2{Q1Cu2(q~>DKH`|Y z=f!`Y6OqND)aE`9koSf;aU$ZFb=F${wc<9#^Z=a2#4U!(vfH8jf9X+``BzOF%LGUn9dW<%fQrp)c2oBAxu(Dm?Y&4VN#c1Q_qS8HR&zP zeg0NH?vqc233FKrT2o{qX^AObF1oVGkg(puBn@mP!K2Ri6&9W?%LjdQ5R;DvxICjk z6E+HhdXwBakqw(2bX+4n*bx>ht_gN1awr_ry)ELRV79j<+hCRwb(V0-Pbnr%!j>fC zyF4SGO^6yIIii%GDjX6`$K?GUvtdt+@jJIg=Uv&A}} zOy)H@!i?pM2YctE6O#EpVFE|{kR-mBY;kiVh|}zEbP>1 zDv9#i2-qrRIIR3#+fWie;4`?wI^-iUu4^M+xrJ2bWSJw{l=l&=dOLtZGOhr#0)${z7eL*PtJYI@6fW?-n#>1`t|`=5vaVF> zzmvWkCiR+3_K6fHz>-YN?aE7o7=&r6D*;DS1wAV=U7(KIq_DRg$}^QN7a*r% zjoL8YOs{ccD-(#?;Rd+?C8MBWqa84gG=iSRg$}h82wN6vkqUE}9#pZ!Iot=TO8=KPuU8vd_5ChPHY}b) zybnsGL)nk>Q7RK-iTM5|w-tgNhng_Q@^Xbf7OX;X9`TB3uP z(cRQZoCb>F_JCJkf0f_)z25@^VLM`QV<3+!91lGH0IqOkgMw_F5!OPSb!=bV=Hrh) zVy(LY4u1Q&-y>;?2{KJnZr-`U5qp>`*DrG>K1vhgNdxmV5Gu#`oyu8Al z+jlAQ0;k~82bWnrvd)9)Ly`k{r_Yam@*{rxw||%J@-hm=rB5&M)?07$pZ?Jwadvi= zbe6H(+hJ#Gmw)t+{wdq{wmBH|*;qbAW>cbC$cx|q7GHV#H)+<}*i33=_IkVg=2w27 zpS|@mt$LTkE61_caxmDZKRMv5PyHUh_}~?iAd#smo0H`;v{D!y^TD+@IJS10y}>=Q zB1I`p942Jhj6;VX;pX-gaE^M?VC&!}QIs&5jU^?$u+?_cOgfAv1EMIQC<i8wrTRi1AbcMpGY5semlc@84#TU1Py!sgN)hyrCIbZD_zDy&tJ zVbie~xRK;`F|&4G?!t#FVO}yVV&}EU)Zuyk0P6jwPe&s zhoNV7M2gX2g3e}sGH_YyY$hYL(P(3^T46IwHXeXd;`efnG|vb@4CP7@Bz3}87Zn8L zJ|RA+H?ir2B1^H^jC?#I9qdbK^lXZbBM*XRp0U%Iq)wPgXlc-B5;R%@*v4XJwuNMI zWy1lf+9Mh-VWOB>e_uYkS{)t5Bx@Vk*$f@Wgv|~nu2U2eQK7XK7HKr_-YO+5({$n( z4`iDNBAE_sbmhOuhdzdpoY=!iHufxa3=d?&P*9*us)ey^PqqMSRh8myb2*V0Ghv#h zL&?ILO(1M2(jg4D1&C?m*K^M?=}VDvHWjbc!uCYmmO35pHN-?vUn+YCJ#)6Ki5i|= zD!qoe1dQrHCJV;tm!FRgKv^G7I-;t-0U(|qvWjh2t*>e>d}d|Ujq)I&=CjHYkrK(BOv(A7 z0b(Sfed2IKCzUupjzcYL@I8xef>gki!KI;>_IwP3^RlAb^<~b=RjKR5YThB}n3q0- z7{?7&U!jD3dP92dAdpT$2EKk~Dk<^RPkG#qbtTKGjuD@hR$`cM3K&$0k~H|zd_M38 z>zTt|ntJoR!|fGv49(Y%7 z)4#kYy^Vlr8njPwS9Q(iLx*|j^N$FyRbUz+jm?%^tW2!DAD^Q8lkfeAEE6_FhZ>Xl z$O#Aapl9n`*NWWE57}gFJN;^?`98UHIF{^D35;SQ2K)g(2+p_SFT;;&fR-_@oUd<@?l}uE`NB1?|%EcoPXpTzxL~2A!$YQcl&(zC*Psf zZSd&lAI9dEEX%lc_a-`096r6ywNGx)s<&y@n%KfI8jtw)3*X|YN1x%5haMvc441E6 z;)6@?@*7|MZO$A&N1hhswqTac*xWqK_h0%ptL;tdNgW+%Zf;*^oR0X?<6q>S)Yn{*TU7}N8BJ{@1@pQoHjfdIo-6Jv)ty+iA?tSV5LT56~XLIUF zo5^g<;pOA>M|)UbUvn_r#c0ED(z_pLc-G2VOB~g_Z$}XXF=;wMYb~Iw$SG_==2-`0 z=CZX3f)W+^sllRzFaH5Rbl>5axqSV1KI}iboHFr!&S?4ls`5N7-oJR;!oSse_zNH9 z!+`x%k*neq9Ig=g#^tlB|IekKQn$JHRY5fdkB=tuMtWsxGD)Z;%Su=*g%0aphH-N+ z=p4ng@6*={irKK52y|9_VrZ$H3F=F}q*-Ia8s%udEmCYQ-=EEA6yqL+&v|k_^GX>h zcMe-C!aN0rz_U)$U09Hfds26ki@zx!&(}*SjfrXmjSeP?36cguy@ifzRW6rEmonLy zjRs`H1JZ*X@o9N5qfCej0)l#zpuI%0b_A2u36dHrj3uzvIw@%0-(j}DE7OIeK56ej zj`@I&B7$a{AgRx*bLuVeTh;24Kjs|ya6mp9FuHl2@x9xOZ{Ls#o~cyf1hodbyQWw_ zrdd1cdjRXuT+)P*Vm1;zZ&|DD~s_Ek##3(P!QB?Eb%ff8vyjClfHc~6&Jy;X*ML7rKeaCp$GMmV* zIU6~~d-JZq(jUpfzb1lYd7hLWw-xmzEt26pyODI@s!E`2=$P!fa^m*BW$HvSsA{WP z*eF##2c|przWuQxq78&ynM5pqvc4nTpZEEh8bm8|U|5V{wq>hhfQlgOP)R_=1k#19 zt)MN&b)~?ij`W_bCIU?xLNCAJAm5cldxxaCo3`Ii3rUhM-?y%d#7D7kTq)VJB>^{X zws7nMG1J!-j7tqt?o){{T`CZON8xazIY`u9sfSUC!u5RSmGjG6^3e$mC7D=-Uy(AC zEC;<2h{;|fpkypxKn3U&!kQ&oB(zw=#8dGHg-ixISyssgsg@CclS9HsOGavBu{$Cc zxXem?LiyR0CxK8^8Cle|WNZPn0`W;{55l~+OGO&h_ESlb#5Je_0Z(He?NE3?X5~G( zgB&s+GtraGE`!F6%RVth(yd9@Xrdv}ET37Wb8cCfHz4Z9G&Y;_Z9Jq(cOPEvV^jYb zrH+?=@FVQBJP9eM>V8yUZJJzs6JNpQYVyv%kN`-Mw1?JapzUUj6xxS!-`%0>d;P z^TB6t5k)Z%pLmi_F1=3@Hz$| z9Jh9^2q-cUz2UB$jJ$t9i~9l4phTfym{worgHT3L`E0$W=KZ_sfr5+}HkBFjD!qkPAiiJOFtWtplo0XnXGj~wLb6q}AEkE+PYrvr&rC<~l*fC(dX5E3>zM6D%s z5TU|Ix(oesifrnm6!s`)Q;ON7GRsScVocEJ5VpJMFsibwbQBBYSrio05yeQN9I|1b zVl*Hd?E9=NG0~e^U6`tRi~9Ou;-xjBc31ipg8*A(%no)*`v**S?veHnnCxy*OvV&m z#xzNdcxi>GyG(84FhQdwAgor$L?W-*Y(_B}GCSDC{1<=p{PR%_q8N%oBrI!%mGV_Z zI4kT_k%~lSElfwA)nE=BYE4OhpZ8aaS-zCT%|a(zQOE>c($vItP+BGfqnaX&qYwaArl%{<{+5|?%F{vl*b%h_yk-MoxT;P;BW8GA4w>bO zSx=-@<2^L@P4y}PJ33mZ@L}U~g=NQwgLR2A$gnOM4dtcpFm7;9mHCemR@ z;Q@pICkAUP0+y-6w8KMhzBz{JkG? zWb-ItGm`Ifs_3kD<$kT$Jb45i8}a1i1wkw{@!LOni^*g{dSgaoy~+4s#M0^#K|_kK zv#pHAa)WxaPNUltd8B~!_h&=U|8K z>Jr!AyTS1%k8||UQCcf4OlTNwO}O~hMUt@2gAYDJeKn!8*5TC`U&CY}=N>-K>dHDg zlI6bq+DknB#iu!O@;Exs47Nu6)px(alTSR!iL)osfufjMe)_XlXmwgV@c3D7U%rdd zaO1`;)|c05cRRfN@=L@~jb_y0*vaDzha>*_yWilEhacnonTJ6sE`IhYH}72MOJDjb zpM7?P@pwX-%{aDslB~%1#V4=v%)?(IFcHJSke%LLmRoByn{D2{_!{SrJr2NN)MGg9 zad`P8xAv|vn)G<+_%pnF`Bj1-z~}&r%C^8zgCX?BOFpS9aTzppEur3Mga+^Zx(lVQpL`_L=*V4mh zy_{8LS(Vm@xfN;w11}l3Md<9tsb{#a3_EDJ2E(4X?zICAWYz^14msUD-lhL3H~n5gM%ZbD2n zpET4#S<;KVud-**O3*XH zpA~5hr7-^F>})P^2#qB_AsPAfc9|%2xk#GDOa>loo(VsgP0>mdG+O8&#HLep7!fwR zRf4=y8Xbld>9ksw(wb~=Ab`nA`n$_hthI#A4pDmdh7JS5W`|-rk=HLWtQFvs z5Bok(%b~+q`V5__q8LmVO7&K~LDcHVxiQbMX^L{PjOq4W0bP?ZVXGzHuc9Dob_hFN z!bV#z9Ks0mhrjvXK0oS7zEzQXKT$3$l=Z!JBKSWImQPLXC=yEuy08x z@*S7YkxCqyKrAxoZ+kH0t60*JV>%E(;hbb#rBg>3i9x)YC{@gR{EP=fzKhUAp84`s zHQIRKU<7c1Oz>qB*}1}+Z1>}PUcU6;Egy^gX2LlLEaM%N5(X`ZrOKu>wNHDFd_={3 z*;&b&3BWP2)Yz04B{o%LeMx6Gv8ouND*QK;hzVr`2-*U&Jy+G|=uioG^8T=5>`3=y z!cfX}J^1qX=U(DeWxPbJz>4q8rIKMKwJGwQxQT$L(u<{n^4O)YJpm+Tyh{cAW+MIR zrt+}@^W&cF`(s$mgQBvuJyWS?ZH8n1`_s2BUb!Ap(VkLonD%n%2TjuikH)yE(@l>?% zw?hh}Yx29>%`1T8_HzM;TH&TeRhs;Fo>0t!F+EV#V+9QQ=asPv3ISk?;IcexdB4`I zKO;ygB*oyu0dY63?tlG-pK<8K5m_%3gKK^2OAY@w9P1n-Uaradr;hGXsoBVQ%7ar9%KZyfb~=B=-ANRTq10Qa2O<{GtHjTgT40@=9Wxz9gGXJrX%9dEz)CJxJ&zVc-* zU%pHn)VO~08pn^Gpm3INe)k(Z`}lK&#B6RJ=DknfV*g-|-}ut+a`)an@*?NX&P~po zI?vADJwCYd4qtraw?HXo>5OYzmpOmpQEqL2Mt{=d^yVY%^zUJ`VLTggX!#h|wk~pL z_5oGNeb$P6nC3H| z#4cCik@t2*aYCNU$=JG#%%*@Qw^;>uh_*W56O8qTjO5Jzc0-L2gxT#_o zv_Dpr2er}w??I0%JV+@4N#Wxa>@WSdK#!^U6pHfIBg!YRS8M|QHLLY4OP{R=VhgWn zv+6aR&F1V?dAoDMY}s5`D(Rh*&`=XYk)fhGI;@FLD@@QPmfxXF`W8=|?}2k(mUTsr zLSYhb;I=toeF+mK*jy(1Oq6&(oiLnp-&P9B;bv3m42)`iS~kbT2~lgsgFpFOhY>cN zRfWwqOZ_@Y4wfxaT%MuBn6SNs)&aIi31XQFbk0GZ%XEAcla2bgEXB@bARr$NaOsTF zD6hjvz*15tSzgD~>hlRnB=RQfA7Jy8VlqaDA?f}O#cYbwny}VH1%cRUqmX1}gP_rv zXMZI%f}}>)KOi5E$i_oV5RwfCO!u}SO)>xCA3XnjI)QZJ^QDYPdPS~Cr;aF+a^$!! zJ`1xjxnu%G5D4RBbMLuw5CjTqA)iS+Lg@P}Cj()$Odyira90x4ds~)zM~m_OKxDb3 zB>-!*@5shf0IICVDU;bt$yp)bM*x;o-IUvT;F+)>nFFwNBoioMO?LS4jyI|MoGA)< zKPAiMtnUdd*{1Su5A>9Rv?r5-L9);%xNz_^v#_teB_r>UV5WEiE3ekrl>FtID&cLZ7xCX^|6s zx1r0y9pu6+E$SJ{vrt;VnhF&}vJ5w};`a)bfGsVLb=!qVpn;ZYM&*H~Ef=@|knl$R z@-qTq?iMyMHc-V`F248?YY%Kvjz?~PaGUn=<;nwSazk^aRY{Tc zwI*af7Y&h`R9)jTnC?#qTe7j zSCvQq;>9=E>+kZwljku}Kr3$3Xf@cqyhnYh!I4A9X?7djyMB*ef1iBMlC%>xR}Qgp zWW!6Bir)1e$#RWi&vNL&O)pOc+_`p#Bj*ltWc4Vur34hb_VQ~)LCoR9hdFfY2#s!y z{o6fW{Py>G_?bsIbLy;YdrI-W?|p}Qy~cB2{UT8<1gCiK{dYmZ6Q6$^Z3Cu*88>g- z#AWc%lMiwA(r4`KY}0DAS#GVdys^x;zWV}k9CP}_1GGC!q?45QFTBG8XCGv9{V?x- z^fvXVNtUOaI&qfQ-+hIH!9I_ldxr6N!f-TTyLX3kCm-R)y{p{Zxyt6!F^mp480|5b z^fbQ;TyrUM$amXB5_h~kJJknwLtIlr|SBDyUV;f{vQFVkS(HqzI#|g%vk_-(cbm@C7P} z#l&8LJLgZdrB5rX65%VjX@yNvL4?a^;;-_rtxSlC+m$Cw2gw|46{+~MtfeSszDH0B zpH0#b5C=r96#-&}k4T7W6pNjKc_!IdK3~da6NwWFV@$0n?2SUq;7MJ;mC~3fmWYQ; zK$goh^2t!96LFY0slaPcZxJ>-Vxmt|R1jclO)q=Sghlh2T*Y*R^`20rH2HKa<A`7g0>d z0yO`t|MHKY@2(3_(theKs!KR%STY|=xRcwhgTP;XXA{U%M_lto(PQyl<>|a^da^HUS(tdaD-&?1 z%)EeE>A56^6TlWX=0Tl-549}AJ&RO~?yeAUqqIa4xXgpJpk%e?Ku#H%DpY~*VJu`q z(fH4{93s)7EJuZqm(ra7OcswHW%9gDrEUi&tkYr%wppq#>OSy=dyS_koXLD5v~NO+ONO%>^FJ z^sPvbimD75n48lB1({6qDdz!}uk~?*qLSO@UmR63eksGL&`W#S0>d`4(oI`8u$TGI zK#TV)wIWr{oRmZd3a0bz3@fs2RS<0*Do4CuzN1e8#iSr?#Z@ok(&h>}(BkI`wS<8d z^0~RGqq)?q)(tB%qf!bxv+P~lrG7|EefwMc{QS*VIdlF2m_ZbV1hbItktI+NH6vD5 zR|Ql~EMYf71&VBt@mJse3m$st5tM@7l^(}V94F}}l0jFC2&0I%e*7ld8J3POp^ReC z>w{I?`1A&At7~))bx=kz+!|421uy^bWsV#>Lez+9EJ@GRt*f_r@8h>QbM6d#y?t8k z7HGvQue?k>s&Vq%DZ(%$9cQH3jMv}$8Bad>3~@7L>+Uu|95U*UXmz?QuP<}qy^HMK zJ>c+>BP?~6X?0tC@b(A1_3m5z#@Bv}&BKQX!hjDxdY>y-F7x$Y{|%H@>~8I|*V{z_ zk3RkcKYRVBOvV!$NrR)CCrHy7Kl#OrJb3ysj;xRTH?4yn$4&s4bprj#%QI; z^GuknY=onra5Jp46*REUp_TU2b&C6`s`>TAuVS#|8e`6Im4E-8cB=|tdB&(>xa@)? z7|VS+u1?%?P%M0eLhg62GBUy~NQ2f-61w@ckIO50tqKFJCWsukOhAw=s%5$IF<6ui zeB?vu8K+!4TCR|b{G=t|N*Q!*Nu)y)V0@@3D0C2b!*}LEn1qNrn^ygfI*6-jL{sYu z!{l;;q%FaqMJlQML4++b@9}aX*Ew4SlFGVB;j=3;9G1AXEO88}L{bD%g7tY=Hcth- zd6`Qx97Q5T3uw||>_KKs*jYv!Qvos)CfM0xmX#wP_I;2jgpC$Kt%*%j!ltCI%VeP( zG<7Kbh57KnOMX+72}loi1=QgPYEA#$7KHUC@zNSWy)Nru0>VaURUL7$n%{)R#a*8O3CXq=1fZYnYnC17E~TcdDh$w z9Bww341JHO0Ote$nqC@IKBe9b5y`H_JhO@U@>J-7Q%=QJm1*s&rf~ZnsCcG}(65)1 zl49k-D+BA3(FOce%@t$0-6@6J&OMv8c+i%qKYWTk<3eH{A|;hH&dKwqR=|$}Ca&t~ zqh!$V%$U!-5}>Q(ahd;&Ym&n5#!e;{dsf!3X(T1SC%?NHk`muCGR@etV!qcJcP~SA z0$c_`ZY1P10|o_VH4;WH^?*?+xu_3B^3$=bTiTnkb>l9rwGIT3^>Y67JAcBHPdy_5 zDvVf3R;Vr2!9WlP0|2`^X-Cq={CB<<>ga zwk}hT>uf9?<%8>Qvaxi8z(_iJf3(lxm6Pm`c9^A8j;x;I+TDvZYi%-{F`f;j4kwHm zO@|~=15nJeDc$xe{m}tYT$4`1Ld?RMpD1%UiX!(zL59L+gi(zwA7Fg(uyvL|N949Z zqf0&sP*se-J!{_3|J z>-NB`T00*j<4db6lPe|jB>+wNgS|3R^Px=%FPNwY_9mWT+rS8$({Dug|dQ zRO)n`#ds6EvlbI4k^~mr4^a zuMyN5VyO45nNAXB``g&rjAAyewxij>9$Fisb_Y{$qLfTqhRrr%vx71Qmu29<1R*w0 zne5yn9}m&P1IN{mEO)LH^mo19tE6vgJd`>b6AFto?m1?@3$VZAIJj#W9>@kV*m3OM zvf{JyCimHds^btO)xCGyGU>a@Jb!T4(%Z7WJ8RC6mDM(-=c)uJTKm|A&b+Fo(N#27 z6+z9jZA~R0NP{h8x-g$1U4g!1GaEWaTT+Sh%R8s+ERZZI;?DfGsHLj72$20?bk~ym z$u)l=G0&zmP}|T1jro;X+H=hIT(y6x5CRV@#E+y%_ZPgArB%T%H)#3N=rV%E&i7TN zCB!t_T{w7|h4l#)d2b%|pd&CX|2PZzmcx3M#MB{Jo`b8R=jIcLEy=7ZJ)E|TUjVeP zASyxh;`=O1rte#CEfOM*DtwgGA4tn^On=$x4y?pAfSB4lbB4(cEG~6(%S54|uFxxH z9!5H_k|mT#sr4PVCbGgA+ zfAgy-qZsWCdE=Eg1i*%lU%d1NSjT8E;?m6vEG;jyetuQJA+U3Ii$D3+|IExyIq~pu zqA29V!^gRP;~JOVyUfy&CF<=ugS{c43CV1RvyP=hUG84K%W!+d11HYWskbqa;qGU5 zdHsjK;Hjsd;`7gZ9&lXxq|_gBPQ9HB#e3R=wrP4(GO_WTLdOznoh{`jFr{~gK>|0`!`u%I?T203*I|b zpq0Vef|d3L&N}iUr_)?!f3QOsMohB_SuO{MtYijsP!%#KaSdA(L{UPPr)aG`=#ui> z>FfYYL2grQd4Tdjq#C#9m&q%Cn_Jw&{_dahsf$I=m1P2|iN^AguJk;Wqs`Tbb5R{s zl@37}lxcwqP(c@&8f>6cEdTlYbl66rMK)9#bS#sBDC9t|#fRaGo8>-ycUd5>6Eyw5 ziS!04g-(`GK`1g_eO315u#S%X4>%TqD`I|ynW=^jiPgsoM=M#oz` zN|ans_~+$gF@P77k(d0Y^4ccE#0@En_PJP5M?jA@VsI}eLyGB$Y|tY;*dZGT+f-z! zmkK4$A?mCMfNFK657C1_tmJz`)j3#98Xm7qRjqH_NHP5(t{l4fQHPq&lFuD?TX|QgsOGK!A?)4tln!oFoj9OsgrV*xw#` zHm3l4&!I}+SmOOm3ISImCxFZ|UDZY9MC3;lu-O0SWlUAFO8&ET2Zf&kESDu8g3=Ow zpy~$tg&6A_#@jjO=61?y(Z~avvXpx2{bN%pfL3)033U@Y&n)}pGe+hA@avyDsFyVY zUS`w?7_508%fw0mst0TN-VD=`i9D5Pc0bsXI0nC*?Q8c4O(au&Mlsy!GaL_TuD0d7 z4h(S+6SiVh4yGQmbZl8x(8)d=HDWQ!@6EgiQ9hTKzW*cIjW+de6BHcWIbh?+260Q$ zevh3xj!6ukUATfP9Ie$B?Trq1KE1=JHzphB6tkQM&Y$DN@sr}u0! z-eBeU3OX=!f-bXsMy*+AskuV?aGP|N@%k&T6Y7|iL#sS+^g&h*uYgj#{o30kVZzym z9>C-wt@S3mH}-h#)mM4q3r}$V>_dccfHI1|{PS-R#v#vq=^47KOE?R+uHEL%_g?1< zUwMx1a+kr*kl8Hb^3_W``Q+2YwV0QG@-jycA0-`UoH=`z{{E1^_|Bj3CxOVRnfr)6>Ww7Aty$d{W_))Ta#?9TUH0y2Ru+A(S(;xSE`1q4tzViuj7}KmT zacA#3D24GQ&(my1x3$c{K)ME}sRYc%al&xiM`=TD3#`qn;MTmzF+nJC4MvNvrAUe6 zIR`REmJEWQoWTL!w;i zl~diaj|-cmv`jqdU>V#DWjbP9)e*kwow*skydo@Qx#iWS%l-786%UDWR9C>xO1isp z!Z?*zouzr*ma?L}hO@q=Mkz0iDQ_CjP(c|cnW5trN@<)cFtugMN*R;1QAqBV1kVaf zCw+mbtWP1+ed5sx#9VGuOk5*KTG(ugHUUAs>%CeQZA1c@cMcZh)3IMxE)t;4(LqGi zToOhp2nZX?QiqdC_Ld1FG05lQl~N7~3iYOO?b#otwVzOIdj?7oHrnVQ@)DyJ=`qj9 zhdp7Tid?qE@j#AMtqx&J7fk#MhPf4k%`0irEAc#pL4=`9vg0lhg=m zb=l;MAz9rZY)ZnsE#$ilY7J()Tg(pj$wouZ00zwVw?&!yul|qEKVNSuoD&a~@m?jP z1tEJakC%YQ)xTKRu9f_$CGecFI4 z6!}zcj}o7FK9cRN^mmQ+C6LsF;w>st@ns1JE3a_o{$TMkQAv*qi6s%gm8`Eq0!#C$ z04}Aa^DrHFz+)DOE`RRUT7Xh1;h`YwOL%DDeM2r2nJ{R0qqlLA`{hBJ%f-m9!#N}8 zBU38dK)NTu#Miscr7gT!eb)(yECJ;Lx6m`_98r%(EA;g?J*&cB{N zVd;^ZC(dioLr2gI#rx$T4ikdNR3+E7ZjI(ryOJ)o(S+^D16F@Enn^Up?q}Q3cZ3~D zl>O0j=eNL!x)1yimO+yaQE6hj-5RYK(pB* zZbS_ChGbbrYpsnAHRHVrAAay5+8I83{~D(rJ4N?MmmmpI3ij^pbMeEA)RG$Q^)^8w zCyHyIe#Z4%*Es+9Lo`>KxZIIWGG6}aOLSUY4xKziYpuy_GQ*gVPe1yEQxBY`)~Rvj zoom!uHHwL2X{F23`ZBjJ-{HNt-{ai5^CUD`Kfcb^^=eFr$n%^NM^CZW+vSzFe#BRv z`gK;?>*QI^o!#4{Y04L${3<_q<8KH}g2Qrn^#ptUZ7$vZm|y?gA8>u^GSh6zXx3-7 zy-9DhM{m5(D|L2Y3t+Zklf}3CLqlv zII^C!7*EI4Yb|EJIM)OLX*xw4LzYc(%2K$(hlFOJEQL+Im&l2yMJH0;tc+);7N${t z#kI!YGN4v}ms#kll5NVIEmua9F2pd%F5;?8DWxMSle$YQ6S)8|>&>V>wOB4!{J-;Q zL|K-rSRP8o$2noCTrP~1LTndd4QF$7)Rfm&f#hMiLdu=XPb92+KooeZmqq!A3uW_p z+=9(3py#{^9sfAzLpTKpAya!vTRwMJ5F{Njy%(93H~VQpnP_Bg4le;y`JGumVHh_E z<0dwrVxpu1UjioNq~vT4MS(3u>T{KU%X+C&i_B*NY>^YzTLi6TZ;GEM`WN2VZqupA z(36q8w~A}eMRgAvqQL`y3KNzK>qBt-2FI!efgLyE~5^MCm- zo`2ps$LK(cm75(&Y99|En>q1O0eLQcgSwpPaEj?zw!t70fQ6H;LZ!uTr2|#T#-(@4 zA&)Ol&b5{zZcx@M5rncVpN-~0hnV2!QlT(rLFmooIn0K#4aVM^G(C`s#1cR`C+y6k zk-MtI@%wX_NVG!<5M7~2dy;)+{P=x7lF7mnsA==d%ap6Dz=I^0%f(A+hIfU;Bveec zg{8bLB2 zb&hSEA_`;L%`P8ZeHW$R*@u3O_bb(nOMM_qr ztaT4_bLT47I?fz9?GXea?Zz^D{ViIJE~Cjnf?$;< z&1V$0KxtJmP{ssg`HWhv#Vj9VbcE50te6l64W@YyP*|5&V5lf%!fLzJ^WW9NcF293 z?)^Zk+};-+XSsh0QEBmZX@8P2VTiSvBzL=W#+ocohnTqI8L9eOGXslGgP5ab+o2R(UPZj2ARj};JN~A`&n&30_7GcuDIxCEpGGL6)qLTQFB9rA| z3#kQi^RB|MwJZP+M^JD3slJh{zxRM;qaN5?m@FV455PHsq(;!}QnFJ~dx@aY#AbN~ z;DTC>w10q2#bc#|kZf>3K9R{n6DJtonP}pgPjPR}{bjbmBsFGxTjahxS~(dcm>uk) zgOI4zmeA2S#^Esk?Dzlp`B4uBdyZ`4s5OMu>FqdXBdMtAtSb6Dj!9oioWod=&S0=7 z3F=`ilHkFXle!%T^^WwY_qH5%LEf7UMG~y!zEp10M%c5mzNRdEF7v2NC=-Q2C;%<0 zd*-QRr(#u20G2XhkqN_QJO~@_h=v>{ep)e;WOifb(~^4OJf%Z<9la3GFzdnWz)OYR zu~ta$pVN$65X|)11p;gFv^AwQxgVE`-ll#SqeR8tQLZPB@W`QgTR9#B@>7y znMXflJ&ArO!%vlulPFoMQdZMt9#baFR>_8!(}`{>{wm{xOH0{OIg$QcuFzg8)c*C! zWy(;+{xxHK=p`@(*Z16TOEHHE;)x`=`bpZ;q zBdi#(Z@tW?=WLjNjL4bZRNnWo4T^cspJJY>9x7q8YJzCpP9}_$Ms5%8KOt1|WO>2v zV;TtLLPUj1z~0EtdlC0?iI_+=gr&^Dn{qR+mTgybv7-e9zGazyi@oEBEv2k*f#!6EpRR{HM zlUk>aO&z^k2PB=E_`}eA_q*TWfph0@&Jmc9rErO`8`4;9qC!pB3BfA%uIzH@olC4A z*+9pJw_bmXV`q*7inm{Ti<4(h(Ohd11YtEe@WvajbNTuu9)9!@l5RqCxk+4$`Qa-+ zq&GO=>?03Q>(to2vq!C-@WVI0$7*+tLuWQIMzeK!kFXK)`ddHaiKjnDZ8f2PZ$JQ@$x$_a%ANMT5FE1pW>|xuhC4JoImK)}f4t?#7O+5o8fNUPTnN*Ben6%MBjLl~<)z?_6 z!a{Wz`KljDfp>XIkxnFoO8aUcn`7b{QF~PYmDWVfWpoen=&Y5_O z0wbWP@HII_D!Eocs2F-6r;W&s)4pTkJyvBV)o9m|O=Vrm;L~g(lA!S_NSS@LC;^s} zcp%S>eUf|WCvx6=T}pbh9?W`fE>AiM993rS5m1IIC{!u&XO#h`B|seCTgblpCE`JA zFMo#feR#I(sk}ns7b+IaKgZ4_z9DQVY%Z}2C1d9Nm`ySC`Bn=y1v?YwFgpO{ywnGC zLo{HA;$_mlPf`a0aFqXi?8G03lt_CjS5l8NPdV@lQn-@H^zs5s_Jtu-43&&ljWSLqV|;S+Mj*m6L@2Gj>xa;3;?Bz^y9D z5Krm5vE*D)IP6}TbG2|_clbU+4A6Y0 z@K@7`M$KfOa5GTOPyN+2lMj1@K`2v&BggdPKA9>A!bqgY+%dV(Cul?h4o8;TuYN}N z{Hm-{>bUaZMGl=licW+%YwISpZWA5J=x%GZP27p+#(C{i>#btz;$0d`a)mwVP5AHr z{Qt!lo_x+H%0qonqjju9x-~-;itd>u8mkQ^dlO+u3fQ`Ik4v9i=SHAG;*c|%(Avd=^BMbu`dGHCo_tO_>)!H;` zEe@?6WjO6~@#e>T;nA<7mEp?mPsxguT3lznbCh3PeuZvhm9s}4=H|{-rs)Kw6f5mb zuHL=Ca(f-44g14w-xZjU*^JR-$kDY^Z1?WcthJn)H@+*p(OpYN9#qVdGO=f$yxiwlX>`=U6{$C@3m`Oc2UkonQP)?-SajGDkOi{rB479jd|#t2yo(u8i?gn=|zQMOY_SWZuZ#z-AMfo~tjR zOejI5QC&)(eaE2+Bq7`8xkzlrkc|d1ai~OUEwW73qt(SEb#I&(!@5K|_#7<-`Ka#` z;m0VY$cEw#)Jd`st6&M5ZK77!d&HbizmF-V6KtLe+hhXiFPu%lvt}ldTBoqlBw5+O zG=$M}d4>)`f?A#Fp48>!lQBWkARqL|N5jg;71Wy^phm z_Gq{*VU49h-ua7((wd^o+#}^x74a&C3RgI?k<{VfyeG;(rV1!60n!NKg(B@w4mpa^bAs}vX^eA91(^)aV6Zv4!aWT)uDp@Kek1x~TnRq6t zu3@i`?r~r{7K?g%%nF(JI&6$U955(J9~`T zc*eyKF0!$Hh+^hA`M^o?Eaw}4`Dd&yuW|D584e#lLJ)_%`o=5VxpSM}`<>rsX=#~k znsfE`Wp?+s`Oy2Zzr`#Y69h6XIZY=-VT{s-$!x@Od!61`#?Xx~X%2#r zSw4}GdmluZ+Z3e?nVk{%tINX9NTLo|F(%Yatjh#cp>gCWjAxM+J%tMgWaj4dUkR+# z9Du3H3sL&6JS(**=_@6nmA-sf`P*HYPgO=Ukb<(6)F+@P26CAebQvma3y2ClyQKmz z35xuOoq11{nBf%~lmv5PbChx({1tLwv~%y5a~5rc1(LWHpVA)2UeeSOOqx$oVGSKb z;;X7H30vnZVRIck+hmef6+T+#Tv0|b*vyB9ram*OK$)QGHq>EK8Ro-UM@;EOhKcF~ zwU&=yu;?)IQeRGy&E|Pq-XCRsR6yA1V(Kkio?^m;u(^cGr}Do2_h@I6D#+Aksjyf! zmmDnTpeQi48p+Z|#ZCtG7Gb?53|u;`(%ZBCo@c;PVZ2h2O~ZPVpw-2Mv3zz>O*~f4 zVP_IXs!V{LPO8a5o24R!4|>9qHCu$OE;@|BTH?+UQL7{QaH9b>^$`)kWb3Z5c(x#H zw1pM44)b6BXU{+H3PowIuQlWQnhp}(U9Pd>!6 zMAU94pZ5(eoCutc8~|aY1RMcVD>7e0-|y`z94_;(=bY#+_nlA{{w~pcnFw#FjPF4^ zny-si1f7^5@Y95We72?$+(*00>hUgzem8_Wh%S{rRy@BM&IvqSrE zha($D3ELuNP47kyf+cbj~ z%bgWg4y_P3VzP0@r|(}N8)h6^Kf(Hub;3r--o1T3{pbScA3x8bwIj4w+Kl(c{Pkad z6O`l0=bqxwkwYk>xqEesKmGo{;|tGxiF1#g!xj#kJAU@|t1LIyc<`|Y>FxFD9rP$N z%XB*B{DTkj@y8$W{)g{zWbGKsoi*0h*12@$B5!{BI=}hc@3FSD$@cCR{b7%-gS$NU z)R(z*^#bo-dYg^zA-c^K>T!!-eEJGXX}!5-z zxG6eV!Py}?DAU!o_$gc_OqVMs2mRDwS+C=qNP$)LPFeE4P~=-qAeMeGXK_{-AMAVz z(G_VWv&ip~iREmWft6Q}mnlJ6FB6Er!(j=M4rOjv&|I&WHB;}(V+zUm5{WPq;8n6# z#Z3D4@)=4wOwy9qP>!I!jMmDV=9?lv+T45IVv5Z71{Ueuq+XOhILX%vTV3fK^b?Lz zdj%bY0!#{F0qksC)#&IjqL>T>7;5d)+~tHC)LVp|Rmq?#a!e4TlN#CJKoZ<1Bb3o( z{e6nbSYE&0s?y)1R+o5b1(Vb%(wPLWMiDwnNCyWV_)RgjI-wM}OOri4=^@y#$y#T;U`Xwq!p21&P+)(7lj_ zRcj%o(EfbbSXMOG=gd=(D3aDZ9zh|-_wnxBn^TloSfyvK+7#zMNeklEeE&9)fE-tz zSaX={IPxjg)ptHFwSEC5wKYZKs2p6Jl4_aJEn5N1pyq>w%VS93TMv9hOFp&poGT@s zF4GXBdv&!}#WQ&(s+2&>qtL=ZODQFlJEaw&=F{Zya^(K}2|*W3!!O!_ozCwwZ8fiQ zTKv)AG}u9TKm(O5NS^y{KA@8Tb-#)^xC7>lQ(aYtbvN~Xv4tN8l8ZH(ORVL_=&i0{wMoK*Mt33AuZDZiQF?9a>>rW=7`oK-3J zC@6Y4qq_sysGMT3)92M!U-1u?2n!Pg!if6M^xypRf9nC7OjIVv>*$pLB1P6u{qfH6 z;Ro;Y_FHe$IktoXP8>eL^0C!w9Vd3eG@Ifw$KJi2YCX61@A2`ak3m7>P=m&5lUln* zf3L?k|MD-%CpjCBtP?f@@;v8Y_kch9&cCO9w8cZuJxIOQV7fnLcW;juU;93dZj1BJ zo+FGyC}7H%>vyj**dDTZa+AHg`_#P*sfgEbxIR9nBD4>|-eCwMp zaOvYq{DWWrN1Q!(7Jzr&f14lw^oKn8~|aIbF!QVXIi929imi-jygD}(b1B~ zazRsAFB77ZRe8;5NosRUf{weOG^VzKjvA7CRa*lcqM{ZiSq5bY>T9U5j#5TIlakO) z9f&Won2oAL^olU*4UzeRq(ju+K$!rgjHJga zjmg|vX z_HlViKJ3Z&ZURh{5VgA0){jfBRc8eq)lh-3N5yzR*54-^9#Bjtr2TzapIpGOiXwCr z5wC1WK379b@=<3Q6D24#`D{!!=#fu`O!u~!+`EOH`9kPCM+G54vrT>d2+8s~$=arv z@0%TYFS8lNWJ1+dt(xg$(mE;TwqqeT$K)HjY0FRfz!#ozzq=fg-g^gI`) z$SW4)nXpMoL!^Yq0sX4G(V8zH3%8B$?%9S9jl{)}cpEHcran}lfkqoUl zNGP+UR4j&XH3Dj7D!K;>8r*2XBen2Zl;(Dnl9-2V&NiuqJgn;V67ScDHH=s+HG=fhj5fhAt5$#yWcY+boa$FojBVc1;RBp5OyowOPTDCiMvv3aO>(#K6(E`j-5Th==y+o7SlPhL~C6bDHUih$Cl@p+e1_D|fi^*%eNlImLQygF|OFQCjoH%dfMyx5wEB&T(|}IPH}d zg|+d8f|yQog)GnLPxcv22RwY@X|CM;l-y>VIe&~Ne)}+{=D7XY9^KX|JH5L!>usW_ z#=ZTUL}5biCl0MEh@(2=*?=gnp_OKqO{mpcOlN(WKDGsUF$3kuZA#%Jsk

l45j3 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≷X$P!}>P>T6trn@5eh7*2pw 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

Jj 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

mu7yQL2sDvU;7?7(gRGTEovcgVzdC1ZrxZnH>) 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

0%$29)a4MkqJa#w{qz)1Ihg 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 bq8R?65x>T8j0VgBjD)?7v-N#TzvO=ba&njj literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites/HyperPlay.png.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites/HyperPlay.png.meta new file mode 100644 index 000000000..83d9ff925 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Sprites/HyperPlay.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: fff42e870475d1344995a94a16299795 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs new file mode 100644 index 000000000..1355d240e --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs @@ -0,0 +1,83 @@ +using System; +using System.Threading.Tasks; +using ChainSafe.Gaming; +using ChainSafe.Gaming.UnityPackage.Common; +using UnityEngine; + +namespace Scenes +{ + ///

+ /// A concrete implementation of . + /// + public class ConnectionHandler : MonoBehaviour, IConnectionHandler + { + [SerializeField] private string gelatoApiKey = ""; + [Space] + [SerializeField] private ConnectModal connectModal; + [SerializeField] private ConnectionProvider[] providers; + + public string GelatoApiKey => gelatoApiKey; + public IWeb3BuilderServiceAdapter[] Web3BuilderServiceAdapters { get; private set; } + public IWeb3InitializedHandler[] Web3InitializedHandlers { get; private set; } + public ConnectionProvider ConnectionProvider { get; private set; } + + private void Start() + { + Initialize(); + } + + /// + /// Initializes Connection Handler. + /// + protected virtual void Initialize() + { + Web3BuilderServiceAdapters = GetComponents(); + + Web3InitializedHandlers = GetComponents(); + + foreach (var provider in providers) + { + if (provider.IsAvailable) + { + var instantiatedProvider = connectModal.AddProvider(provider); + + instantiatedProvider.ConnectButton.onClick.AddListener(delegate + { + ConnectionProvider = provider; + + ConnectClicked(); + }); + } + } + } + + private async void ConnectClicked() + { + await TryConnect(); + } + + /// + /// Try to Connect and displays error and throws exception on a failed attempt. + /// + public virtual async Task TryConnect() + { + try + { + connectModal.ShowLoading(); + + await (this as IConnectionHandler).Connect(); + } + catch (Exception e) + { + connectModal.DisplayError( + $"Connecting failed, please try again\n{e.Message} (see console for more details)"); + + throw; + } + finally + { + connectModal.HideLoading(); + } + } + } +} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoginProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoginProvider.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ILoginProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs similarity index 88% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ILoginProvider.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs index 24c9a4621..7fc049207 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ILoginProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs @@ -1,27 +1,20 @@ -using System; -using System.Collections; -using System.Collections.Generic; using System.Threading.Tasks; using ChainSafe.Gaming.Evm.Contracts; using ChainSafe.Gaming.Evm.JsonRpc; using ChainSafe.Gaming.Marketplace.Extensions; using ChainSafe.Gaming.MultiCall; -using ChainSafe.Gaming.UnityPackage; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Unity; using ChainSafe.GamingSdk.Gelato; using Scripts.EVM.Token; -using UnityEngine; -using UnityEngine.SceneManagement; -using Environment = ChainSafe.Gaming.SygmaClient.Types.Environment; namespace ChainSafe.Gaming.UnityPackage.Common { /// /// Builds Instance and Login using a Wallet or a provider. /// - public interface ILoginProvider + public interface IConnectionHandler { /// /// Gelato API key from Gelato's Web Dashboard. @@ -37,19 +30,19 @@ public interface ILoginProvider /// All Web3 initialized handlers called when Web3 instance is initialized. /// public IWeb3InitializedHandler[] Web3InitializedHandlers { get; } + + public ConnectionProvider ConnectionProvider { get; } /// /// Login by Building a Instance. /// - public async Task Login() + public async Task Connect() { - Web3.Web3 web3; - Web3Builder web3Builder = new Web3Builder(ProjectConfigUtilities.Load()).Configure(ConfigureCommonServices); web3Builder = ConfigureWeb3Services(web3Builder); - web3 = await web3Builder.LaunchAsync(); + var web3 = await web3Builder.LaunchAsync(); Web3Accessor.Set(web3); @@ -76,7 +69,7 @@ private Web3Builder ConfigureWeb3Services(Web3Builder web3Builder) web3Builder = adapter.ConfigureServices(web3Builder); } - return web3Builder; + return ConnectionProvider.ConfigureServices(web3Builder); } private void ConfigureCommonServices(IWeb3ServiceCollection services) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ILoginProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ILoginProvider.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs index 177493e43..e9c7d1436 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs @@ -6,7 +6,7 @@ namespace ChainSafe.Gaming.UnityPackage.Common public interface IWeb3InitializedHandler { /// - /// Called when Web3 Instance in is initialized. + /// Called when Web3 Instance in is initialized. /// public void OnWeb3Initialized(); } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoginProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoginProvider.cs deleted file mode 100644 index da35c917d..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoginProvider.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Threading.Tasks; -using ChainSafe.Gaming.UnityPackage.Common; -using UnityEngine; - -namespace Scenes -{ - /// - /// A concrete implementation of . - /// - public abstract class LoginProvider : MonoBehaviour, ILoginProvider - { - [SerializeField] private string gelatoApiKey = ""; - - [SerializeField] private ErrorPopup errorPopup; - - public string GelatoApiKey => gelatoApiKey; - public IWeb3BuilderServiceAdapter[] Web3BuilderServiceAdapters { get; private set; } - public IWeb3InitializedHandler[] Web3InitializedHandlers { get; private set; } - - private void Start() - { - Initialize(); - } - - /// - /// Initializes Login providers. - /// - protected virtual void Initialize() - { - Web3BuilderServiceAdapters = GetComponents(); - - Web3InitializedHandlers = GetComponents(); - } - - /// - /// Try to Login and displays error and throws exception on a failed attempt. - /// - public virtual async Task TryLogin() - { - try - { - await (this as ILoginProvider).Login(); - } - catch (Exception e) - { - errorPopup.ShowError($"Login failed, please try again\n{e.Message} (see console for more details)"); - - throw; - } - } - } -} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs new file mode 100644 index 000000000..0240a23ba --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs @@ -0,0 +1,20 @@ +using ChainSafe.Gaming.Unity.MetaMask; +using ChainSafe.Gaming.Web3.Build; +using ChainSafe.Gaming.Web3.Evm.Wallet; +using UnityEngine; + +namespace ChainSafe.Gaming +{ + public class MetamaskConnectionProvider : ConnectionProvider + { + public override bool IsAvailable => Application.platform == RuntimePlatform.WebGLPlayer && Application.isEditor == false; + + public override Web3Builder ConfigureServices(Web3Builder web3Builder) + { + return web3Builder.Configure(services => + { + services.UseMetaMask().UseWalletSigner().UseWalletTransactionExecutor(); + }); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs.meta new file mode 100644 index 000000000..48f360a01 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b64d00084d2c544aa644a8a6010964d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab new file mode 100644 index 000000000..66a1b5e91 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &3512705784189120061 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 819551480880317032, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_text + value: Metamask + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_SizeDelta.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Name + value: MetamaskRow + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 5a352cd3fc34a4b4390c5fa195b12ad7, type: 3} + - target: {fileID: 5974183629704621284, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + insertIndex: -1 + addedObject: {fileID: 4276990323382053958} + m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} +--- !u!1 &8369934619212736850 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + m_PrefabInstance: {fileID: 3512705784189120061} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4276990323382053958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8369934619212736850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b64d00084d2c544aa644a8a6010964d, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: {fileID: 8599114313589093787} +--- !u!114 &8599114313589093787 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + m_PrefabInstance: {fileID: 3512705784189120061} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8369934619212736850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab.meta b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab.meta new file mode 100644 index 000000000..1f5afaf16 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1200437cb83a29c4fb63faa44cf63f0d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/MetaMask_Icon.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/MetaMask_Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0937c125fa0c9b2414cdd474f75b307a0433336f GIT binary patch literal 43393 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 Ot&;p}xe6K6kpBTaU(Fi; literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/MetaMask_Icon.png.meta b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/MetaMask_Icon.png.meta new file mode 100644 index 000000000..a51bcccd5 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/MetaMask_Icon.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 5a352cd3fc34a4b4390c5fa195b12ad7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/providers.json b/Packages/io.chainsafe.web3-unity/Runtime/providers.json new file mode 100644 index 000000000..fd556d54d --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/providers.json @@ -0,0 +1,4 @@ +[ + "Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab", + "Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab" +] \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/providers.json.meta b/Packages/io.chainsafe.web3-unity/Runtime/providers.json.meta new file mode 100644 index 000000000..025e42e20 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/providers.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 135d4c16c8cf5a44cad3f89549a1fce8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From 7132734f8dbccf3648d87cd63b6357aff79b06a7 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 10 Jul 2024 00:37:02 +0300 Subject: [PATCH 10/47] checkpoint --- .../Runtime/Prefabs/HyperPlayRow.prefab | 6 +- .../Scripts/HyperPlayConnectionProvider.cs | 2 +- .../Editor/ConnectionHandlerEditor.cs | 99 +++++++++++++++++++ .../Editor/ConnectionHandlerEditor.cs.meta | 11 +++ .../Common/Scripts/ConnectionHandler.cs | 2 +- .../Common/Scripts/IConnectionHandler.cs | 1 + .../Runtime/Prefabs/Connect.prefab | 1 + .../Runtime/providers.json | 10 +- .../Scripts/HyperPlayLoginProvider.cs | 6 +- .../Scripts/Web3AuthLoginProvider.cs | 23 ++--- .../Scenes/SampleLogin - Connect Modal.unity | 38 ++----- .../Scripts/Scenes/MetaMaskLoginProvider.cs | 4 +- .../Scenes/WalletConnectLoginProvider.cs | 6 +- 13 files changed, 148 insertions(+), 61 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs create mode 100644 Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs.meta diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab index 0873c2b2d..a16f9a11f 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab @@ -110,14 +110,14 @@ PrefabInstance: m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} insertIndex: -1 - addedObject: {fileID: 3304901130453211424} + addedObject: {fileID: 1727169539746137890} m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} --- !u!1 &8369934619212736850 stripped GameObject: m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} m_PrefabInstance: {fileID: 3512705784189120061} m_PrefabAsset: {fileID: 0} ---- !u!114 &3304901130453211424 +--- !u!114 &1727169539746137890 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -126,7 +126,7 @@ MonoBehaviour: m_GameObject: {fileID: 8369934619212736850} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1b64d00084d2c544aa644a8a6010964d, type: 3} + m_Script: {fileID: 11500000, guid: 73b5e9380c5275043b3558f49f807100, type: 3} m_Name: m_EditorClassIdentifier: k__BackingField: {fileID: 8599114313589093787} diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs index fb9c33ccf..412a3fd82 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs @@ -9,7 +9,7 @@ namespace ChainSafe.Gaming.HyperPlay { public class HyperPlayConnectionProvider : ConnectionProvider { - public override bool IsAvailable => Application.platform != RuntimePlatform.Android || Application.platform != RuntimePlatform.IPhonePlayer; + public override bool IsAvailable => Application.isEditor || Application.platform != RuntimePlatform.Android || Application.platform != RuntimePlatform.IPhonePlayer; public override Web3Builder ConfigureServices(Web3Builder web3Builder) { diff --git a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs new file mode 100644 index 000000000..a4abaa66c --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs @@ -0,0 +1,99 @@ +using System.IO; +using ChainSafe.Gaming; +using Newtonsoft.Json; +using Scenes; +using UnityEditor; +using UnityEngine; + +[CustomEditor(typeof(ConnectionHandler))] +public class ConnectionHandlerEditor : Editor +{ + public struct Provider + { + [JsonProperty("name")] + public string Name { get; private set; } + + [JsonProperty("path")] + public string Path { get; private set; } + } + + private bool _foldout; + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + string json = File.ReadAllText("Packages/io.chainsafe.web3-unity/Runtime/providers.json"); + + var providers = JsonConvert.DeserializeObject(json); + + _foldout = EditorGUILayout.Foldout(_foldout, "Connection Providers"); + + if (_foldout) + { + foreach (var provider in providers) + { + var loadedProvider = AssetDatabase.LoadAssetAtPath(provider.Path); + + if (loadedProvider == null) + { + Debug.LogWarning($"Error loading {provider.Name} Provider at {provider.Path}"); + } + + var providersProperty = serializedObject.FindProperty("providers"); + + bool isAvailable = false; + + int providerIndex = - 1; + + int arraySize = providersProperty.arraySize; + + for (int i = 0; i < arraySize; i++) + { + var providerProperty = providersProperty.GetArrayElementAtIndex(i); + + isAvailable = loadedProvider == providerProperty.objectReferenceValue; + + if (isAvailable) + { + providerIndex = i; + + break; + } + + if (providerProperty.objectReferenceValue == null) + { + providersProperty.DeleteArrayElementAtIndex(i); + + serializedObject.ApplyModifiedProperties(); + + break; + } + } + + EditorGUI.BeginChangeCheck(); + + isAvailable = GUILayout.Toggle(isAvailable, provider.Name); + + if (EditorGUI.EndChangeCheck()) + { + if (isAvailable) + { + providersProperty.InsertArrayElementAtIndex(arraySize); + + providersProperty.GetArrayElementAtIndex(arraySize).objectReferenceValue = loadedProvider; + } + + else + { + providersProperty.DeleteArrayElementAtIndex(providerIndex); + } + + serializedObject.ApplyModifiedProperties(); + + break; + } + } + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs.meta b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs.meta new file mode 100644 index 000000000..dbe661541 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64100dda31139dc419646b80718ad62b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs index 1355d240e..36ae2b50e 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs @@ -14,7 +14,7 @@ public class ConnectionHandler : MonoBehaviour, IConnectionHandler [SerializeField] private string gelatoApiKey = ""; [Space] [SerializeField] private ConnectModal connectModal; - [SerializeField] private ConnectionProvider[] providers; + [HideInInspector] [SerializeField] private ConnectionProvider[] providers; public string GelatoApiKey => gelatoApiKey; public IWeb3BuilderServiceAdapter[] Web3BuilderServiceAdapters { get; private set; } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs index 7fc049207..41e7807a3 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs @@ -74,6 +74,7 @@ private Web3Builder ConfigureWeb3Services(Web3Builder web3Builder) private void ConfigureCommonServices(IWeb3ServiceCollection services) { + // TODO: most of these can/should be service adapters services .UseUnityEnvironment() .UseGelato(GelatoApiKey) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab index 2a552e72a..ad5d8d753 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -1148,6 +1148,7 @@ MonoBehaviour: connectModal: {fileID: 5955209656218357189} providers: - {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} + - {fileID: 1727169539746137890, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} --- !u!1 &6095527205806428435 GameObject: m_ObjectHideFlags: 0 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/providers.json b/Packages/io.chainsafe.web3-unity/Runtime/providers.json index fd556d54d..da18eb9ac 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/providers.json +++ b/Packages/io.chainsafe.web3-unity/Runtime/providers.json @@ -1,4 +1,10 @@ [ - "Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab", - "Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab" + { + "name": "Metamask", + "path": "Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab" + }, + { + "name": "HyperPlay", + "path": "Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab" + } ] \ No newline at end of file diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs index 93263321f..a2dfecc89 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs @@ -10,7 +10,7 @@ /// /// Login using HyperPlay desktop client. /// -public class HyperPlayLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter +public class HyperPlayLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter { [SerializeField] private Button loginButton; [SerializeField] private Toggle rememberMeToggle; @@ -34,7 +34,7 @@ protected override async void Initialize() { Debug.Log("Proceeding with auto-login."); - await TryLogin(); + await TryConnect(); } loginButton.onClick.AddListener(OnLoginClicked); @@ -59,6 +59,6 @@ public Web3Builder ConfigureServices(Web3Builder web3Builder) private async void OnLoginClicked() { - await TryLogin(); + await TryConnect(); } } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs index 301510459..21634a3d7 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs @@ -19,7 +19,7 @@ /// /// Login using Web3Auth. /// -public class Web3AuthLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter +public class Web3AuthLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter { /// /// Struct used for pairing login buttons to Web3 auth providers. @@ -89,7 +89,7 @@ protected override async void Initialize() if (!string.IsNullOrEmpty(KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID))) { rememberMe = true; - await TryLogin(); + await TryConnect(); Debug.Log("Restoring existing Web3Auth session (Remember Me"); } #endif @@ -99,7 +99,7 @@ private async void Web3AuthSet(string sessionId) { Web3AuthWebGLConnected -= Web3AuthSet; KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); - await TryLogin(); + await TryConnect(); } #endif @@ -117,22 +117,15 @@ private async void LoginWithWeb3Auth(Provider provider) Web3AuthLogin(provider.ToString().ToLower(), rememberMe); #else selectedProvider = provider; - await TryLogin(); + await TryConnect(); LogAnalytics(provider); } - public override async Task TryLogin() + public override async Task TryConnect() { - try - { - await (this as ILoginProvider).Login(); - EnableWalletGUI(); - } - catch (Exception e) - { - Debug.LogError($"Login failed, please try again\n{e.Message} (see console for more details)"); - throw; - } + await base.TryConnect(); + + EnableWalletGUI(); } private void EnableWalletGUI() diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity index c182c6868..911584487 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -510,16 +510,12 @@ PrefabInstance: m_Modifications: - target: {fileID: 927670855158962907, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_SizeDelta.y - value: 200 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6036957702279409077, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_Name value: Connect objectReference: {fileID: 0} - - target: {fileID: 6036957702279409077, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -602,47 +598,27 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6558448801438321956, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_SizeDelta.x - value: -210 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6558448801438321956, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_SizeDelta.y - value: -642.60004 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_SizeDelta.x - value: 750 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} propertyPath: m_AnchoredPosition.x - value: 375 - objectReference: {fileID: 0} - - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_SizeDelta.x - value: 650 - objectReference: {fileID: 0} - - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchoredPosition.x - value: 375 - objectReference: {fileID: 0} - - target: {fileID: 7838078985718008179, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchoredPosition.y - value: -100 + value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs index 5d962094c..706fc29fc 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs @@ -12,7 +12,7 @@ /// Login using MetaMask. /// Only works for UnityWebGL build (not in editor). /// -public class MetaMaskLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter +public class MetaMaskLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter { [SerializeField] private Button loginButton; @@ -25,7 +25,7 @@ protected override void Initialize() private async void LoginClicked() { - await TryLogin(); + await TryConnect(); } public Web3Builder ConfigureServices(Web3Builder web3Builder) diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs index 8c7673cd3..201f9bc79 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs @@ -9,7 +9,7 @@ /// /// Login using an existing wallet with WalletConnect. /// -public class WalletConnectLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter +public class WalletConnectLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter { [SerializeField] private WalletConnectConfigSO walletConnectConfig; [SerializeField] private bool autoLoginPreviousSession = true; @@ -31,7 +31,7 @@ protected override async void Initialize() if (autoLoginPreviousSession && storedSessionAvailable) // auto-login { Debug.Log("Proceeding with auto-login."); - await TryLogin(); + await TryConnect(); } loginButton.onClick.AddListener(OnLoginClicked); @@ -50,6 +50,6 @@ public Web3Builder ConfigureServices(Web3Builder web3Builder) private async void OnLoginClicked() { - await TryLogin(); + await TryConnect(); } } \ No newline at end of file From 540dc0e4bdda3e80dcdfa92ff2c2bd8603229dd7 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 10 Jul 2024 16:34:19 +0300 Subject: [PATCH 11/47] checkpoint --- .../WalletConnectConnectionProvider.cs | 24 +++ .../WalletConnectConnectionProvider.cs.meta | 11 ++ .../Runtime/Prefabs/WalletConnectRow.prefab | 144 +++++++++++++++ .../Prefabs/WalletConnectRow.prefab.meta | 7 + .../Runtime/Sprites/Logo_WalletConnect.png | Bin 0 -> 11582 bytes .../Sprites/Logo_WalletConnect.png.meta | 166 ++++++++++++++++++ .../HyperPlayProvider.cs | 4 +- .../Scripts/Scenes/ConnectToWallet.cs | 32 ++++ .../Scripts/Scenes/ConnectToWallet.cs.meta | 11 ++ 9 files changed, 397 insertions(+), 2 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_WalletConnect.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_WalletConnect.png.meta create mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs create mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs new file mode 100644 index 000000000..79c6369d6 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs @@ -0,0 +1,24 @@ +using ChainSafe.Gaming.WalletConnect; +using ChainSafe.Gaming.Web3.Build; +using ChainSafe.Gaming.Web3.Evm.Wallet; +using UnityEngine; +using UnityEngine.UI; + +namespace ChainSafe.Gaming +{ + public class WalletConnectConnectionProvider : ConnectionProvider + { + [SerializeField] private WalletConnectConfigSO walletConnectConfig; + + public override bool IsAvailable => Application.isEditor || Application.platform != RuntimePlatform.WebGLPlayer; + public override Web3Builder ConfigureServices(Web3Builder web3Builder) + { + return web3Builder.Configure(services => + { + // var rememberSession = rememberSessionToggle.isOn || storedSessionAvailable; + services.UseWalletConnect(walletConnectConfig.WithRememberSession(false)) + .UseWalletSigner().UseWalletTransactionExecutor(); + }); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs.meta new file mode 100644 index 000000000..339cfb980 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 582efc0fde77aab43a77ee4237ba305a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab new file mode 100644 index 000000000..4852c0738 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab @@ -0,0 +1,144 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &3512705784189120061 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 819551480880317032, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_text + value: Wallet Connect + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_SizeDelta.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Name + value: WalletConnectRow + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 7bb02b1b8d270114fa77d28d426c8c1c, type: 3} + - target: {fileID: 5974183629704621284, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + insertIndex: -1 + addedObject: {fileID: 4800578877220411311} + m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} +--- !u!1 &8369934619212736850 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + m_PrefabInstance: {fileID: 3512705784189120061} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4800578877220411311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8369934619212736850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 582efc0fde77aab43a77ee4237ba305a, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: {fileID: 8599114313589093787} + walletConnectConfig: {fileID: 11400000, guid: c6c7143d72481a94fa5612a07514587f, type: 2} +--- !u!114 &8599114313589093787 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} + m_PrefabInstance: {fileID: 3512705784189120061} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8369934619212736850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab.meta b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab.meta new file mode 100644 index 000000000..7a446f749 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4591cfadb2bf9824da90ebf4005728a8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_WalletConnect.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_WalletConnect.png new file mode 100644 index 0000000000000000000000000000000000000000..9f779e8b23f8db6de6c4b334c7a1712353bfe29b GIT binary patch literal 11582 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 account public address. public override async Task Connect() { - string[] accounts = await Perform("eth_accounts"); + string[] accounts = await Request("eth_accounts"); string account = accounts[0]; @@ -64,7 +64,7 @@ public override async Task Connect() string message = "Sign-in with Ethereum"; - string hash = await Perform("personal_sign", message, account); + string hash = await Request("personal_sign", message, account); hash.AssertSignatureValid(message, account); diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs new file mode 100644 index 000000000..ff182bdbd --- /dev/null +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using ChainSafe.Gaming; +using UnityEngine; +using UnityEngine.UI; + +public class ConnectToWallet : MonoBehaviour +{ + [SerializeField] private ConnectModal connectModalPrefab; + [SerializeField] private RectTransform connectModalContainer; + [SerializeField] private Button connectButton; + + private ConnectModal _connectModalInstance; + + private void Start() + { + connectButton.onClick.AddListener(PromptConnectModal); + } + + private void PromptConnectModal() + { + if (_connectModalInstance != null) + { + _connectModalInstance.gameObject.SetActive(true); + + return; + } + + _connectModalInstance = Instantiate(connectModalPrefab, connectModalContainer); + } +} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs.meta new file mode 100644 index 000000000..5343c6e88 --- /dev/null +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b575a0ab50061014ca051bbfaf597ac2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 3d7da3b697dc5be9d9a13f85629a541b0c2ba891 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 10 Jul 2024 17:02:46 +0300 Subject: [PATCH 12/47] editor code improved and added WC as a provider --- .../Editor/ConnectionHandlerEditor.cs | 60 +- .../Common/Scripts/ConnectionHandler.cs | 2 +- .../Runtime/Data/WalletConnectConfig.asset | 39 ++ .../Data/WalletConnectConfig.asset.meta | 0 .../Runtime/Prefabs/Connect.prefab | 13 +- .../Runtime/Prefabs/WalletConnectRow.prefab | 2 +- .../Runtime/Sprites/Logo_2.png | Bin 0 -> 190002 bytes .../Runtime/Sprites/Logo_2.png.meta | 166 ++++++ .../Runtime/providers.json | 4 + .../Scenes/SampleLogin - Connect Modal.unity | 553 +++++++++--------- 10 files changed, 536 insertions(+), 303 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_2.png create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_2.png.meta diff --git a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs index a4abaa66c..60e22c519 100644 --- a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs +++ b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using System.IO; using ChainSafe.Gaming; using Newtonsoft.Json; @@ -31,6 +32,28 @@ public override void OnInspectorGUI() if (_foldout) { + List availableProviders = new List(); + + var providersProperty = serializedObject.FindProperty("providers"); + + int arraySize = providersProperty.arraySize; + + for (int i = 0; i < arraySize; i++) + { + var providerProperty = providersProperty.GetArrayElementAtIndex(i); + + if (providerProperty.objectReferenceValue == null) + { + providersProperty.DeleteArrayElementAtIndex(i); + + serializedObject.ApplyModifiedProperties(); + + return; + } + + availableProviders.Add(providerProperty.objectReferenceValue as ConnectionProvider); + } + foreach (var provider in providers) { var loadedProvider = AssetDatabase.LoadAssetAtPath(provider.Path); @@ -38,40 +61,13 @@ public override void OnInspectorGUI() if (loadedProvider == null) { Debug.LogWarning($"Error loading {provider.Name} Provider at {provider.Path}"); - } - - var providersProperty = serializedObject.FindProperty("providers"); - - bool isAvailable = false; - - int providerIndex = - 1; - - int arraySize = providersProperty.arraySize; - - for (int i = 0; i < arraySize; i++) - { - var providerProperty = providersProperty.GetArrayElementAtIndex(i); - isAvailable = loadedProvider == providerProperty.objectReferenceValue; - - if (isAvailable) - { - providerIndex = i; - - break; - } - - if (providerProperty.objectReferenceValue == null) - { - providersProperty.DeleteArrayElementAtIndex(i); - - serializedObject.ApplyModifiedProperties(); - - break; - } + continue; } EditorGUI.BeginChangeCheck(); + + bool isAvailable = availableProviders.Contains(loadedProvider); isAvailable = GUILayout.Toggle(isAvailable, provider.Name); @@ -86,12 +82,12 @@ public override void OnInspectorGUI() else { - providersProperty.DeleteArrayElementAtIndex(providerIndex); + providersProperty.DeleteArrayElementAtIndex(availableProviders.IndexOf(loadedProvider)); } serializedObject.ApplyModifiedProperties(); - break; + return; } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs index 36ae2b50e..284d5d210 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs @@ -37,7 +37,7 @@ protected virtual void Initialize() foreach (var provider in providers) { - if (provider.IsAvailable) + if (provider != null && provider.IsAvailable) { var instantiatedProvider = connectModal.AddProvider(provider); diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset b/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset new file mode 100644 index 000000000..8fe41d12a --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset @@ -0,0 +1,39 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 37e83d145d6648228945ef840b1b1562, type: 3} + m_Name: WalletConnectConfig + m_EditorClassIdentifier: + k__BackingField: 1 + k__BackingField: Web3.Unity + k__BackingField: f4bff60eb260841f46b1c77588cd8acb + k__BackingField: unity-game + k__BackingField: + Name: Web3.Unity + Description: web3.unity is an open-source gaming SDK written in C# and developed + by ChainSafe Gaming. It connects games built in the Unity game engine to the + blockchain. The library currently supports games built for web browsers (WebGL), + iOS/Android mobile, and desktop. web3.unity is compatible with most EVM-based + chains such as Ethereum, Polygon, Moonbeam, Cronos, Nervos, and Binance Smart + Chain, letting developers easily choose and switch between them to create the + best in-game experience. + Url: https://chainsafe.io/ + Icons: [] + Redirect: + Native: + Universal: + VerifyUrl: + k__BackingField: wallet-connect/ + k__BackingField: + enabledWallets: [] + disabledWallets: [] + connectionHandlerProvider: {fileID: 11400000, guid: cdc198015a446e54794e5921e5aa81ef, type: 2} + k__BackingField: 0 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset.meta b/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset.meta new file mode 100644 index 000000000..e69de29bb diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab index ad5d8d753..0e6d02d77 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -162,8 +162,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.25, y: 0} m_AnchorMax: {x: 0.85, y: 1} - m_AnchoredPosition: {x: -37.5, y: 0} - m_SizeDelta: {x: -75, y: 0} + m_AnchoredPosition: {x: -37.5, y: -1} + m_SizeDelta: {x: -75, y: -2} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2861151914375929257 CanvasRenderer: @@ -1147,8 +1147,9 @@ MonoBehaviour: gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ connectModal: {fileID: 5955209656218357189} providers: - - {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} - {fileID: 1727169539746137890, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} + - {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} + - {fileID: 4800578877220411311, guid: 4591cfadb2bf9824da90ebf4005728a8, type: 3} --- !u!1 &6095527205806428435 GameObject: m_ObjectHideFlags: 0 @@ -1544,8 +1545,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -50, y: -50} + m_AnchoredPosition: {x: 37.5, y: -12.5} + m_SizeDelta: {x: -75, y: -25} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4837691293256020319 CanvasRenderer: @@ -1575,7 +1576,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} + m_Sprite: {fileID: 21300000, guid: 1d020f23af32ae54b9982fd730d37193, type: 3} m_Type: 0 m_PreserveAspect: 1 m_FillCenter: 1 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab index 4852c0738..5b3e20735 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab @@ -130,7 +130,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: k__BackingField: {fileID: 8599114313589093787} - walletConnectConfig: {fileID: 11400000, guid: c6c7143d72481a94fa5612a07514587f, type: 2} + walletConnectConfig: {fileID: 11400000, guid: 2be984eca4776e6429bc33d3d7f1987a, type: 2} --- !u!114 &8599114313589093787 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_2.png b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1204d2909db878b71156206cc069fb0ea24a9435 GIT binary patch literal 190002 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

21h?tL@#X>i^6K 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

E7t88BKo|JsSxf(kU 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 literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_2.png.meta b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_2.png.meta new file mode 100644 index 000000000..b91e42a57 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Sprites/Logo_2.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 1d020f23af32ae54b9982fd730d37193 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 1 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 1 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/providers.json b/Packages/io.chainsafe.web3-unity/Runtime/providers.json index da18eb9ac..62bec0b47 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/providers.json +++ b/Packages/io.chainsafe.web3-unity/Runtime/providers.json @@ -1,4 +1,8 @@ [ + { + "name": "Wallet Connect", + "path": "Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab" + }, { "name": "Metamask", "path": "Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab" diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity index 911584487..c75a21d8a 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -123,143 +123,13 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1001 &141212710 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 574819874} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Connect Button - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Connect - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 32 - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSizeMax - value: 32 - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSizeMin - value: 24 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 141212713} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!224 &141212711 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 141212710} - m_PrefabAsset: {fileID: 0} ---- !u!1 &141212712 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 141212710} - m_PrefabAsset: {fileID: 0} --- !u!114 &141212713 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 141212712} + m_GameObject: {fileID: 8775736491069609130} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} @@ -273,6 +143,21 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!114 &141212718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8775736491069609130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b575a0ab50061014ca051bbfaf597ac2, type: 3} + m_Name: + m_EditorClassIdentifier: + connectModalPrefab: {fileID: 5955209656218357189, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + connectModalContainer: {fileID: 2066044329} + connectButton: {fileID: 7324590823319966217} --- !u!1 &574819873 GameObject: m_ObjectHideFlags: 0 @@ -303,7 +188,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 141212711} + - {fileID: 4764608378716470656} m_Father: {fileID: 688809890} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -500,136 +385,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &924560430 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 2066044329} - m_Modifications: - - target: {fileID: 927670855158962907, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6036957702279409077, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_Name - value: Connect - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_Pivot.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMax.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6558448801438321956, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6558448801438321956, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7745417804556379745, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} ---- !u!224 &924560431 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 6329436153274430458, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - m_PrefabInstance: {fileID: 924560430} - m_PrefabAsset: {fileID: 0} --- !u!1 &1290034538 GameObject: m_ObjectHideFlags: 0 @@ -793,7 +548,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2097125330} - - {fileID: 924560431} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -879,6 +633,279 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!114 &3619124653521360393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8775736491069609130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0.3207547, g: 0.3207547, b: 0.3207547, a: 1} + m_EffectDistance: {x: 1, y: 1} + m_UseGraphicAlpha: 1 +--- !u!222 &4626343712251725459 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7713816882949538699} + m_CullTransparentMesh: 1 +--- !u!224 &4764608378716470656 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8775736491069609130} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5826799961934265238} + m_Father: {fileID: 574819874} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &5826799961934265238 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7713816882949538699} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4764608378716470656} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6810038763569327836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8775736491069609130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9eca7939d43f1464dbe937418b350f47, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7324590823319966217 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8775736491069609130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_HighlightedColor: {r: 0.5566038, g: 0.5566038, b: 0.15490389, a: 1} + m_PressedColor: {r: 1, g: 1, b: 0.28235295, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1.5 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6810038763569327836} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &7713816882949538699 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5826799961934265238} + - component: {fileID: 4626343712251725459} + - component: {fileID: 8781309615310071341} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &8775736491069609130 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4764608378716470656} + - component: {fileID: 9195335479233674726} + - component: {fileID: 6810038763569327836} + - component: {fileID: 7324590823319966217} + - component: {fileID: 3619124653521360393} + - component: {fileID: 141212713} + - component: {fileID: 141212718} + m_Layer: 5 + m_Name: Connect Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &8781309615310071341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7713816882949538699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Connect + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294111986 + m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 24 + m_fontSizeMax: 32 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 4 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &9195335479233674726 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8775736491069609130} + m_CullTransparentMesh: 1 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 From 5370b57c7b29dca86525f1ca43317741d3093683 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 10 Jul 2024 17:07:45 +0300 Subject: [PATCH 13/47] meta file bug fix --- .../Runtime/Data/WalletConnectConfig.asset.meta | 8 ++++++++ .../Runtime/Prefabs/WalletConnectRow.prefab | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset.meta b/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset.meta index e69de29bb..0c8abf1ab 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset.meta +++ b/Packages/io.chainsafe.web3-unity/Runtime/Data/WalletConnectConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fde7db0e37b4a884da1149e9f1999093 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab index 5b3e20735..c2400149c 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab @@ -130,7 +130,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: k__BackingField: {fileID: 8599114313589093787} - walletConnectConfig: {fileID: 11400000, guid: 2be984eca4776e6429bc33d3d7f1987a, type: 2} + walletConnectConfig: {fileID: 11400000, guid: fde7db0e37b4a884da1149e9f1999093, type: 2} --- !u!114 &8599114313589093787 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} From e81877667078d71242fa99cab8f0e9320acfc7e0 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 10 Jul 2024 18:02:34 +0300 Subject: [PATCH 14/47] use resources instead of json to fetch providers, much nicer this way --- .../Runtime/Resources.meta} | 5 +++-- .../HyperPlayConnectionProviderConfig.asset | 16 ++++++++++++++++ .../HyperPlayConnectionProviderConfig.asset.meta | 8 ++++++++ .../Editor/ConnectionHandlerEditor.cs | 8 +++----- .../Common/Scripts/ConnectionProviderConfig.cs | 14 ++++++++++++++ .../Scripts/ConnectionProviderConfig.cs.meta | 11 +++++++++++ .../Runtime/Prefabs/Connect.prefab | 4 ++-- .../Runtime/Resources.meta | 8 ++++++++ .../MetamaskConnectionProviderConfig.asset | 16 ++++++++++++++++ .../MetamaskConnectionProviderConfig.asset.meta | 8 ++++++++ .../WalletConnectConnectionProviderConfig.asset | 16 ++++++++++++++++ ...letConnectConnectionProviderConfig.asset.meta | 8 ++++++++ .../Runtime/providers.json | 14 -------------- 13 files changed, 113 insertions(+), 23 deletions(-) rename Packages/{io.chainsafe.web3-unity/Runtime/providers.json.meta => io.chainsafe.web3-unity.hyperplay/Runtime/Resources.meta} (57%) create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset create mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Resources.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/providers.json diff --git a/Packages/io.chainsafe.web3-unity/Runtime/providers.json.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources.meta similarity index 57% rename from Packages/io.chainsafe.web3-unity/Runtime/providers.json.meta rename to Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources.meta index 025e42e20..fa5da854b 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/providers.json.meta +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources.meta @@ -1,6 +1,7 @@ fileFormatVersion: 2 -guid: 135d4c16c8cf5a44cad3f89549a1fce8 -TextScriptImporter: +guid: 0a26dcfb4051398409745656f6a3a2cc +folderAsset: yes +DefaultImporter: externalObjects: {} userData: assetBundleName: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset new file mode 100644 index 000000000..60b7897ce --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1272c3d1812e95e408d945d25da049bb, type: 3} + m_Name: HyperPlayConnectionProviderConfig + m_EditorClassIdentifier: + k__BackingField: HyperPlay + k__BackingField: {fileID: 1727169539746137890, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta new file mode 100644 index 000000000..f65df09e0 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e58af3a1029796646a4a5bcc565ed4f0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs index 60e22c519..649f6e0ec 100644 --- a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs +++ b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs @@ -24,9 +24,7 @@ public override void OnInspectorGUI() { base.OnInspectorGUI(); - string json = File.ReadAllText("Packages/io.chainsafe.web3-unity/Runtime/providers.json"); - - var providers = JsonConvert.DeserializeObject(json); + var providers = Resources.LoadAll(string.Empty); _foldout = EditorGUILayout.Foldout(_foldout, "Connection Providers"); @@ -56,11 +54,11 @@ public override void OnInspectorGUI() foreach (var provider in providers) { - var loadedProvider = AssetDatabase.LoadAssetAtPath(provider.Path); + var loadedProvider = provider.ProviderRow; if (loadedProvider == null) { - Debug.LogWarning($"Error loading {provider.Name} Provider at {provider.Path}"); + Debug.LogWarning($"Error loading {provider.Name} Provider."); continue; } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs new file mode 100644 index 000000000..211d0f83b --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace ChainSafe.Gaming +{ + [CreateAssetMenu(menuName = "ChainSafe/Connection Provider Config", fileName = "ConnectionProviderConfig")] + public class ConnectionProviderConfig : ScriptableObject + { + [field: SerializeField] public string Name { get; private set; } + + [field: SerializeField] public ConnectionProvider ProviderRow { get; private set; } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs.meta new file mode 100644 index 000000000..37d415ccb --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1272c3d1812e95e408d945d25da049bb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab index 0e6d02d77..a4417e8d7 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -1147,9 +1147,9 @@ MonoBehaviour: gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ connectModal: {fileID: 5955209656218357189} providers: - - {fileID: 1727169539746137890, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} - - {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} - {fileID: 4800578877220411311, guid: 4591cfadb2bf9824da90ebf4005728a8, type: 3} + - {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} + - {fileID: 1727169539746137890, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} --- !u!1 &6095527205806428435 GameObject: m_ObjectHideFlags: 0 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources.meta b/Packages/io.chainsafe.web3-unity/Runtime/Resources.meta new file mode 100644 index 000000000..7f428c9cc --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ecd1fc3f675dd9b4198cbcded35a3797 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset new file mode 100644 index 000000000..409856385 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1272c3d1812e95e408d945d25da049bb, type: 3} + m_Name: MetamaskConnectionProviderConfig + m_EditorClassIdentifier: + k__BackingField: MetaMask + k__BackingField: {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta new file mode 100644 index 000000000..c7de3f2e6 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15bca0e27aa9c9446b907f31a512906c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset new file mode 100644 index 000000000..3bacd7db2 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1272c3d1812e95e408d945d25da049bb, type: 3} + m_Name: WalletConnectConnectionProviderConfig + m_EditorClassIdentifier: + k__BackingField: Wallet Connect + k__BackingField: {fileID: 4800578877220411311, guid: 4591cfadb2bf9824da90ebf4005728a8, type: 3} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta new file mode 100644 index 000000000..1a6bde699 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 723743175ed10c540ae2497bde52f150 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/providers.json b/Packages/io.chainsafe.web3-unity/Runtime/providers.json deleted file mode 100644 index 62bec0b47..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/providers.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "name": "Wallet Connect", - "path": "Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab" - }, - { - "name": "Metamask", - "path": "Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab" - }, - { - "name": "HyperPlay", - "path": "Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab" - } -] \ No newline at end of file From c8b7c03fcd7969bc3af6c5a7a4bce132e044c10d Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 11 Jul 2024 09:52:47 +0300 Subject: [PATCH 15/47] font changed --- .../Runtime/Prefabs/Connect.prefab | 4 ++-- .../Runtime/Prefabs/Row.prefab | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab index a4417e8d7..7d5dc73a6 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -195,8 +195,8 @@ MonoBehaviour: m_Calls: [] m_text: Connect m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab index 473391ecc..2c0462cf2 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Row.prefab @@ -67,8 +67,8 @@ MonoBehaviour: m_Calls: [] m_text: Provider m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] @@ -95,10 +95,10 @@ MonoBehaviour: m_fontSize: 36 m_fontSizeBase: 36 m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 + m_enableAutoSizing: 1 + m_fontSizeMin: 28 + m_fontSizeMax: 36 + m_fontStyle: 1 m_HorizontalAlignment: 1 m_VerticalAlignment: 512 m_textAlignment: 65535 @@ -248,7 +248,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 6, y: 150} + m_SizeDelta: {x: 600, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8168168912145149136 CanvasRenderer: From 69ca0c349f68b1b97e80c9c1d04135bf86ffc588 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 11 Jul 2024 13:41:16 +0300 Subject: [PATCH 16/47] checkpoint, web3auth modal initial run --- .../Runtime/Prefabs.meta | 8 + .../Runtime/Prefabs/ProviderRow.prefab | 354 +++ .../Runtime/Prefabs/ProviderRow.prefab.meta | 7 + .../Runtime/Prefabs/Web3Auth.prefab | 2002 +++++++++++++++++ .../Runtime/Prefabs/Web3Auth.prefab.meta | 7 + .../Runtime/Sprites/Web3Auth_header.png | Bin 0 -> 14515 bytes .../Runtime/Sprites/Web3Auth_header.png.meta | 166 ++ .../Runtime/Sprites/discord.png | Bin 0 -> 52845 bytes .../Runtime/Sprites/discord.png.meta | 166 ++ .../Runtime/Sprites/facebook.png | Bin 0 -> 4007 bytes .../Runtime/Sprites/facebook.png.meta | 166 ++ .../Runtime/Sprites/google.png | Bin 0 -> 12746 bytes .../Runtime/Sprites/google.png.meta | 166 ++ .../Runtime/Sprites/reddit.png | Bin 0 -> 87321 bytes .../Runtime/Sprites/reddit.png.meta | 166 ++ .../Runtime/Sprites/twitch.png | Bin 0 -> 3313 bytes .../Runtime/Sprites/twitch.png.meta | 166 ++ .../Runtime/Sprites/x.png | Bin 0 -> 11828 bytes .../Runtime/Sprites/x.png.meta | 166 ++ .../Runtime/Web3AuthConnectionProvider.cs | 23 + .../Web3AuthConnectionProvider.cs.meta | 11 + .../Runtime/Web3AuthModal.cs | 22 + .../Runtime/Web3AuthModal.cs.meta | 11 + .../Runtime/Scripts/UI/Resizer.cs | 69 + .../Runtime/Scripts/UI/Resizer.cs.meta | 11 + 25 files changed, 3687 insertions(+) create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/Web3Auth_header.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/Web3Auth_header.png.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/discord.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/discord.png.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/facebook.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/facebook.png.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/google.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/google.png.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/reddit.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/reddit.png.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/twitch.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/twitch.png.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/x.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/x.png.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs.meta diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs.meta new file mode 100644 index 000000000..f7fc6e55b --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72f17d516e86aae4e88a2e19dbb964f1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab new file mode 100644 index 000000000..4b2c86d3f --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab @@ -0,0 +1,354 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &785336076525971349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5374865845666449260} + - component: {fileID: 5544998337246866349} + - component: {fileID: 819551480880317032} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5374865845666449260 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785336076525971349} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3409427843973998943} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: 0} + m_SizeDelta: {x: -15, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5544998337246866349 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785336076525971349} + m_CullTransparentMesh: 1 +--- !u!114 &819551480880317032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 785336076525971349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Provider + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 28 + m_fontSizeMax: 36 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1532402231193903633 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5814816957066204196} + - component: {fileID: 8302206430701901484} + - component: {fileID: 5974183629704621284} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5814816957066204196 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532402231193903633} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3409427843973998943} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: -30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8302206430701901484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532402231193903633} + m_CullTransparentMesh: 1 +--- !u!114 &5974183629704621284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532402231193903633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4942797880779212655 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3409427843973998943} + - component: {fileID: 8168168912145149136} + - component: {fileID: 5181835182331206566} + - component: {fileID: 8327469659141986182} + - component: {fileID: 522989249825618709} + m_Layer: 5 + m_Name: ProviderRow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3409427843973998943 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5814816957066204196} + - {fileID: 5374865845666449260} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 600, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8168168912145149136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_CullTransparentMesh: 1 +--- !u!114 &5181835182331206566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8327469659141986182} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &8327469659141986182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9eca7939d43f1464dbe937418b350f47, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &522989249825618709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4942797880779212655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 150 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab.meta new file mode 100644 index 000000000..66e0fd0ce --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/ProviderRow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db039ef4568bc00449387796bd1c603b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab new file mode 100644 index 000000000..eed8daea0 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab @@ -0,0 +1,2002 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2237341416548017329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7745417804556379745} + - component: {fileID: 4032498525751300840} + m_Layer: 5 + m_Name: Column + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7745417804556379745 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2237341416548017329} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6732399563691960325} + - {fileID: 3350077136800367971} + m_Father: {fileID: 6558448801438321956} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4032498525751300840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2237341416548017329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 750 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &3895911955368965336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 850444260342609506} + - component: {fileID: 4082656798130106691} + - component: {fileID: 4672817495575154206} + - component: {fileID: 8282516275078844245} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &850444260342609506 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6329436153274430458} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4082656798130106691 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_CullTransparentMesh: 1 +--- !u!114 &4672817495575154206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8282516275078844245 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3895911955368965336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4672817495575154206} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5282376474319179916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 927670855158962907} + - component: {fileID: 6933173120826074429} + - component: {fileID: 8205949823160346083} + - component: {fileID: 742992652230266778} + - component: {fileID: 1431189296266374037} + - component: {fileID: 6277980141135302597} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &927670855158962907 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2106985617130811316} + - {fileID: 1884441950207984171} + - {fileID: 2492987216593674870} + - {fileID: 948125957016614504} + - {fileID: 5786851700527628335} + - {fileID: 423711946545881555} + m_Father: {fileID: 5102271928894428265} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &6933173120826074429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c7ee9441838f964469b354b1c18bb60f, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8205949823160346083 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 50 + m_Right: 50 + m_Top: 25 + m_Bottom: 25 + m_ChildAlignment: 4 + m_Spacing: 25 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!222 &742992652230266778 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_CullTransparentMesh: 1 +--- !u!114 &1431189296266374037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 900 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &6277980141135302597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5282376474319179916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5924577586993790483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6732399563691960325} + - component: {fileID: 4102446605622547045} + - component: {fileID: 7091605519317671907} + - component: {fileID: 3223309524305574596} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6732399563691960325 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5924577586993790483} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7659673790302877183} + - {fileID: 1432415783519671661} + m_Father: {fileID: 7745417804556379745} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.8} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 72.5} + m_SizeDelta: {x: 0, y: 155} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4102446605622547045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5924577586993790483} + m_CullTransparentMesh: 1 +--- !u!114 &7091605519317671907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5924577586993790483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3223309524305574596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5924577586993790483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6036957702279409077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6329436153274430458} + - component: {fileID: 968942334131991764} + m_Layer: 5 + m_Name: Web3Auth + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6329436153274430458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6036957702279409077} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 850444260342609506} + - {fileID: 577935142268829008} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &968942334131991764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6036957702279409077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 25a18334f97755e409ce7a0675ac07f8, type: 3} + m_Name: + m_EditorClassIdentifier: + closeButton: {fileID: 2547221875300260690} + closeFromBackgroundButton: {fileID: 8282516275078844245} +--- !u!1 &6132922041111678424 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5102271928894428265} + - component: {fileID: 8952722307038542099} + - component: {fileID: 183058293677065960} + - component: {fileID: 6400287890280934917} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5102271928894428265 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6132922041111678424} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 927670855158962907} + m_Father: {fileID: 7179724650230330003} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &8952722307038542099 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6132922041111678424} + m_CullTransparentMesh: 1 +--- !u!114 &183058293677065960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6132922041111678424} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6400287890280934917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6132922041111678424} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &6964812571422519759 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6558448801438321956} + - component: {fileID: 6085279580583425317} + - component: {fileID: 199958988756034151} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6558448801438321956 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964812571422519759} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7745417804556379745} + m_Father: {fileID: 577935142268829008} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.85} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &6085279580583425317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964812571422519759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &199958988756034151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6964812571422519759} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &7334217534239817794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7179724650230330003} + - component: {fileID: 3821480871245326889} + - component: {fileID: 673044911075366356} + - component: {fileID: 3059195871807521642} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7179724650230330003 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7334217534239817794} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5102271928894428265} + - {fileID: 6460503836386542468} + m_Father: {fileID: 3350077136800367971} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 12.5} + m_SizeDelta: {x: 0, y: -25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3821480871245326889 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7334217534239817794} + m_CullTransparentMesh: 1 +--- !u!114 &673044911075366356 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7334217534239817794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c7ee9441838f964469b354b1c18bb60f, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3059195871807521642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7334217534239817794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 927670855158962907} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 5102271928894428265} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 7606799157473773537} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &7540885698258229545 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 577935142268829008} + m_Layer: 5 + m_Name: Modal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &577935142268829008 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7540885698258229545} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6558448801438321956} + m_Father: {fileID: 6329436153274430458} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0.15} + m_AnchorMax: {x: 0.75, y: 0.85} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7568372340319656701 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 569217795782120323} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &569217795782120323 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7568372340319656701} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1954012395396363136} + m_Father: {fileID: 6460503836386542468} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7738577535433790659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7659673790302877183} + - component: {fileID: 4837691293256020319} + - component: {fileID: 3610818540548522733} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7659673790302877183 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7738577535433790659} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6732399563691960325} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0} + m_AnchorMax: {x: 0.85, y: 1} + m_AnchoredPosition: {x: -12.5, y: -12.5} + m_SizeDelta: {x: -25, y: -25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4837691293256020319 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7738577535433790659} + m_CullTransparentMesh: 1 +--- !u!114 &3610818540548522733 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7738577535433790659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a06af26361ecaf247b2f13aad1af5cd0, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7952105421457133691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1954012395396363136} + - component: {fileID: 597614271245259961} + - component: {fileID: 427010498744007559} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1954012395396363136 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7952105421457133691} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 569217795782120323} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &597614271245259961 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7952105421457133691} + m_CullTransparentMesh: 1 +--- !u!114 &427010498744007559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7952105421457133691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.20000002, g: 0.20000002, b: 0.20000002, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8178595941814150166 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6460503836386542468} + - component: {fileID: 9008081953894650221} + - component: {fileID: 8240503208445839790} + - component: {fileID: 7606799157473773537} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6460503836386542468 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8178595941814150166} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 569217795782120323} + m_Father: {fileID: 7179724650230330003} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: -17} + m_Pivot: {x: 1, y: 1} +--- !u!222 &9008081953894650221 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8178595941814150166} + m_CullTransparentMesh: 1 +--- !u!114 &8240503208445839790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8178595941814150166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7606799157473773537 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8178595941814150166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 427010498744007559} + m_HandleRect: {fileID: 1954012395396363136} + m_Direction: 2 + m_Value: 1 + m_Size: 0.98139536 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8970945421616381553 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3350077136800367971} + - component: {fileID: 860824785402238076} + - component: {fileID: 3207204579438262210} + - component: {fileID: 2526225297788877270} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3350077136800367971 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8970945421616381553} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7179724650230330003} + m_Father: {fileID: 7745417804556379745} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 1080} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &860824785402238076 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8970945421616381553} + m_CullTransparentMesh: 1 +--- !u!114 &3207204579438262210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8970945421616381553} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c7ee9441838f964469b354b1c18bb60f, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2526225297788877270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8970945421616381553} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a2ae575209cff6346aa9d4278d20c347, type: 3} + m_Name: + m_EditorClassIdentifier: + resizeWidth: 0 + resizeHeight: 1 + widthThreshold: 0 + heightThreshold: 1100 + resizeRelativeToParent: 0 + normalizedWidth: 0 + normalizedHeight: 0.625 +--- !u!1 &8997209791918168290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1432415783519671661} + - component: {fileID: 4867007146758828141} + - component: {fileID: 3537795417714461763} + - component: {fileID: 2547221875300260690} + m_Layer: 5 + m_Name: CloseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1432415783519671661 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6732399563691960325} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.85, y: 0.5} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -50.000008, y: -50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4867007146758828141 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_CullTransparentMesh: 1 +--- !u!114 &3537795417714461763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4113207, g: 0.4113207, b: 0.4113207, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3cf65a8da9d86bc46afbb415a63a4ea6, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2547221875300260690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8997209791918168290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3537795417714461763} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1001 &993156027568524073 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 927670855158962907} + m_Modifications: + - target: {fileID: 819551480880317032, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_text + value: Facebook + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Name + value: Facebook + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: bc8f63a3b44292c45b505578642ddd6c, type: 3} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: db039ef4568bc00449387796bd1c603b, type: 3} +--- !u!224 &2492987216593674870 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + m_PrefabInstance: {fileID: 993156027568524073} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2483967224485257015 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 927670855158962907} + m_Modifications: + - target: {fileID: 819551480880317032, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_text + value: Reddit + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Name + value: Reddit + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 78061221bc46bcc45894109179f267f3, type: 3} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: db039ef4568bc00449387796bd1c603b, type: 3} +--- !u!224 &948125957016614504 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + m_PrefabInstance: {fileID: 2483967224485257015} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3076498725067131020 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 927670855158962907} + m_Modifications: + - target: {fileID: 819551480880317032, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_text + value: Twitch + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Name + value: Twitch + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 21f4840c7ae15cd42ae05fd5a3223451, type: 3} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: db039ef4568bc00449387796bd1c603b, type: 3} +--- !u!224 &423711946545881555 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + m_PrefabInstance: {fileID: 3076498725067131020} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3633627329828554475 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 927670855158962907} + m_Modifications: + - target: {fileID: 819551480880317032, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_text + value: Google + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Name + value: Google + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: b1d4e3093e732c0418bc9b839c06c703, type: 3} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: db039ef4568bc00449387796bd1c603b, type: 3} +--- !u!224 &2106985617130811316 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + m_PrefabInstance: {fileID: 3633627329828554475} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3852364900350864244 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 927670855158962907} + m_Modifications: + - target: {fileID: 819551480880317032, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_text + value: X + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Name + value: X + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 695f913771873d94499103c5d3cf19b1, type: 3} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: db039ef4568bc00449387796bd1c603b, type: 3} +--- !u!224 &1884441950207984171 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + m_PrefabInstance: {fileID: 3852364900350864244} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &9160249595315743088 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 927670855158962907} + m_Modifications: + - target: {fileID: 819551480880317032, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_text + value: Discord + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4942797880779212655, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Name + value: Discord + objectReference: {fileID: 0} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: d3505ce14507826468cd5e0d75b25d94, type: 3} + - target: {fileID: 5974183629704621284, guid: db039ef4568bc00449387796bd1c603b, type: 3} + propertyPath: m_PreserveAspect + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: db039ef4568bc00449387796bd1c603b, type: 3} +--- !u!224 &5786851700527628335 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3409427843973998943, guid: db039ef4568bc00449387796bd1c603b, type: 3} + m_PrefabInstance: {fileID: 9160249595315743088} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab.meta new file mode 100644 index 000000000..d9500c8ba --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a37467961a2e4ca40ad036fb08d815da +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/Web3Auth_header.png b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/Web3Auth_header.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc2bbf9921bc8816bd82bc066d361c964ef5aee GIT binary patch literal 14515 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 literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/Web3Auth_header.png.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/Web3Auth_header.png.meta new file mode 100644 index 000000000..7131f10c8 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/Web3Auth_header.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: a06af26361ecaf247b2f13aad1af5cd0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/discord.png b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/discord.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d54ffc9b0b7501e630d13c35f5303c766b7668 GIT binary patch literal 52845 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ⅈ($Ir47Yf2oS76F-YfAZRPVp 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 P86^AqtyJktqfh@2C7>N@ literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/discord.png.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/discord.png.meta new file mode 100644 index 000000000..4c5af7a56 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/discord.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: d3505ce14507826468cd5e0d75b25d94 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/facebook.png b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..addef4fd5b9f80af18a1987f094508e787a14381 GIT binary patch literal 4007 zcmV;Y4_NStP)v%H=>czxhX;?=bWG@T(BO)DC&w@9HB>{NDYbv^tM0? z4TQAa?4Nh@@`t0Pf08zv>~8Xz$xzy4-|xL|-rKjo_j|ubAcQ~cq@`#uk)1yn z23QA@mZDq$$RW(5vI%2$HURVk022UE`0W5d006GM3;-ek1OcEGwKfLO#gi97@cZTS zM=wAN=aYR$&!Mvid~$QWr1hrKtl*TbG>^2}r;_>hX{3do1OT@HKz{{`yZ`|EWsa?u z8`wQE$L^Il_M(F2DT1a1Hxx3%$Qu?cqzX#z1%RIcfH8&Uv>@L1rTpX0tlTyJ+bD_yNwPF=%wf_zP2B*xB$xSkRAt$7CpxRf+}$^x#_6uLq=kM00J4%=xVktedEHM7EK`Yi zpPVeqk}9}yykoMV$gv3kMklRMm4kTSM*_<%lf3Q|$*?pjf)m+R$~0#u?$v8j>?~0$ z&63BpGRQKUm9|fD!Ks3hYmHN0t0Zy?W+_^b_Ca!UeWmbW=_=Xh2`E(?MFlq&J7*cj zmE&*i5XB17A4de1nJ;==9wlm~nBZ9@>`KyVe>pRR_lk33opYg3UA{Zf7f!g~M3$K} z-NXJZG7Hy}10~t;lE+mRWSKV;S#ClFC$g;u)0~|fNejIsVHZtrB)O^fxBNExRGh!zcinP!#ndVgeCQ%nnh~T(qXD#%sBh7`6C*pb;+BYv%Q1ZHIPSvjy z(JXx)(j)im%1qBz93*q><9wC<)xH$e=N=xJpk>5X9)h&m*O~0DMSUr$PlB6fyH`eL z;~A0zMHMoY#_^76y)CWRLwdxi@_`T zw}r2fs4oHHeFuW>iN&(d(-zO?;uah)gk;UzyHm@)aa`r>EI>2I0L&N#Fy$tIQP%(% z4azu*1PRa)4p8w6K*%U@WylSC*7NUATNTe|;ubusg#80)wL9W9P7UCy4$cO&+z#-_ z41m0xXJUDC%rV|LQYC9a?Ix{>jla*g-vDR>128&Ym%jaLjCR*+0C0aS zZ;tt~%sAP(R%?+eSnT^J0Q&eT-HIK8$g$mPEOyS1<-IWpjsp%!t6fvi+gR*hOaQcz z2|Y^bebo-f^E*ikozv4Bdla0=wwiEssn!AxSI-8tX=z%B9p!rCv`sy(s`V(iX~yPN zS_&n`J^RrafS#WZL{HDpdV|a>T525cxU;)zbt^dD5fa%Xpcy9I29Y3S3QmnK`<0eO>M6zX_39xK%7va+t;+NI!l7iVN+pC&L50QAIctyrrpq`7b&Wwl@3Ss|SYj_(0@ z%dVD!5Sb~V1(3Aw-4O;DCartAvp;kyxZ#%7(<1w`wE+THGDS1iCIvFDXgOuIU$L6m zso>N|W`&k|_s!P=8kMgCL)1k!HLm=@juu@ZIL@g;`Q{<+@+CpmYRVe0NvE7KPfT%)C}mM z%Fw-8(@y}Tg}&?3&zF9%+NWwQd?~jdz>uqyyZ&=K0DLXFc-$L7*-D2&JHdz0+VQMK z7@7-Upp+5h)OkSfd>z9ZwE;<5?f5?4u7^+7S}leSRPNe44gds2{Wx>T{II?u!O6Vw z10wmxHHAgN;e1z}zJe%73msZ*2n%j08lg4s8YWjEi)93;CMj9dlFAs$YBz-hC$jU0 zYq19X6!I8cXazW{xw8&>B#RhA4-VhM2UrVKZE6=76%zd1MF3IO-(n1rWwwNe^noL< zOT9VqgSYc4aor1T`b-9dWoQR!wdaNf z@1LijgEE7P$c;K)%o$bEf&o#%v(vpL(gagf@N_BAgayBNGU;bvrVIPM>ZvGd zsyQDPyoKXZZ;n2}JzOoZaVY3(jtJhMo@s^7P|<`9(AnCE;69Iv1|I#u3xK{qt)A*2 zzqcvc!@p0xIr`(r=J2TrDyi5-CBY?*y@+_P7wfe&gx=Ga|PGulPENIz`d zno9d{uZZ`h7CSn=4x9{aN>sy?4N2c`c`y2(cBdLqw$eeS+3x?QVkap{0K!L1#q*hE z(*Zp@7pO$rQhO5QdtU9^cB57Shybq&!RuNp{=XHxUGSphbvO58e7lJ(b4jwT!o8vC zVtfr0;FSr@5~a{^tcDo0J|lVE?*f!wy37^9i_%foTUx46hHjB$uY1eoZ|F?$DgZc} zX-DmYC*h*U)y{2xh2U~iZHwGgyE)w(OAp9i_r{LZ=rkT(I_#{#|D=0^X`D0SVdr}t ztI(<7qQ~_O3UJ%gy~VVQbfW4dxv93bV->pGaU$+pD+)CgBNQYYq~SJ$8Eww^seN#7x_w5&0<}W=N8B-zviDOSoUbm)B8BQ|KijfyL`i{y2m zkUXwORd4`XhA?enjpG5isW#?>4sj>*39`%bbR|7vCdf+k0HIv-Xwgo zxEuhEXro#53G#cl3G5PQyp`*f;IhvX5LjkDPA#6E&7E2h?>iLyu=FAP$Q-XBz0S`j zdR!i{&Uruf?x?qEbV-A_w|t)5RNJc{=sqRn6ROKUmOQSq%ra`yxFE31T+!p|_4e*Q zXJ8Dn%$qXDK9!ldD^9EAaV-!%u0C!0Oi0R2zRLcJbfOCP^k7n|o_?GYYaDZeEVH|> zHBVTM)!?p@jnav#6>3Q1sWV!|8pqFt{f>le_DpC}-Qcd0N||FH&)m}!#s$ganwu!G zL5VENe3gB@#_@c*kJm{V{MQ*HFpP9_{ zNSkzg`xE@;>+kEWQzaG@KM6thdD{5xMXSU*=UjYWQo1~ia!{x)pAh_T{wuw4m&QZV zj=m78%l{p$veU@#-I{UITp}np)xOAYqbJ3?>eXA4de(`=v1i&g+ZKv-&IJH)GMQzo z4aEEQi8YR5ejB|ep7rd$l9I!1gzEBt1*`01WuNDbG`zR-GRHm>+(s7*`yDmOE<9zY z8A%-L=iezT6KfnZ5%2pd4TgCc@xJW>%g}t4{e@Tp4wWF~$5#pa9W4Lum}0TUaVH9J zn{}8vtVwRHc~#i6{FXMCc|lKc<4U871L{zK!@c`6{Gx27d4}88K27EoJ*@E~GEd_z zyV9X`uS*=;3ZRZ{da65-Q1ZGP0pLl>R{A1U$UI2dN|yq_&7h4l-0>R17m~-dQ9SJ2 z7T%wo^!!NOqS_-UC9fOrba{o$u{lXw>3C`+vxv0NIIL=z%EZT$&ciatzAGJdy&cY} z!a(??K2(3^sO}!z!(7Nm*8Si=)$@S;=f56JJWM}DtY;#gfo^XN+O3_Sn<{{#G8Fj6eWh^qhq N002ovPDHLkV1l_arMv(D literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/facebook.png.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/facebook.png.meta new file mode 100644 index 000000000..7168de655 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/facebook.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: bc8f63a3b44292c45b505578642ddd6c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/google.png b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/google.png new file mode 100644 index 0000000000000000000000000000000000000000..4e130da7e6f04f452538191f4077ebe2bd424de6 GIT binary patch literal 12746 zcmcJ0^;=ud6K;YRDNgZ1fMTV%TPOjFw76@L;_ea%^n(Q`4yC0K+@ZKjDemrCTtji^ zrr-N7-21~xo@aN?v$M0a@9fOJCsOT$0s$^HE&u=^P<#i`004k$sK*Ki3)RwU`m-1H z_sr#;zB>SbNAm9hPAmuB0{{#FMTm@+Px{gFGas$38=;dsQT}=KXW!qV!9k!uxQaxx z0GV7nZ8RJ5RD%-j1C7OY!?I`t`?4cld)@IS@EFCCuoeki8zXV;3rx$10T|EXpl>~L zX3QGFX~yUNXI zYu&K*baJJ&ZcE+;fv>QBrUF{CCh$VeEj^5~>;Y5Ha!2}I!3SME#S!~=9|^b*q>;l| zfux1il!z(YgI)sU!a{cVd#GdZMyYMc~yTD5gtOFDzq+6%!z zB~wk|x`xb}y>UBz1^E6rF70a&(92dFQ%ma!`&U3Eudun{)1El8R{PbId}J@+LUgCi z%8=&{2VgZKjkcqbC?-qJnGUW+R6sgs-0`)Z%wV@M5vBB^0fh#a{eTZ@)1ZuxO$v+7 z1^b`~iM%?AY42lu=e&Wo@p@h`bS-CMVko+!E}r9B3YG}iJGjbVhQE~#`D2TdVK9l{ zCMYR$JnPN4Lq`{oog*vBILXDBh&rNIxMx}puDpE6(FHI?R7Z&8-7!T7I{@uh zzumP~Yvc-S8IFDha=)HiL&-ctpDIyO{#=4)s7l_435zCPZ^2qAcn^4_Q-APpFJ7=~ z_x_DXiJ-6EzGk}m$+Z5G!zD6x^*(D^a~Fj7l|$zMHCkJ3%n=_c`V^B+D*21WxIsBy z;t+h)Xwn`z9LLW=E;||8c+waC!YaQ3f<_NtvvWQU3KEI-BU?`d@3bgh(3kESh;WVhW*7{dsyFNpfk3ok$>FVmz69hgKh2$eU zqJZC2Kvi~AKi!l|P0=YgSLNgI77%{UhTm4IuFh&p=Eu6sV6PM(`m%G(`ss+M)(5fF zj0&@fJ2Lqux9TN7wb!K?f8oZm37Jk#J|ygR1W_VO=nA?tN-1`yq1!VffTy@#0(1eH zebqMu@`;{;WV3FxtSoR2yVv8&cUm)3KlhF;V6VW-yMGdaH+ZYG*_LXd1i$c~E$WgF zl^FMaUZcmdp)I4Aya$Iql7~zrEi0blYX`gv$t2g(8C_F%$3_=;o*sMxJuNK(EOiZf z@{PHB>Am?g!BlAhYbq@-wZuSN;aI*?I-<;@=zc}q+N7#|BpJ|0CW%$3JVP5~^Py|x znyUty!u)|tAp_CjKrk38K@;;FeG0Rr2Vc6g>d2OeYWL;`UZG zlkR=t`AlSwzo)vMw$MFojGiFAs*=oS=8({foTv(yZM!w#ieyHxSI8Nn?@R6zIcUc( z-zJ-_=ubbzpp^HjXzlm8-#;v1USk8ia@dA-f|?lEKG|j<@7J;&QnhQL3weh-^?ym) z(Dw)6s`U=`z~6}hHgWQ~O@Zepn!YFPG1iD?ep?NM)9>(lG`Ctn%S%XG-s00)b7%3w zfyl|DGX9vco~ReZo0B9^kD-@FpFv$?_w}IN17oVe$`@c0=?D=Eq|_RK&r>dv&Fnr? zN@%wRc~dgT41Z^;uB#IuANh;gclGeJ-o(H8((W<32^MyRp`r~aB`OlxESC+-eN2q_I|j%#6QoO z_<`*gRQJh01Vp>bEC?w#xACCP3o;*VCGb&HHmZ#+j@F-l#!zbw#`uPxu>+^F;_j3sQA^vnaRK3oWrjZWG_vP2rEl>FIdo zqJ?On7c-vbUMePW-Pa)YYlBX4j*XO7(98TAcRvtE3nR!ts<#1Hx0w_pMK|KHYvp-H zu$koKB?eF`l^Sk5Yi)SJzE!BUV9*BfQfrc5a&>uWm%h_=V7V!T><9OV1SeGnT|6If ze~1~W5;k-r5t+TgTmaA|)6#iL<2wABgfk|Xr*IyNacD<;&WF--^hQFW;&owZTa-e@ zhQt$DpyOVgk+_+3_X#sRgRR`c$19^AU4U6flKdp)Wr7H^+<5J3ou*1%wFP96wDn@ObC zT^j4}Nv@2h|0=jS#V~(n@F2(*LNDk2A*-PSoM^@jz?S)DL2LHyVLaAm>k)iooe!Hl zK)7}-WP$a2e5d7XG8^uao}NB5O8QcWSArCg8BJwCG`42gg0uydX(n4|-8v|PO&7dB z9KEX0G7&EJAwuKB6_S@d_X+mkMZBIZvMc;qyq!Z}bix8C2gEt+ zc;1GG416=CRC_nTF9i18%K*c50OWO64|T}&&_QVR>YM)yowRK#ka7XgJ92L_Ep5{u z=VAe!Ljcc=rgn`M05}pjoy+5hwV6qD=Z)!ZC;iu7*nAzsmVu;kByE^3ZfH~M7yl@P zpAUQ>|H7056vT^2N;<#!CQNAG)s&BHnbo;zed$z8W4NT+*&ru3qPRQ32bZQmjg$Oy zG{>t4bGINTc8(u(sd0A9nTOL&12a-ryI2?ube5ASqu12Pg}1-@!=V%`O|GM3nl?pu z$-a>vf~UM0i?4cBv~R!`Xyl^up7=Nap+_EOEVXwbn&>XYsd8s+xl~ z^C>DDV|~{&@HVBI(tt}wsjQ1`)Epyst9hDI`k>!`uCWo(p6>Nz*UBHYhqsDOD8A~Z zks?OEj;_@SWAb&u>@-5qUK(caT&8KBC9L{?3~3tw%?h9MMxWrCanriU=xnTg!7GtC z_*MD()@*|Xr5W3KCe?deY<`Jhb-jy)*Mn7Iz``$OY!BGKC-LRegT>B-u_nK#%I1bs zIsScvIvd2{;T4-~)CA>oa1qR4(>SYjSBNz;$DF;eSRb!_0m`kb@cYEZgjQ2tx;ct= zKQ%`0+dr8?-h#M_swltkXKF#9I+%g^-sf5D+>67B=Ky0#zw6+-Ip-T_{)t||Bcd-2 z`FHmI_ZHVkK(2XzA^_{C+$F>J8~ffB*s;>t%12%`%Mj!1nAD`m?@4#uotf9l&PtqN z`~1!2#xKo$zOfgfz|sM|j~(l(*P$3`NJ43%rv1>cYPfDCxih+|F=mmeN#1a`*qlX3 zMr(Y>6jqRyK#c(E)xSFTtS8GZ9t}6-kKN_BUMFe40-6Bb2VoyC89>rAHGHz(-8n89)LcZ;FG}Vt^SG0uZVidxS9Ie8e zy&wAh!!fZ1Tc)J&!@ZU(jwVNq`>kvvhZ0Vdugj_@2`drK@PM0>!kZt*g73MH1&KJ) zL-%O31pf?WYyFGjIk-&OU75iKWA^RT8DEAz3zK{EFr ziS8K4>;6)l#Mcx|QRgfrh@dnw;2RXbo%`t7Z8Zw)#R&@ki|_(vStF>QJq75l z@5Kp-S0Bs|e(4wSy9fY(C(-{N?DWZpB#rB%HR3yGp2APA>q;CqvC}ihlB!gvhpP_S z!fEcu>9lTNraY*cATiZH!C!S9V~#I88= zHoiwnuCV7bu@dRa{lki4CCf$92UDj9hNlLtpd-yJZsB~vXetqZ-zeY~(YW`!J}Mi{ z7Y9=|os*2&!Ap};uZO9w)VUBe%M~N|xW=UMeN_0WAmqDuuwn!0FP=11vO*Nzjb@68 zxe64`n#t-5kTOO8Vc%9M%&QnStL_JqHt22w-A!f#+02Mq!SEBco<+foTEQS5N6C`| zm<}@a%vBn_mT4Vt30E~hYKomZG)#>B{9_nvyl}TLct=rrbsFwq916KPPvUHa6gBO z6=jdtq3yU8VS$iQrZ9L4YmRtuITxmHYD={#Vm0OI)y7$S6u1H@Zp~P5#H0jtrNVAH z(%<6>Hv94YcWU-{i_7Ru4EGD#Hz9|XGnJn?wqMX|y1&-dXI3I`eI`;FLYhd2azrL6 zNe*PG6{q&0c7J)d?;=jf8C3?Ph)IeuHFxmp$1^g4=L7BM%MyDF_XZkx>i2m+t8O21 zXTXqhH%V~4PJafB)^Xxv6(5uF=^H(bDrjNitM&C5C#_#)kxxb-IO{C>lpR3|>+PPu z!Xf2;lK%qSTkE_UBj`4%b721>@<9az7rx?N$Luj`L#o^cekUAkHdEA__>FwE%amH? z^z$hmF$&7YaJyi?&$rGq{6=on-0T^v@-aNm>R{->BxY*oOSH8jZn}}4{zLTM14H(R z`vtxL7bWFZ=!u7(%D-buNJ_khPcqCvZ?#C{iO+ z8OQ+&Q7@V*1E;2}_`YZt7ik#HPZhg}f+rI!*GtmYcSiJ4mSgPB>`XjI8xx;?UV;F8f2Q>Ac4@e8^~tdS@b{4^WO#Xth^a6u`qDB~2Iay^XGA?F!$W_XvCk;*6kLP%sG^dz7ek4`x}6# z9##BO`3|>eC)NIxRQrx_#M-0f>^n##sXuHa(Flxnv-K4!I<@!tis5$e#nW5QhnX6z zwmQX4CSGit$+|T)(t?Vp`WoPO!lToTZg9_K)&~wg=-S~H7kld@7gdo~5D zx$Y><`)@P02;N+gK}!JZY1*9i2a=@g8)XYj!Lq@q!_P0m1O?4X-<1m+$7qEG)!7zk8v8>AvvvfeAFKR@2CL@ks?} z7j<+8Ag|>lVEY^)#t1r2zwh?L+Mj=xw2Z*5?cOdugU~as!&dIjQJ2y}{OfQx~- zI6JW4)$xEMCEmdfc{S@U;kBoQ=u>rErr3oXb)Tkc-teOm9Qa#|^|s1Ou3LYEIdTj6 zIUnh=E&@Vo*qowik@?@=G&6M=VkOBy#!1L}7Mk@kI(q}2ItIx)=TjqER9GT`9Qz0S zYRbu1(vdA(zNsg;4X1o2LZklSLoY zcX1RA|4213)e8{lAIwRvj{96ds-N zs~K8-2U-!SM{5airf@;-UL{l@gNwNw|0hK9&hNEh#3{+js_MER0ESIy=Rx|SRi ziuJ9BUoAU{0sIHu<8J5n>(lBN4HIQV9}!1ojBTtG23h9Kh4Pxp&a8)k4~5dEYxW%FAU%W* z0op$p^syy4wEj0m^hG5N7}_6{q2-?Q{Ih`!_$On^YOEMo8ybj(E7|pLLRfV+ZfIn% z(af$5HS}WCf?57|#BAIdHFa~-Q8XYEK%%;7MIHEv0e$1u#5hbMww3Aa?2i;}S<2DIH(m z-=sGf`$%t66vlX)HQFwNuLi0h381y#;+4c8CJ$Q04#jsuMdp7|T1-(}w`ZYxE&~+R z{*pNh8Z2s`^v^+9BN-Zj#ZuDfa(AC4>}&otSwEACthGi#0LyLLD&aS_FFQVJAmq3u zb|GCv%g!A#2BB)<`g0DZ6j4Yz0n%~fUa#)8kp!5w$4`w+X#QIPF{cB(td`9f^oNk_ znJet~F2(=+ADi90Js_MD$np4GZO1A^c+pRrT+-u{Dyoo^{YA}qTRt=SUXa-R<4XR zq8+7ToHAkA-0O8{*D1*tADd=J&iw{7j+y#DuxK0q>G6UH=J&r_5FB}4P81JaV(ar5 zIpnej=|72;WR)`G+jqmx`;8!4>=u!qZ(5&YLX~V8Zq^tXID=aV_^( z&W7#h*5B>NAko(KYt1&gjOU`#RG!41DFC@Z$8T?sQpydD8nO44U~ocu=K12m@&%90 zL~keYb3SW~*$+YQ{(jCbVnyDs5~o3UhAMhxVdQw_`#S?whfb|BXK>|3-U$lvhkj() z(@Kh*W9utqom9L;{|IH~Kq~{16VGws1=zWrUP;?^>ydQ{cdT^Cg@Ek)(p-w77I9!} zZEp>!aI|pWs6~wK3m&4 z>D43mUvyaFh~>yhl{8CVBpC!qe*UUA1FEmvT41Kc)oQFQv$WSfn2w|wl=7);M8>9j zdDqdZx4zN#lPSuBHe_|qS|jY{r=1)JYXJmvI(deRN)*-+6Rhz|3O(i0MNb9s=@vO} zWH+x9Y)J#|k`jjm?FRDAt?h&mGR(x*a~T~pzKSC(tk`i>8=qZT$|yP0^Sj_PAx9cD>^0nI))U+?GT1sf zXp(Ix)2H)v#W)f-%B`P8I+JZ<6&4;f4qkh%M_czgiSXL%8$OEY3cn^I*qttSN@T;z z%Ob#zH2c}^&sM(t^xq;X${CX%yuFCb1}kgZuio_vM{_yOtOdH>&h`JM|F*dZ9JEXU zY|=`a~1~2JlMLUI_eBc1nF2-aXdI|Gp*K+sMi zMhF{$vbb(F}3ac7qhD=(UWd1+eSU%RWFn9 zf#ZYBk*iQr9JRaCT3?#wH!N@7lXLP6{x^6%9bfvQt^T-+o)cvJ<%1X3$lbYl{rxYP zSf9dx)8Z03V5f*YjWl++hXu?Z>-?yOaPG2Lq#Kul6y>>W@6q%`JES0FD$4pryC+|{ zG>I!wI@SgO8D^1m^>Q10@{)lC7m9w=&gdoO^8)wD-|NWUhrILSvzy~mesaBrCi+q7 zzQ{|TP?K%rcyoCduiafYbnk?>QF+vWS!lzsuDVfgyAY(RFYUG1S+|lydeiuWsWrq_ z=tX8uLp5R+&M=DnLGequnp;6xqK>W}Fibmp55#zioV{!xc(z~PxtuBL`ta)&-QYGfVksv&hF$v|M!?a^(M~5gNWQck)C{=(}GPX7Qow zWB1=Okay(3D&Y^QK*EYCmRA*~gv-WpJY5@}VV#%w&gc=U*Y{5NC zRla6jb*r1Lqeoh`pPUK}6(yvZ7%RLZ?S=>wsX=>Zs`|n@nmiKYk0}}*ex)}1{r7(~ zwbGTn7wZamCEA(IyDv`ZB2nP?`i_`Q2y)hp3wd0e@V{iIQDvKtjt)H5wZ;|2nBUXH zZ1I-+VV$*(1yK0und$zCP(4>3maX-j+|S!O=sh`2V71jQr?3N+)CXgOl0Hi`(GnZK z8)prubic91Tbfvkanq_YQ;qnWv$wuaQCB<64q+7HM2(uk`ClFbqUd~(rD5X-rZ#)t zMgg4s(Q6CY@Y9lj+EKFF@%H&9Ym8HFaLC~wUAAM@u3qNXVE5SB+U#31g}}?-F0;BH z7F;@4NVT#kgY40$-&XHjW*3*(JRSu>c@H<-1$0gQDj@aWw2~ihHf@1pQ%|SgeL03i=R<~a|F{56mXo|lRYzKf69_{jv#pwhhCt3e z+tVSx=hUv+?_{+5B!We%R&Mpoq&QcEY3)(yxor20Fyy3ra@#XLI&?=cn);{yr0DQs zyZEvNE&yB*KG+ztT)<^;YZasBvEFDpEypW<= z@2&r0dQ*8MyxC2)OkNj%b!o}EP)AD+rB>oHr2ph|oQ_7w>_$DDON&u??qz88d)N@Z z((v)@gpY=z9ltr1t60@t$Ulh2_iTF|R{~QeW!1luzj(ns=V%2I_^Fe7-CJZY%XJiL zw{ya%$XX)}t3F>^sHTVZ@yjK0%7;^jp&2|Q9vyum;x6`aablCs%F#{m+OC(cM!uV| z_D{wM$^L4h#rqf3e$}ZeA1;(!xJw(hb3703)b)F}KvkI2U>@Sm?V&P(d%}a6zkO-! zz1K3~+e}L#zao6Q9Tu-9(H*+p7By1#ZGvl^$tS@NsqSDzh@K*S2?D-Zsw>{%50~(u z7**1kDje%^*Shcxv&Me+XH+Ww5Ktzy6K{Z-@$M4=y|B=4r*e7|-aRm?%9ku6doLeK z{T5Avfyc#4|99d3sl}nw=&PLKP3ec{yBDxJme%K^2@ei2Ee2Y=kC1k65IODBouDX_ zECFGp8Lo9Ql9KqIoy^TC_?5{7dd=mKLMqy|f7QW>K)gh-gtn1-;6|=~B3htxxNdT& z5c1{9w?;6G|9&OvgI;3U`)6q)me$dfLG$KTVPtx!`x^Rf{L+-~QVx+r+-Y75kAcXr z*`(!~J&#ah&XCU!sJGOY9z6;Xy!tPlA+R>+c61C3nuw~=1E`#$E(R{Kk}JO5D^(6;o}o3V{Yk?a_K5zECzo3*n;!n!%jj z88+Iu()nt0KKwF9Yd8oDYei{kGgqv8&pLHfZaHH%#F;eWBM(HSib+$9BI@Yz-f)gr z_Z`SG9>xBeNk1~}q}6)g%%|_;DGxJZ?N>}3@abXW`ks~?vzZ8_VU-s<?8mv|AnO zm`WqHmPeV)N9?{$5f#QRYe%R^Ew4WRnSLISuIX(oGPe)}+wqq8qII#`H*L#Fm5-ML?PbWF)_{2(* z)G>YXFSJu?Qz!fygGw%Hy9mECRlNN#mH*l1Qf~O}DggS^>(rtITD|e3=Ar1;)(SMk zQtVe1(eOxJ#v$~n;$fWC)=+_#8u`HcEnD%kn9ni6vXoGfN)Gze`j7ybj3qJm7U?LJ zIn$W6qw+CboYU|&dcje;Yr36&qV~GPAuZVzp_Yxy!C2_LJ+~Md&b3ErVpws$2mi67 z+y?rTIto#DvQPa{Gvf-KdA1p-=NB}b7F&K|_!3SpR$Y)+R!~$%O2#*!PscDW_|EXL zS+pduHr8rqi}|)XQ88H6t;W@bZ`F5|TouFSPV?qr1)5PkOM`%-IY5o&GSmnCZZG() zTgy*6QrU1vzHYi0-r5rVSZi^lja5D$(I6=8*N0kJ{Ior3>n~?f*SbhT`GIPh-gj0s zGV!*d_49hj&jR4q*o$-iPzl210)7L-%*>}8)_R{>;l*AD`7f|FHnsr<5n8M_FP9!K zC-TRUR%Ox~aauwCiox(k&C^jKMADB_6_^;jAT<-eFL7kqAAKOpS9PE^j(kv(bS+_nhzqzNa}g zXY(!tb{{4cpph-U$iCx;Wm2o*LSO8-nf^qB3p4o0I=+@yOBKw+)M2*!so|oi%u3L%p^TTPrp;$n6o9cnw97G) zv+I&ua&%v>cl2bK<&QIlosEgh4ycJ`!wujq2+8Jke;|}nSrzb$08Te-H5Rkq^l)o# zGy=L`d`>~Hkj+I|n}~{WOyqj_a60uR$Gfw0t~Z!M1(=7QO&YT9l+Xv}xi*~QydlF> zsv_20)(+B%j35PO|Nf7LcTaz0#ZTsixP>8Px;~5&>(c;FE!DtWTu{3Zsv>4#W4734 zc=c#yXgHD`+v2O`@kyKQ35brnM>L96XfeL2;Ed*x0?Z>ylRdo8mwamTo}|Be6HJvz z;TiE(H@D=$f-vb8Qx&_AAJ)vv}^;+^yI!8dX*GbmcP*j|(*;h`6lBY;!mlq4`5mHb;P>)f6Z ziS|UpBk=QdWM}r34JN-mk2+8ThqgJF;Ag%VaDEqB@m2}DFvn&lSHkv-NCoscKZ;}F z&Mx3MSjovRE$&~@fN!b(ph6_l#5Z;Epmjr$8vy%rmezxA8}AEpL;UlvVLL9p4C9~+ z0B6F%0+$pfHCN>zhx1_@L-Ln4Zq&|C!HCS&#dV28$)<57)V;AE)=sk>Mt8R;*Q_0` zD@}ZIw^+d|@|uE@BEHBL#I7>YX*`SnA9Kc|Z0|r-KXcy2Ez{;etI+Y6ShbtdO1tJ? zn>!A0<%XNoat2dJ)<0vkfF}`zRl26UV1d@NJdQve@_}}K?bs?L+LSuqQ4Kvu@C!yt zI~3ohC-I#V^s?CA53>_0*7haoPfD@cV@y$i2b2o&g|Yh8)~EWpSl2S&?B^P`Lk4%h z9c>L`4=;YSBm5M!3m2!0Rt#3L*xK|EZwk;tp8ccfJo{DlTgR&G!PRtp?Zcq<^x{rf zlkq`#PFjL9$aCs+(7OIG(N@%+b9o~M9+|+M-du>R3lt6@dFFIK<8c*;t9t!_?|~is z4i$0@8LsnCp6UyubLca0_vIpszE1)a3d2`E)*T@ z==OF_Fh;@NqrMFS4t_V&pj#U7bt=L5uX5 zBgE{h(Ex7Yr97Om=6?c)S}%S*$4AkfXhy*~V}Xj?ZrredQF7I(XSgb=gFoLG@VI^= zy}NWoapsa$#2teS(a1q;mz&Rtj=t>cbTqYWAL?hAit?j~pS)~8bg7q`s&+;({rFc+ zvbD0t3$nQpv~=n>qJX~-3NW*9tJ#2 zC)Jp!h_ohiK#QUxlD%(bBhWvnAo=wkz^CDa%`V8cukEUMBpQ2?yv4=~-muxNnZ&{_ zg`Lgx6#io?GI+jv`>2f4A~lM2WNCnjQWDDsElEq|t0m_nLr5EYd$pxN=$pF3j@XjX zv__Z$hZp`B2KzTZH=!#2a*8zrlNrsB0} zVl_RIU`gkVQ7A1Y*i(%p!v=4H`8nva#L-2MESP$yYY?e&Ex zKbsIduh{Jvg>>{iCo1?E!PJnqjP`S|?kyNJDgyu1U%K!!*-P}>@Bcg2z5W~74Geh6z%(?9b7F;wPs&-HZRWQcUi!w%WW2Na~R|8F;M=#pef!R z0CujBysNY(yGKt~!B>lAE2fmz(t4x&YY(me++X^>hw2N)nmX|Vba=DZ?tX<(lLsuB zznjJH-|5r{)(S-XwGxO_7|<-maxrBfY4cw9RSnp@^7UX@1IN<+7b%9;e6mQw~oM_BGBuxdWJ#|tR};RiwXNgP9c9s=|Xo(#JQmCOR2mL+=7>w zyXr)exE$es@jY3!W@Rkni`%k6+>R?h%lvM(stuz{692$~O3hp8S^0{ZypV7i*9LG{ z@&03=LDS6{>sAz?<;_pi`lGe%1@}*Z=3v_-OMJEcn#;jJ0Xhzfu)-L0t+gR5KN#EP z<^I;w4u5@6ZZR^-tZ3o14gS!E#iVTd^egcKE9o7UIV{0`VHP^jPtD+!+YY~cQJY@y z;4fQ~Sxg45(XCq9(CyG4F|P$=f@@9W_5u2si{-zuD dXal%@dL-mQAbU2cP#>@^ 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

K@Li(p00+k&NO{o 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 D)(h6P literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/reddit.png.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/reddit.png.meta new file mode 100644 index 000000000..6fa4988e8 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/reddit.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 78061221bc46bcc45894109179f267f3 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/twitch.png b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/twitch.png new file mode 100644 index 0000000000000000000000000000000000000000..bc95c21c3cb00c000e6480fad053c3c0b3d5dd93 GIT binary patch literal 3313 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 K^z?E?`o96STgPnx literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/twitch.png.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/twitch.png.meta new file mode 100644 index 000000000..5683fcf86 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/twitch.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 21f4840c7ae15cd42ae05fd5a3223451 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/x.png b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/x.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f8f3c701f501184af56f6b9bbcb6555b6f5b4f GIT binary patch literal 11828 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 Q)gTR8Ww+iom&G~yKU+8IlK=n! literal 0 HcmV?d00001 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/x.png.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/x.png.meta new file mode 100644 index 000000000..645e965e7 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/x.png.meta @@ -0,0 +1,166 @@ +fileFormatVersion: 2 +guid: 695f913771873d94499103c5d3cf19b1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs new file mode 100644 index 000000000..a1973c28d --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Numerics; +using System.Runtime.InteropServices; +using AOT; +using ChainSafe.Gaming; +using ChainSafe.Gaming.UnityPackage; +using ChainSafe.Gaming.Web3.Build; +using ChainSafe.GamingSdk.Web3Auth; +using Nethereum.Hex.HexTypes; +using UnityEngine; +using Network = Web3Auth.Network; + +public class Web3AuthConnectionProvider : ConnectionProvider +{ + public override bool IsAvailable { get; } + + public override Web3Builder ConfigureServices(Web3Builder web3Builder) + { + throw new NotImplementedException(); + } +} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs.meta new file mode 100644 index 000000000..01efe97f4 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b435f36106e244449abb70cf6f41008 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs new file mode 100644 index 000000000..227f04350 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Web3AuthModal : MonoBehaviour +{ + [SerializeField] private Button closeButton; + // Closes modal when background is clicked + [SerializeField] private Button closeFromBackgroundButton; + + private void Start() + { + closeButton.onClick.AddListener(Close); + closeFromBackgroundButton.onClick.AddListener(Close); + } + + private void Close() + { + gameObject.SetActive(false); + } +} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs.meta new file mode 100644 index 000000000..1edcf2bac --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 25a18334f97755e409ce7a0675ac07f8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs new file mode 100644 index 000000000..380e62874 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace ChainSafe.Gaming +{ + [RequireComponent(typeof(RectTransform))] + public class Resizer : MonoBehaviour + { + [SerializeField] private bool resizeWidth; + [SerializeField] private bool resizeHeight; + + [Space] + + [SerializeField] private float widthThreshold; + [SerializeField] private float heightThreshold; + + [Space] + + [SerializeField] private bool resizeRelativeToParent; + + [Space] + + [Range(0f, 1f)] + [SerializeField] private float normalizedWidth; + [Range(0f, 1f)] + [SerializeField] private float normalizedHeight; + + private RectTransform _rectTransform; + + private void Awake() + { + _rectTransform = GetComponent(); + } + + private void Start() + { + Resize(); + } + + private void Resize() + { + Vector2 parentSize = resizeRelativeToParent ? ((RectTransform) _rectTransform.parent).rect.size : new Vector2(Screen.width, Screen.height); + + if (resizeWidth) + { + ResizeAxis(RectTransform.Axis.Horizontal, parentSize.x, normalizedWidth, widthThreshold); + } + + if (resizeHeight) + { + ResizeAxis(RectTransform.Axis.Vertical, parentSize.y, normalizedHeight, heightThreshold); + } + + void ResizeAxis(RectTransform.Axis axis, float parent, float normalized, float threshold) + { + float target = parent * normalized; + + if (threshold > 0) + { + target = Mathf.Clamp(target,0f, threshold); + } + + _rectTransform.SetSizeWithCurrentAnchors(axis, target); + } + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs.meta new file mode 100644 index 000000000..3d8461d36 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2ae575209cff6346aa9d4278d20c347 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 1ca6053779b85133c8ae8cac41931b2ba94472a1 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 11 Jul 2024 16:07:12 +0300 Subject: [PATCH 17/47] conflicts from dev --- .../Scripts/Web3AuthWalletGUIUIManager.cs | 38 ++++++++++------ .../Runtime/Web3AuthProvider.cs | 17 ++++--- .../Runtime/Web3AuthSigner.cs | 2 +- .../Runtime/Web3AuthTransactionExecutor.cs | 2 +- .../Runtime/Web3AuthWalletExtensions.cs | 4 +- .../InProcessSigner.cs | 8 ++-- .../InProcessTransactionExecutor.cs | 10 ++--- .../Scripts/HyperPlayLoginProvider.cs | 14 +++--- .../Scripts/Web3AuthLoginProvider.cs | 45 +++++++++++-------- 9 files changed, 77 insertions(+), 63 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs index 7e00814c2..3b0665492 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/Web3AuthWalletGUIUIManager.cs @@ -3,6 +3,7 @@ using ChainSafe.Gaming.InProcessSigner; using ChainSafe.Gaming.UnityPackage; using ChainSafe.GamingSdk.Web3Auth; +using Nethereum.Web3.Accounts; using TMPro; using UnityEngine; using UnityEngine.EventSystems; @@ -14,7 +15,7 @@ public class Web3AuthWalletGUIUIManager : MonoBehaviour { #region Fields - + [SerializeField] private GameObject openWalletGUIContainer; [SerializeField] private GameObject walletGUIContainer; [SerializeField] private GameObject privateKeyContainer; @@ -43,17 +44,26 @@ public class Web3AuthWalletGUIUIManager : MonoBehaviour #endregion #region Methods - + ///

/// Initializes objects. /// private void Start() { + if (Web3Accessor.Web3 == null) + { + Debug.LogError("Web3 instance not set."); + + gameObject.SetActive(false); + + return; + } + InitializeButtons(); originalOrientation = Screen.orientation; walletAddressText.text = Web3Accessor.Web3.Signer.PublicAddress; } - + /// /// Initializes button listeners /// @@ -66,7 +76,7 @@ private void InitializeButtons() closePrivateKeyMenuButton.onClick.AddListener(TogglePrivateKeyMenu); copyPrivateKeyButton.onClick.AddListener(CopyPrivateKey); } - + /// /// Toggles the wallet display. /// @@ -133,7 +143,7 @@ private void TogglePrivateKeyMenu() } privateKeyContainer.SetActive(!privateKeyContainer.activeSelf); } - + /// /// On pointer down check. /// @@ -160,7 +170,7 @@ public void OnPointerUp() circleLoadingImage.fillAmount = 0f; } - + /// /// IEnumerator for private key check. /// @@ -178,16 +188,16 @@ private IEnumerator CheckHoldPrivateKeyButtonInput() OnPointerUp(); } - + /// /// Sets the private key text. /// private void SetPrivateKey() { - var accountProvider = (AccountProvider)Web3Accessor.Web3.ServiceProvider.GetService(typeof(AccountProvider)); + var accountProvider = (IAccountProvider)Web3Accessor.Web3.ServiceProvider.GetService(typeof(IAccountProvider)); - privateKeyText.text = accountProvider.Account.PrivateKey; + privateKeyText.text = ((Account) accountProvider.Account).PrivateKey; } /// @@ -197,7 +207,7 @@ private void CopyPrivateKey() { Web3AuthWalletGUIClipboardManager.CopyText(privateKeyText.text); } - + /// /// Sets original orientation /// @@ -208,7 +218,7 @@ private void SetOriginalOrientation() Screen.orientation = originalOrientation; } } - + /// /// Sets landscape origin for mobile devices when opened. /// @@ -220,7 +230,7 @@ private void SetLandscapeOrientation() Screen.orientation = ScreenOrientation.LandscapeLeft; } } - + /// /// Subscribes to events. /// @@ -239,7 +249,7 @@ private void OnDisable() Web3AuthEventManager.ConfigureGuiManager -= OnConfigureGuiManager; Web3AuthEventManager.ToggleWallet -= ToggleWallet; } - + /// /// Configures class properties. /// @@ -259,6 +269,6 @@ private void Update() { CheckWalletToggleKeyInput(); } - + #endregion } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs index b8dde1f5f..776477a55 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs @@ -5,27 +5,28 @@ using ChainSafe.Gaming.Web3.Environment; using ChainSafe.Gaming.Web3.Evm.Wallet; using ChainSafe.GamingSdk.Web3Auth; +using Nethereum.RPC.Accounts; using Nethereum.Web3.Accounts; using UnityEngine; /// /// Web3Auth provider allowing users to connect a Web3Auth wallet. /// -public class Web3AuthProvider : WalletProvider +public class Web3AuthProvider : WalletProvider, IAccountProvider { private readonly Web3AuthWalletConfig _config; - private readonly AccountProvider _accountProvider; private Web3Auth _coreInstance; private TaskCompletionSource _connectTcs; private TaskCompletionSource _disconnectTcs; - public Web3AuthProvider(Web3AuthWalletConfig config, AccountProvider accountProvider, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(environment, chainRegistryProvider, chainConfig) + public Web3AuthProvider(Web3AuthWalletConfig config, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(environment, chainRegistryProvider, chainConfig) { _config = config; - _accountProvider = accountProvider; } + public IAccount Account { get; private set; } + /// /// Connects Web3Auth wallet. /// @@ -61,13 +62,11 @@ public override async Task Connect() var response = await _connectTcs.Task; - var account = new Account(response.privKey); + Account = new Account(response.privKey); - account.TransactionManager.Client = this; - - _accountProvider.Initialize(account); + Account.TransactionManager.Client = this; - return account.Address; + return Account.Address; } private void OnLogin(Web3AuthResponse response) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs index a49c216b9..bd9072388 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthSigner.cs @@ -11,7 +11,7 @@ public class Web3AuthSigner : InProcessSigner, ILifecycleParticipant, ILogoutHan { private readonly IWalletProvider _walletProvider; - public Web3AuthSigner(AccountProvider accountProvider, IWalletProvider walletProvider) : base(accountProvider) + public Web3AuthSigner(IAccountProvider accountProvider, IWalletProvider walletProvider) : base(accountProvider) { _walletProvider = walletProvider; } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs index 791af882d..bce996bed 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthTransactionExecutor.cs @@ -20,7 +20,7 @@ public class Web3AuthTransactionExecutor : InProcessTransactionExecutor, IWeb3Au private readonly Dictionary response)> _transactionPool = new(); - public Web3AuthTransactionExecutor(AccountProvider accountProvider, IRpcProvider rpcProvider) : base(accountProvider, rpcProvider) + public Web3AuthTransactionExecutor(IAccountProvider accountProvider, IRpcProvider rpcProvider) : base(accountProvider, rpcProvider) { } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs index ac81646b6..abb119638 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs @@ -37,9 +37,7 @@ public static IWeb3ServiceCollection UseWeb3AuthWallet(this IWeb3ServiceCollecti collection.AssertServiceNotBound(); collection.AssertServiceNotBound(); - collection.AddSingleton(); - - collection.AddSingleton( new AccountProvider()); + collection.AddSingleton(); collection.AddSingleton(); diff --git a/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs b/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs index e8032cc15..9638d890a 100644 --- a/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs +++ b/src/ChainSafe.Gaming.InProcessSigner/InProcessSigner.cs @@ -3,7 +3,7 @@ using ChainSafe.Gaming.Evm.Signers; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Core.Evm; -using Nethereum.Web3.Accounts; +using Nethereum.RPC.Accounts; using Newtonsoft.Json; namespace ChainSafe.Gaming.InProcessSigner @@ -13,18 +13,18 @@ namespace ChainSafe.Gaming.InProcessSigner /// public class InProcessSigner : ISigner { - private readonly AccountProvider accountProvider; + private readonly IAccountProvider accountProvider; /// /// Initializes a new instance of the class. /// /// Throws Exception if initializing instance fails. - public InProcessSigner(AccountProvider accountProvider) + public InProcessSigner(IAccountProvider accountProvider) { this.accountProvider = accountProvider; } - private Account Account => accountProvider.Account; + private IAccount Account => accountProvider.Account; /// /// Public Address. diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs index f2c0e2e63..a00ab3bca 100644 --- a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs +++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs @@ -6,8 +6,8 @@ using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Core.Evm; using Nethereum.Hex.HexTypes; +using Nethereum.RPC.Accounts; using Nethereum.RPC.Eth.DTOs; -using Nethereum.Web3.Accounts; namespace ChainSafe.Gaming.InProcessTransactionExecutor { @@ -17,21 +17,21 @@ namespace ChainSafe.Gaming.InProcessTransactionExecutor public class InProcessTransactionExecutor : ITransactionExecutor { private readonly IRpcProvider rpcProvider; - private readonly AccountProvider accountProvider; + private readonly IAccountProvider accountProvider; /// /// Initializes a new instance of the class. /// - /// Injected . + /// Injected . /// Injected . /// Throws exception if initializing instance fails. - public InProcessTransactionExecutor(AccountProvider accountProvider, IRpcProvider rpcProvider) + public InProcessTransactionExecutor(IAccountProvider accountProvider, IRpcProvider rpcProvider) { this.rpcProvider = rpcProvider; this.accountProvider = accountProvider; } - private Account Account => accountProvider.Account; + private IAccount Account => accountProvider.Account; /// /// Implementation of . diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs index a2dfecc89..2683e7a57 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs @@ -10,19 +10,19 @@ /// /// Login using HyperPlay desktop client. /// -public class HyperPlayLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter +public class HyperPlayLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter { [SerializeField] private Button loginButton; [SerializeField] private Toggle rememberMeToggle; private bool _storedSessionAvailable; - + protected override async void Initialize() { base.Initialize(); _storedSessionAvailable = false; - + await using (var lightWeb3 = await HyperPlayWeb3.BuildLightweightWeb3(new HyperPlayConfig())) { var data = lightWeb3.ServiceProvider.GetService(); @@ -33,8 +33,8 @@ protected override async void Initialize() if (_storedSessionAvailable) // auto-login { Debug.Log("Proceeding with auto-login."); - - await TryConnect(); + + await TryLogin(); } loginButton.onClick.AddListener(OnLoginClicked); @@ -56,9 +56,9 @@ public Web3Builder ConfigureServices(Web3Builder web3Builder) services.UseWalletSigner().UseWalletTransactionExecutor(); }); } - + private async void OnLoginClicked() { - await TryConnect(); + await TryLogin(); } } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs index 21634a3d7..034965dc0 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs @@ -19,7 +19,7 @@ /// /// Login using Web3Auth. /// -public class Web3AuthLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter +public class Web3AuthLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter { /// /// Struct used for pairing login buttons to Web3 auth providers. @@ -55,8 +55,8 @@ public struct ProviderAndButtonPair [SerializeField] private Color borderButtonColour; private Provider? selectedProvider; private bool rememberMe; - - #if UNITY_WEBGL && !UNITY_EDITOR + +#if UNITY_WEBGL && !UNITY_EDITOR [DllImport("__Internal")] private static extern void InitWeb3Auth(string clientId, string chainId, string rpcTarget, string displayName, string blockExplorerUrl, string ticker, string tickerName, string network); [DllImport("__Internal")] @@ -65,9 +65,9 @@ public struct ProviderAndButtonPair private static extern void SetLoginCallback(Action callback); public static event Action Web3AuthWebGLConnected; - #endif - - +#endif + + public void SetRememberMe(bool rememberMe) { this.rememberMe = rememberMe; @@ -78,31 +78,31 @@ protected override async void Initialize() base.Initialize(); providerAndButtonPairs.ForEach(p => p.Button.onClick.AddListener(delegate { LoginWithWeb3Auth(p.Provider); })); - #if !UNITY_EDITOR && UNITY_WEBGL +#if !UNITY_EDITOR && UNITY_WEBGL Web3AuthWebGLConnected += Web3AuthSet; var projectSettings = ProjectConfigUtilities.Load(); SetLoginCallback(Web3AuthConnected); //1155 is a decimal number, we need to convert it to an integer InitWeb3Auth(clientId, new HexBigInteger(BigInteger.Parse(projectSettings.ChainId)).HexValue, projectSettings.Rpc, projectSettings.Network, "", projectSettings.Symbol, "", network.ToString().ToLower()); - #else +#else if (!string.IsNullOrEmpty(KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID))) { rememberMe = true; - await TryConnect(); + await TryLogin(); Debug.Log("Restoring existing Web3Auth session (Remember Me"); } - #endif +#endif } #if !UNITY_EDITOR && UNITY_WEBGL private async void Web3AuthSet(string sessionId) { Web3AuthWebGLConnected -= Web3AuthSet; KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); - await TryConnect(); + await TryLogin(); } #endif - + #if !UNITY_EDITOR && UNITY_WEBGL [MonoPInvokeCallback(typeof(Action))] private static void Web3AuthConnected(string sessionId) @@ -117,15 +117,22 @@ private async void LoginWithWeb3Auth(Provider provider) Web3AuthLogin(provider.ToString().ToLower(), rememberMe); #else selectedProvider = provider; - await TryConnect(); + await TryLogin(); LogAnalytics(provider); } - - public override async Task TryConnect() + + public override async Task TryLogin() { - await base.TryConnect(); - - EnableWalletGUI(); + try + { + await (this as ILoginProvider).Login(); + EnableWalletGUI(); + } + catch (Exception e) + { + Debug.LogError($"Login failed, please try again\n{e.Message} (see console for more details)"); + throw; + } } private void EnableWalletGUI() @@ -160,7 +167,7 @@ private void LogAnalytics(Provider provider) #endif } - + public Web3Builder ConfigureServices(Web3Builder web3Builder) { return web3Builder.Configure(services => From 0a7b9064b7e30c6fd6a1592c71f2c35591bd8b83 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 11 Jul 2024 16:19:08 +0300 Subject: [PATCH 18/47] fixed some compile errors from merge --- .../Scripts/HyperPlayLoginProvider.cs | 6 ++--- .../Scripts/Web3AuthLoginProvider.cs | 23 +++++++------------ 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs index 2683e7a57..52519efa9 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs @@ -10,7 +10,7 @@ /// /// Login using HyperPlay desktop client. /// -public class HyperPlayLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter +public class HyperPlayLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter { [SerializeField] private Button loginButton; [SerializeField] private Toggle rememberMeToggle; @@ -34,7 +34,7 @@ protected override async void Initialize() { Debug.Log("Proceeding with auto-login."); - await TryLogin(); + await TryConnect(); } loginButton.onClick.AddListener(OnLoginClicked); @@ -59,6 +59,6 @@ public Web3Builder ConfigureServices(Web3Builder web3Builder) private async void OnLoginClicked() { - await TryLogin(); + await TryConnect(); } } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs index 034965dc0..9f0519e03 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs @@ -19,7 +19,7 @@ /// /// Login using Web3Auth. /// -public class Web3AuthLoginProvider : LoginProvider, IWeb3BuilderServiceAdapter +public class Web3AuthLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter { /// /// Struct used for pairing login buttons to Web3 auth providers. @@ -89,7 +89,7 @@ protected override async void Initialize() if (!string.IsNullOrEmpty(KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID))) { rememberMe = true; - await TryLogin(); + await TryConnect(); Debug.Log("Restoring existing Web3Auth session (Remember Me"); } #endif @@ -99,7 +99,7 @@ private async void Web3AuthSet(string sessionId) { Web3AuthWebGLConnected -= Web3AuthSet; KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); - await TryLogin(); + await TryConnect(); } #endif @@ -117,22 +117,15 @@ private async void LoginWithWeb3Auth(Provider provider) Web3AuthLogin(provider.ToString().ToLower(), rememberMe); #else selectedProvider = provider; - await TryLogin(); + await TryConnect(); LogAnalytics(provider); } - public override async Task TryLogin() + public override async Task TryConnect() { - try - { - await (this as ILoginProvider).Login(); - EnableWalletGUI(); - } - catch (Exception e) - { - Debug.LogError($"Login failed, please try again\n{e.Message} (see console for more details)"); - throw; - } + await base.TryConnect(); + + EnableWalletGUI(); } private void EnableWalletGUI() From 35cf47f721c3028ff0855aba457748798d11802c Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 11 Jul 2024 16:26:41 +0300 Subject: [PATCH 19/47] revert from merge --- .../AccountProvider.cs | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs diff --git a/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs b/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs deleted file mode 100644 index 654e9a0f3..000000000 --- a/src/ChainSafe.Gaming.InProcessSigner/AccountProvider.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Nethereum.Web3.Accounts; - -namespace ChainSafe.Gaming.InProcessSigner -{ - /// - /// Provides the current connected account. - /// - public class AccountProvider - { - /// - /// Current connected account. - /// - public Account Account { get; private set; } = null!; - - /// - /// Initialized provider with the current connected account. - /// - /// Current connected account. - public void Initialize(Account account) - { - Account = account; - } - } -} \ No newline at end of file From 6c65e645b88dacd3994a231b94a390d2f78d07fe Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 12 Jul 2024 13:06:21 +0300 Subject: [PATCH 20/47] checkpoint --- .../Runtime/Prefabs/Web3Auth.prefab | 3897 ++++++++++++----- .../Runtime/Prefabs/Web3Auth.prefab.meta | 2 +- .../Runtime/Prefabs/Web3AuthRow.prefab | 147 + .../Runtime/Prefabs/Web3AuthRow.prefab.meta | 7 + .../Runtime/Resources.meta | 8 + .../Web3AuthConnectionProviderConfig.asset | 16 + ...eb3AuthConnectionProviderConfig.asset.meta | 8 + .../Runtime/Sprites/web3auth.png | Bin 0 -> 31619 bytes .../Runtime/Sprites/web3auth.png.meta | 166 + .../Runtime/Web3AuthConnectionProvider.cs | 62 +- .../Runtime/Web3AuthModal.cs | 55 + .../Runtime/Web3AuthProvider.cs | 30 +- .../Runtime/Web3AuthWalletConfig.cs | 9 +- .../Runtime/Prefabs/Connect.prefab | 15 + .../Scripts/Web3AuthLoginProvider.cs | 14 +- .../Scenes/SampleLogin - Connect Modal.unity | 918 ++-- 16 files changed, 3687 insertions(+), 1667 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3AuthRow.prefab create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3AuthRow.prefab.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/web3auth.png create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Sprites/web3auth.png.meta diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab index eed8daea0..aec680eb0 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3Auth.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &2237341416548017329 +--- !u!1 &310113092346587585 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,139 +8,54 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7745417804556379745} - - component: {fileID: 4032498525751300840} + - component: {fileID: 8035933312638207985} + - component: {fileID: 3571015939282354814} + - component: {fileID: 521421322511398152} + - component: {fileID: 3694354406383450408} + - component: {fileID: 5158840084016272827} m_Layer: 5 - m_Name: Column + m_Name: Facebook m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &7745417804556379745 +--- !u!224 &8035933312638207985 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2237341416548017329} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 310113092346587585} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 6732399563691960325} - - {fileID: 3350077136800367971} - m_Father: {fileID: 6558448801438321956} + - {fileID: 1182062394830715530} + - {fileID: 739358109586565570} + m_Father: {fileID: 4738419944257699676} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &4032498525751300840 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2237341416548017329} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 750 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &3895911955368965336 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 850444260342609506} - - component: {fileID: 4082656798130106691} - - component: {fileID: 4672817495575154206} - - component: {fileID: 8282516275078844245} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &850444260342609506 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6329436153274430458} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 150} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4082656798130106691 +--- !u!222 &3571015939282354814 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} + m_GameObject: {fileID: 310113092346587585} m_CullTransparentMesh: 1 ---- !u!114 &4672817495575154206 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8282516275078844245 +--- !u!114 &521421322511398152 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} + m_GameObject: {fileID: 310113092346587585} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -174,11 +89,61 @@ MonoBehaviour: m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 4672817495575154206} + m_TargetGraphic: {fileID: 3694354406383450408} m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &5282376474319179916 +--- !u!114 &3694354406383450408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310113092346587585} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9eca7939d43f1464dbe937418b350f47, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5158840084016272827 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310113092346587585} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 150 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &311668688095573259 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -186,12 +151,12 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 927670855158962907} - - component: {fileID: 6933173120826074429} - - component: {fileID: 8205949823160346083} - - component: {fileID: 742992652230266778} - - component: {fileID: 1431189296266374037} - - component: {fileID: 6277980141135302597} + - component: {fileID: 4738419944257699676} + - component: {fileID: 3254436046791721146} + - component: {fileID: 4394637530432421988} + - component: {fileID: 5139209220709263901} + - component: {fileID: 6827768724132253202} + - component: {fileID: 1874163486292126274} m_Layer: 5 m_Name: Container m_TagString: Untagged @@ -199,38 +164,38 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &927670855158962907 +--- !u!224 &4738419944257699676 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 311668688095573259} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 2106985617130811316} - - {fileID: 1884441950207984171} - - {fileID: 2492987216593674870} - - {fileID: 948125957016614504} - - {fileID: 5786851700527628335} - - {fileID: 423711946545881555} - m_Father: {fileID: 5102271928894428265} + - {fileID: 5773619320853678643} + - {fileID: 6285725010285651884} + - {fileID: 8035933312638207985} + - {fileID: 4626863570073539567} + - {fileID: 2112899170668914088} + - {fileID: 5259311196067349588} + m_Father: {fileID: 852140368665489902} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} ---- !u!114 &6933173120826074429 +--- !u!114 &3254436046791721146 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 311668688095573259} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -254,13 +219,13 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8205949823160346083 +--- !u!114 &4394637530432421988 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 311668688095573259} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} @@ -280,21 +245,21 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!222 &742992652230266778 +--- !u!222 &5139209220709263901 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 311668688095573259} m_CullTransparentMesh: 1 ---- !u!114 &1431189296266374037 +--- !u!114 &6827768724132253202 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 311668688095573259} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} @@ -308,13 +273,13 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!114 &6277980141135302597 +--- !u!114 &1874163486292126274 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 311668688095573259} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} @@ -322,7 +287,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 ---- !u!1 &5924577586993790483 +--- !u!1 &1060439634540712661 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -330,149 +295,101 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6732399563691960325} - - component: {fileID: 4102446605622547045} - - component: {fileID: 7091605519317671907} - - component: {fileID: 3223309524305574596} + - component: {fileID: 7130477182542182640} + - component: {fileID: 5618224475139612661} + - component: {fileID: 8895056018511876660} + - component: {fileID: 5915332505784759186} m_Layer: 5 - m_Name: Header + m_Name: Web3Auth m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6732399563691960325 +--- !u!224 &7130477182542182640 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5924577586993790483} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 1060439634540712661} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0, y: 0, z: 0} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 7659673790302877183} - - {fileID: 1432415783519671661} - m_Father: {fileID: 7745417804556379745} + - {fileID: 1930686112432346749} + m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.8} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 72.5} - m_SizeDelta: {x: 0, y: 155} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4102446605622547045 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5924577586993790483} - m_CullTransparentMesh: 1 ---- !u!114 &7091605519317671907 -MonoBehaviour: + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &5618224475139612661 +Canvas: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5924577586993790483} + m_GameObject: {fileID: 1060439634540712661} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &3223309524305574596 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &8895056018511876660 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5924577586993790483} + m_GameObject: {fileID: 1060439634540712661} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &6036957702279409077 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6329436153274430458} - - component: {fileID: 968942334131991764} - m_Layer: 5 - m_Name: Web3Auth - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6329436153274430458 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6036957702279409077} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 850444260342609506} - - {fileID: 577935142268829008} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &968942334131991764 + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &5915332505784759186 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6036957702279409077} + m_GameObject: {fileID: 1060439634540712661} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 25a18334f97755e409ce7a0675ac07f8, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: m_EditorClassIdentifier: - closeButton: {fileID: 2547221875300260690} - closeFromBackgroundButton: {fileID: 8282516275078844245} ---- !u!1 &6132922041111678424 + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &1729668634718021727 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -480,10 +397,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5102271928894428265} - - component: {fileID: 8952722307038542099} - - component: {fileID: 183058293677065960} - - component: {fileID: 6400287890280934917} + - component: {fileID: 852140368665489902} + - component: {fileID: 3540944138815921300} + - component: {fileID: 5735293321655296879} + - component: {fileID: 1571724946089790338} m_Layer: 5 m_Name: Viewport m_TagString: Untagged @@ -491,41 +408,41 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &5102271928894428265 +--- !u!224 &852140368665489902 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6132922041111678424} + m_GameObject: {fileID: 1729668634718021727} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 927670855158962907} - m_Father: {fileID: 7179724650230330003} + - {fileID: 4738419944257699676} + m_Father: {fileID: 3368131668777408276} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 1} ---- !u!222 &8952722307038542099 +--- !u!222 &3540944138815921300 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6132922041111678424} + m_GameObject: {fileID: 1729668634718021727} m_CullTransparentMesh: 1 ---- !u!114 &183058293677065960 +--- !u!114 &5735293321655296879 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6132922041111678424} + m_GameObject: {fileID: 1729668634718021727} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -549,20 +466,20 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &6400287890280934917 +--- !u!114 &1571724946089790338 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6132922041111678424} + m_GameObject: {fileID: 1729668634718021727} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 ---- !u!1 &6964812571422519759 +--- !u!1 &2223112886380431410 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -570,77 +487,64 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6558448801438321956} - - component: {fileID: 6085279580583425317} - - component: {fileID: 199958988756034151} + - component: {fileID: 1930686112432346749} + - component: {fileID: 4643175501452988755} m_Layer: 5 - m_Name: Content + m_Name: Modal m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6558448801438321956 +--- !u!224 &1930686112432346749 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6964812571422519759} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 2223112886380431410} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 7745417804556379745} - m_Father: {fileID: 577935142268829008} + - {fileID: 5102827843719336933} + - {fileID: 4978936770051004631} + m_Father: {fileID: 7130477182542182640} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.85} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} ---- !u!114 &6085279580583425317 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6964812571422519759} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 4 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &199958988756034151 +--- !u!114 &4643175501452988755 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6964812571422519759} + m_GameObject: {fileID: 2223112886380431410} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Script: {fileID: 11500000, guid: 25a18334f97755e409ce7a0675ac07f8, type: 3} m_Name: m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!1 &7334217534239817794 + providers: + - k__BackingField: 0 + public Task ProviderTask { get; set; } + + /// + /// Get the SessionId on connection from the provider. + /// + public Task SessionTask { get; set; } public CancellationToken CancellationToken { get; set; } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs index abb119638..7f4d3e512 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs @@ -37,7 +37,11 @@ public static IWeb3ServiceCollection UseWeb3AuthWallet(this IWeb3ServiceCollecti collection.AssertServiceNotBound(); collection.AssertServiceNotBound(); +#if UNITY_WEBGL && !UNITY_EDITOR + collection.AddSingleton(); +#else collection.AddSingleton(); +#endif collection.AddSingleton(); diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs new file mode 100644 index 000000000..cc9ce5112 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using ChainSafe.Gaming.Evm; +using ChainSafe.Gaming.Web3; +using ChainSafe.Gaming.Web3.Environment; +using ChainSafe.GamingSdk.Web3Auth; + +public class Web3AuthWebGLProvider : Web3AuthProvider +{ + private readonly Web3AuthWalletConfig _config; + + public Web3AuthWebGLProvider(Web3AuthWalletConfig config, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(config, environment, chainConfig, chainRegistryProvider) + { + _config = config; + } + + public override async Task Connect() + { + string sessionId = await _config.SessionTask; + + KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); + + return await base.Connect(); + } +} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs.meta new file mode 100644 index 000000000..afc5bd514 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 50c9dfe13a67bda44bb58dfae96b57c3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs index 508c5827d..11faaa1a1 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs @@ -29,7 +29,7 @@ private void Start() /// /// Initializes Connection Handler. /// - protected virtual void Initialize() + protected virtual async void Initialize() { Web3BuilderServiceAdapters = GetComponents(); @@ -40,10 +40,12 @@ protected virtual void Initialize() if (provider != null && provider.IsAvailable) { var instantiatedProvider = connectModal.AddProvider(provider); + + await instantiatedProvider.Initialize(); instantiatedProvider.ConnectButton.onClick.AddListener(delegate { - ConnectionProvider = provider; + ConnectionProvider = instantiatedProvider; ConnectClicked(); }); @@ -73,8 +75,8 @@ public virtual async Task TryConnect() { connectModal.DisplayError( $"Connecting failed, please try again\n{e.Message} (see console for more details)"); - - throw; + + ConnectionProvider.HandleException(e); } } finally diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs index fbd9d3d56..72fa53bf2 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs @@ -1,10 +1,7 @@ using System; -using System.Collections; -using System.Collections.Generic; +using System.Threading.Tasks; using ChainSafe.Gaming.UnityPackage.Common; using ChainSafe.Gaming.Web3.Build; -using Scenes; -using TMPro; using UnityEngine; using UnityEngine.UI; @@ -16,6 +13,13 @@ public abstract class ConnectionProvider : MonoBehaviour, IWeb3BuilderServiceAda [field: SerializeField] public Button ConnectButton { get; private set; } + public abstract Task Initialize(); + public abstract Web3Builder ConfigureServices(Web3Builder web3Builder); + + public virtual void HandleException(Exception exception) + { + throw exception; + } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs index 0240a23ba..1ea52451e 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs @@ -1,3 +1,4 @@ +using System.Threading.Tasks; using ChainSafe.Gaming.Unity.MetaMask; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Evm.Wallet; @@ -8,7 +9,12 @@ namespace ChainSafe.Gaming public class MetamaskConnectionProvider : ConnectionProvider { public override bool IsAvailable => Application.platform == RuntimePlatform.WebGLPlayer && Application.isEditor == false; - + + public override Task Initialize() + { + return Task.CompletedTask; + } + public override Web3Builder ConfigureServices(Web3Builder web3Builder) { return web3Builder.Configure(services => diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs index 79c6369d6..754c0f147 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs @@ -1,8 +1,8 @@ +using System.Threading.Tasks; using ChainSafe.Gaming.WalletConnect; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Evm.Wallet; using UnityEngine; -using UnityEngine.UI; namespace ChainSafe.Gaming { @@ -11,6 +11,12 @@ public class WalletConnectConnectionProvider : ConnectionProvider [SerializeField] private WalletConnectConfigSO walletConnectConfig; public override bool IsAvailable => Application.isEditor || Application.platform != RuntimePlatform.WebGLPlayer; + + public override Task Initialize() + { + return Task.CompletedTask; + } + public override Web3Builder ConfigureServices(Web3Builder web3Builder) { return web3Builder.Configure(services => diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs index 25e9dc029..d43726b8d 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs @@ -56,16 +56,16 @@ public struct ProviderAndButtonPair private Provider? selectedProvider; private bool rememberMe; -#if UNITY_WEBGL && !UNITY_EDITOR - [DllImport("__Internal")] - private static extern void InitWeb3Auth(string clientId, string chainId, string rpcTarget, string displayName, string blockExplorerUrl, string ticker, string tickerName, string network); - [DllImport("__Internal")] - private static extern void Web3AuthLogin(string provider, bool rememberMe); - [DllImport("__Internal")] - private static extern void SetLoginCallback(Action callback); - - public static event Action Web3AuthWebGLConnected; -#endif +// #if UNITY_WEBGL && !UNITY_EDITOR +// [DllImport("__Internal")] +// private static extern void InitWeb3Auth(string clientId, string chainId, string rpcTarget, string displayName, string blockExplorerUrl, string ticker, string tickerName, string network); +// [DllImport("__Internal")] +// private static extern void Web3AuthLogin(string provider, bool rememberMe); +// [DllImport("__Internal")] +// private static extern void SetLoginCallback(Action callback); +// +// public static event Action Web3AuthWebGLConnected; +// #endif public void SetRememberMe(bool rememberMe) From bb4aa191ecc4317c18d0ebd830422360ffc8e06a Mon Sep 17 00:00:00 2001 From: rob1997 Date: Tue, 16 Jul 2024 16:27:39 +0300 Subject: [PATCH 23/47] build error fix --- .../Scripts/Web3AuthLoginProvider.cs | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs index d43726b8d..b4db38b37 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs @@ -78,44 +78,44 @@ protected override async void Initialize() base.Initialize(); providerAndButtonPairs.ForEach(p => p.Button.onClick.AddListener(delegate { LoginWithWeb3Auth(p.Provider); })); -#if !UNITY_EDITOR && UNITY_WEBGL - Web3AuthWebGLConnected += Web3AuthSet; - var projectSettings = ProjectConfigUtilities.Load(); - SetLoginCallback(Web3AuthConnected); - //1155 is a decimal number, we need to convert it to an integer - InitWeb3Auth(clientId, new HexBigInteger(BigInteger.Parse(projectSettings.ChainId)).HexValue, - projectSettings.Rpc, projectSettings.Network, "", projectSettings.Symbol, "", network.ToString().ToLower()); -#else +// #if !UNITY_EDITOR && UNITY_WEBGL +// Web3AuthWebGLConnected += Web3AuthSet; +// var projectSettings = ProjectConfigUtilities.Load(); +// SetLoginCallback(Web3AuthConnected); +// //1155 is a decimal number, we need to convert it to an integer +// InitWeb3Auth(clientId, new HexBigInteger(BigInteger.Parse(projectSettings.ChainId)).HexValue, +// projectSettings.Rpc, projectSettings.Network, "", projectSettings.Symbol, "", network.ToString().ToLower()); +// #else if (!string.IsNullOrEmpty(KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID))) { rememberMe = true; await TryConnect(); Debug.Log("Restoring existing Web3Auth session (Remember Me"); } -#endif - } -#if !UNITY_EDITOR && UNITY_WEBGL - private async void Web3AuthSet(string sessionId) - { - Web3AuthWebGLConnected -= Web3AuthSet; - KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); - await TryConnect(); - } -#endif - -#if !UNITY_EDITOR && UNITY_WEBGL - [MonoPInvokeCallback(typeof(Action))] - private static void Web3AuthConnected(string sessionId) - { - Web3AuthWebGLConnected?.Invoke(sessionId); +// #endif } -#endif +// #if !UNITY_EDITOR && UNITY_WEBGL +// private async void Web3AuthSet(string sessionId) +// { +// Web3AuthWebGLConnected -= Web3AuthSet; +// KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); +// await TryConnect(); +// } +// #endif +// +// #if !UNITY_EDITOR && UNITY_WEBGL +// [MonoPInvokeCallback(typeof(Action))] +// private static void Web3AuthConnected(string sessionId) +// { +// Web3AuthWebGLConnected?.Invoke(sessionId); +// } +// #endif private async void LoginWithWeb3Auth(Provider provider) { -#if UNITY_WEBGL && !UNITY_EDITOR - Web3AuthLogin(provider.ToString().ToLower(), rememberMe); -#else +// #if UNITY_WEBGL && !UNITY_EDITOR +// Web3AuthLogin(provider.ToString().ToLower(), rememberMe); +// #else selectedProvider = provider; await TryConnect(); LogAnalytics(provider); @@ -157,7 +157,7 @@ private void LogAnalytics(Provider provider) EventName = $"Login provider {provider}", PackageName = "io.chainsafe.web3-unity.web3auth", }); -#endif +// #endif } From 6885e8ff66188a868f26bedb0f69925c6ae83f39 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 17 Jul 2024 14:04:07 +0300 Subject: [PATCH 24/47] documentation and namespace changes --- .../Scripts/HyperPlayConnectionProvider.cs | 4 ++ .../Runtime/Scripts/RampServiceAdapter.cs | 2 +- .../Runtime/Web3AuthConnectionProvider.cs | 4 ++ .../Runtime/Web3AuthModal.cs | 7 +-- .../Runtime/Web3AuthWebGLProvider.cs | 3 ++ .../Editor/ConnectionHandlerEditor.cs | 5 +- .../Runtime/Common/Scripts.meta | 8 --- .../Common/Scripts/ConnectionProvider.cs | 25 ---------- .../{Common.meta => Scripts/Connection.meta} | 0 .../Connection}/ConnectionHandler.cs | 8 +-- .../Connection}/ConnectionHandler.cs.meta | 0 .../Scripts/Connection/ConnectionProvider.cs | 50 +++++++++++++++++++ .../Connection}/ConnectionProvider.cs.meta | 0 .../Connection}/ConnectionProviderConfig.cs | 13 +++-- .../ConnectionProviderConfig.cs.meta | 0 .../Connection}/ErrorPopup.cs | 0 .../Connection}/ErrorPopup.cs.meta | 0 .../Connection}/IConnectionHandler.cs | 5 +- .../Connection}/IConnectionHandler.cs.meta | 0 .../Connection}/IWeb3BuilderServiceAdapter.cs | 2 +- .../IWeb3BuilderServiceAdapter.cs.meta | 0 .../Connection}/IWeb3InitializedHandler.cs | 2 +- .../IWeb3InitializedHandler.cs.meta | 0 .../Connection}/LoadSceneOnLogin.cs | 3 +- .../Connection}/LoadSceneOnLogin.cs.meta | 0 .../Connection}/MetamaskConnectionProvider.cs | 5 +- .../MetamaskConnectionProvider.cs.meta | 0 .../WalletConnectConnectionProvider.cs | 5 +- .../WalletConnectConnectionProvider.cs.meta | 0 .../Runtime/Scripts/UI/ConnectModal.cs | 24 +++++++-- .../Runtime/Scripts/UI/ErrorOverlay.cs | 14 +++++- .../Runtime/Scripts/UI/LoadingOverlay.cs | 5 +- .../Runtime/Scripts/UI/Resizer.cs | 8 +-- .../Scripts/HyperPlayLoginProvider.cs | 3 +- .../Scripts/LootboxesServicesAdapter.cs | 2 +- .../Scripts/Web3AuthLoginProvider.cs | 3 +- .../Scripts/Prefabs/Logout.cs | 5 +- .../Scripts/Scenes/ConnectToWallet.cs | 5 +- .../Scripts/Scenes/MetaMaskLoginProvider.cs | 3 +- .../Scenes/WalletConnectLoginProvider.cs | 3 +- 40 files changed, 144 insertions(+), 82 deletions(-) delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts.meta delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs rename Packages/io.chainsafe.web3-unity/Runtime/{Common.meta => Scripts/Connection.meta} (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/ConnectionHandler.cs (92%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/ConnectionHandler.cs.meta (100%) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/ConnectionProvider.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/ConnectionProviderConfig.cs (54%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/ConnectionProviderConfig.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/ErrorPopup.cs (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/ErrorPopup.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/IConnectionHandler.cs (95%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/IConnectionHandler.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/IWeb3BuilderServiceAdapter.cs (91%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/IWeb3BuilderServiceAdapter.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/IWeb3InitializedHandler.cs (87%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/IWeb3InitializedHandler.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/LoadSceneOnLogin.cs (88%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/LoadSceneOnLogin.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/MetamaskConnectionProvider.cs (81%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/MetamaskConnectionProvider.cs.meta (100%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/WalletConnectConnectionProvider.cs (84%) rename Packages/io.chainsafe.web3-unity/Runtime/{Common/Scripts => Scripts/Connection}/WalletConnectConnectionProvider.cs.meta (100%) diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs index 3d8f7011e..8ab42ecc2 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs @@ -1,10 +1,14 @@ using System.Threading.Tasks; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Evm.Wallet; using UnityEngine; namespace ChainSafe.Gaming.HyperPlay { + /// + /// Connection provider for connecting via HyperPlay Launcher. + /// public class HyperPlayConnectionProvider : ConnectionProvider { public override bool IsAvailable => Application.isEditor || Application.platform != RuntimePlatform.Android || Application.platform != RuntimePlatform.IPhonePlayer; diff --git a/Packages/io.chainsafe.web3-unity.ramp/Runtime/Scripts/RampServiceAdapter.cs b/Packages/io.chainsafe.web3-unity.ramp/Runtime/Scripts/RampServiceAdapter.cs index d92f2de7a..5a45fe99f 100644 --- a/Packages/io.chainsafe.web3-unity.ramp/Runtime/Scripts/RampServiceAdapter.cs +++ b/Packages/io.chainsafe.web3-unity.ramp/Runtime/Scripts/RampServiceAdapter.cs @@ -1,4 +1,4 @@ -using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Build; using UnityEngine; diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs index f116a95f7..eb8b84ac1 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -5,6 +5,7 @@ using AOT; using ChainSafe.Gaming; using ChainSafe.Gaming.UnityPackage; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Build; using ChainSafe.GamingSdk.Web3Auth; @@ -12,6 +13,9 @@ using UnityEngine; using Network = Web3Auth.Network; +/// +/// ConnectionProvider for connecting wallet via Web3Auth. +/// public class Web3AuthConnectionProvider : ConnectionProvider { [SerializeField] private string clientId; diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs index 4a863b894..96f8b889b 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthModal.cs @@ -1,13 +1,14 @@ using System; -using System.Collections; -using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; -using ChainSafe.Gaming; +using ChainSafe.Gaming.UnityPackage.UI; using ChainSafe.Gaming.Web3; using UnityEngine; using UnityEngine.UI; +/// +/// Web3Auth modal used for displaying and selecting a Web3Auth provider. +/// public class Web3AuthModal : MonoBehaviour { [Serializable] diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs index cc9ce5112..1937f0aca 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs @@ -4,6 +4,9 @@ using ChainSafe.Gaming.Web3.Environment; using ChainSafe.GamingSdk.Web3Auth; +/// +/// Connection provider for connecting via Web3Auth modal on WebGL. +/// public class Web3AuthWebGLProvider : Web3AuthProvider { private readonly Web3AuthWalletConfig _config; diff --git a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs index 649f6e0ec..c6d77fe42 100644 --- a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs +++ b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs @@ -1,11 +1,10 @@ using System.Collections.Generic; -using System.IO; -using ChainSafe.Gaming; +using ChainSafe.Gaming.UnityPackage.Connection; using Newtonsoft.Json; -using Scenes; using UnityEditor; using UnityEngine; +// Editor for adding and removing providers in an interactive way. [CustomEditor(typeof(ConnectionHandler))] public class ConnectionHandlerEditor : Editor { diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts.meta b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts.meta deleted file mode 100644 index ae4d8755e..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b3347b82b502e4f4fa3d94b8ae6c144a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs deleted file mode 100644 index 72fa53bf2..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Threading.Tasks; -using ChainSafe.Gaming.UnityPackage.Common; -using ChainSafe.Gaming.Web3.Build; -using UnityEngine; -using UnityEngine.UI; - -namespace ChainSafe.Gaming -{ - public abstract class ConnectionProvider : MonoBehaviour, IWeb3BuilderServiceAdapter - { - public abstract bool IsAvailable { get; } - - [field: SerializeField] public Button ConnectButton { get; private set; } - - public abstract Task Initialize(); - - public abstract Web3Builder ConfigureServices(Web3Builder web3Builder); - - public virtual void HandleException(Exception exception) - { - throw exception; - } - } -} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs similarity index 92% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs index 11faaa1a1..51d59ae07 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs @@ -1,10 +1,9 @@ using System; using System.Threading.Tasks; -using ChainSafe.Gaming; -using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.UnityPackage.UI; using UnityEngine; -namespace Scenes +namespace ChainSafe.Gaming.UnityPackage.Connection { /// /// A concrete implementation of . @@ -14,6 +13,7 @@ public class ConnectionHandler : MonoBehaviour, IConnectionHandler [SerializeField] private string gelatoApiKey = ""; [Space] [SerializeField] private ConnectModal connectModal; + // Handed in ConnectionHandlerEditor [HideInInspector] [SerializeField] private ConnectionProvider[] providers; public string GelatoApiKey => gelatoApiKey; @@ -74,7 +74,7 @@ public virtual async Task TryConnect() if (!(e is TaskCanceledException)) { connectModal.DisplayError( - $"Connecting failed, please try again\n{e.Message} (see console for more details)"); + $"Connection failed, please try again."); ConnectionProvider.HandleException(e); } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionHandler.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs new file mode 100644 index 000000000..0197afda3 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs @@ -0,0 +1,50 @@ +using System; +using System.Threading.Tasks; +using ChainSafe.Gaming.Web3.Build; +using UnityEngine; +using UnityEngine.UI; + +namespace ChainSafe.Gaming.UnityPackage.Connection +{ + /// + /// Connection Provider used for connecting to a wallet. + /// + public abstract class ConnectionProvider : MonoBehaviour, IWeb3BuilderServiceAdapter + { + /// + /// Is provider available for connection. + /// Could be platform specific or other conditions. + /// + public abstract bool IsAvailable { get; } + + /// + /// Button to connect to the wallet. + /// + [field: SerializeField] public Button ConnectButton { get; private set; } + + /// + /// Initialize Connection provider. + /// + /// Awaitable Task. + public abstract Task Initialize(); + + /// + /// Configure services for the Web3 instance. + /// This is where you add wallet connection services to . + /// + /// + /// + public abstract Web3Builder ConfigureServices(Web3Builder web3Builder); + + /// + /// Handle exception thrown during connection. + /// Different providers might handler it differently. + /// + /// Exception thrown during connection. + /// Exception thrown during connection. + public virtual void HandleException(Exception exception) + { + throw exception; + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProvider.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs similarity index 54% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs index 211d0f83b..437c94d72 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs @@ -1,14 +1,21 @@ -using System.Collections; -using System.Collections.Generic; using UnityEngine; -namespace ChainSafe.Gaming +namespace ChainSafe.Gaming.UnityPackage.Connection { + /// + /// Connection Provider Config Scriptable Object. + /// [CreateAssetMenu(menuName = "ChainSafe/Connection Provider Config", fileName = "ConnectionProviderConfig")] public class ConnectionProviderConfig : ScriptableObject { + /// + /// Name of connection provider. + /// [field: SerializeField] public string Name { get; private set; } + /// + /// Row Prefab of connection provider. + /// [field: SerializeField] public ConnectionProvider ProviderRow { get; private set; } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ConnectionProviderConfig.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ErrorPopup.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ErrorPopup.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ErrorPopup.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/ErrorPopup.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs similarity index 95% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs index 41e7807a3..12188f790 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs @@ -9,7 +9,7 @@ using ChainSafe.GamingSdk.Gelato; using Scripts.EVM.Token; -namespace ChainSafe.Gaming.UnityPackage.Common +namespace ChainSafe.Gaming.UnityPackage.Connection { /// /// Builds Instance and Login using a Wallet or a provider. @@ -31,6 +31,9 @@ public interface IConnectionHandler /// public IWeb3InitializedHandler[] Web3InitializedHandlers { get; } + /// + /// Connection Provider used to create connection. + /// public ConnectionProvider ConnectionProvider { get; } /// diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IConnectionHandler.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3BuilderServiceAdapter.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3BuilderServiceAdapter.cs similarity index 91% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3BuilderServiceAdapter.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3BuilderServiceAdapter.cs index a14bd1b30..2c9001d14 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3BuilderServiceAdapter.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3BuilderServiceAdapter.cs @@ -1,6 +1,6 @@ using ChainSafe.Gaming.Web3.Build; -namespace ChainSafe.Gaming.UnityPackage.Common +namespace ChainSafe.Gaming.UnityPackage.Connection { /// /// Provides services for building a instance. diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3BuilderServiceAdapter.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3BuilderServiceAdapter.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3BuilderServiceAdapter.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3BuilderServiceAdapter.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs similarity index 87% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs index e9c7d1436..9121b8903 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs @@ -1,4 +1,4 @@ -namespace ChainSafe.Gaming.UnityPackage.Common +namespace ChainSafe.Gaming.UnityPackage.Connection { /// /// Initialized handler used for executing logic when a web3 instance is initialized. diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/IWeb3InitializedHandler.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoadSceneOnLogin.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs similarity index 88% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoadSceneOnLogin.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs index 06d3f827e..b9c377079 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoadSceneOnLogin.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs @@ -1,8 +1,7 @@ -using ChainSafe.Gaming.UnityPackage.Common; using UnityEngine; using UnityEngine.SceneManagement; -namespace ChainSafe.Gaming.UnityPackage.Common +namespace ChainSafe.Gaming.UnityPackage.Connection { /// /// Loads scene when Web3 Instance is initialized. diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoadSceneOnLogin.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/LoadSceneOnLogin.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs similarity index 81% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs index 1ea52451e..ce1fd8e5e 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs @@ -4,8 +4,11 @@ using ChainSafe.Gaming.Web3.Evm.Wallet; using UnityEngine; -namespace ChainSafe.Gaming +namespace ChainSafe.Gaming.UnityPackage.Connection { + /// + /// Metamask connection provider used for connecting to a Metamask wallet. + /// public class MetamaskConnectionProvider : ConnectionProvider { public override bool IsAvailable => Application.platform == RuntimePlatform.WebGLPlayer && Application.isEditor == false; diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/MetamaskConnectionProvider.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs similarity index 84% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs index 754c0f147..e25580af5 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs @@ -4,8 +4,11 @@ using ChainSafe.Gaming.Web3.Evm.Wallet; using UnityEngine; -namespace ChainSafe.Gaming +namespace ChainSafe.Gaming.UnityPackage.Connection { + /// + /// WalletConnect connection provider used for connecting to a wallet using WalletConnect. + /// public class WalletConnectConnectionProvider : ConnectionProvider { [SerializeField] private WalletConnectConfigSO walletConnectConfig; diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs.meta similarity index 100% rename from Packages/io.chainsafe.web3-unity/Runtime/Common/Scripts/WalletConnectConnectionProvider.cs.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs index 40e2c894d..82eea833a 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs @@ -1,11 +1,12 @@ -using System; -using System.Collections; -using System.Collections.Generic; +using ChainSafe.Gaming.UnityPackage.Connection; using UnityEngine; using UnityEngine.UI; -namespace ChainSafe.Gaming +namespace ChainSafe.Gaming.UnityPackage.UI { + /// + /// Connection Modal prompted for connecting to a provider. + /// public class ConnectModal : MonoBehaviour { [SerializeField] private ErrorOverlay errorOverlay; @@ -24,21 +25,36 @@ private void Start() closeFromBackgroundButton.onClick.AddListener(Close); } + /// + /// Display Error. + /// + /// Error Message. public void DisplayError(string message) { errorOverlay.DisplayError(message); } + /// + /// Show Loading Overlay. + /// public void ShowLoading() { loadingOverlay.gameObject.SetActive(true); } + /// + /// Hide Loading overlay. + /// public void HideLoading() { loadingOverlay.gameObject.SetActive(false); } + /// + /// Add connection provider to the modal. + /// + /// ConnectionProvider prefab to be added. + /// Added connection provider. public ConnectionProvider AddProvider(ConnectionProvider provider) { return Instantiate(provider, providerContainer); diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs index eba3ee74a..0728725c3 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ErrorOverlay.cs @@ -5,8 +5,11 @@ using UnityEngine; using UnityEngine.UI; -namespace ChainSafe.Gaming +namespace ChainSafe.Gaming.UnityPackage.UI { + /// + /// Error overlay used for displaying error messages. + /// public class ErrorOverlay : MonoBehaviour { [SerializeField] private TextMeshProUGUI errorText; @@ -17,6 +20,10 @@ private void Start() closeButton.onClick.AddListener(Close); } + /// + /// Display error messages. + /// + /// Error message to display. public void DisplayError(string message) { gameObject.SetActive(true); @@ -24,7 +31,10 @@ public void DisplayError(string message) errorText.SetText(message); } - public void Close() + /// + /// Close error overlay. + /// + private void Close() { gameObject.SetActive(false); } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs index b82c24158..cb1fb07cb 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/LoadingOverlay.cs @@ -4,8 +4,11 @@ using UnityEngine; using UnityEngine.UI; -namespace ChainSafe.Gaming +namespace ChainSafe.Gaming.UnityPackage.UI { + /// + /// Loading overlay used for displaying a loading spinner. + /// public class LoadingOverlay : MonoBehaviour { [SerializeField] private RectTransform spinnerTransform; diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs index 380e62874..a6cbbdd5b 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/Resizer.cs @@ -1,10 +1,10 @@ -using System; -using System.Collections; -using System.Collections.Generic; using UnityEngine; -namespace ChainSafe.Gaming +namespace ChainSafe.Gaming.UnityPackage.UI { + /// + /// Resizes a rect Transform responsively/based on percentage. + /// [RequireComponent(typeof(RectTransform))] public class Resizer : MonoBehaviour { diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs index 52519efa9..2485cd1ca 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs @@ -1,9 +1,8 @@ using ChainSafe.Gaming.HyperPlay; -using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Evm.Wallet; using Microsoft.Extensions.DependencyInjection; -using Scenes; using UnityEngine; using UnityEngine.UI; diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Lootboxes/2.6.0/Lootboxes Samples/Scripts/LootboxesServicesAdapter.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Lootboxes/2.6.0/Lootboxes Samples/Scripts/LootboxesServicesAdapter.cs index 0d00d2887..b38bd1194 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Lootboxes/2.6.0/Lootboxes Samples/Scripts/LootboxesServicesAdapter.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Lootboxes/2.6.0/Lootboxes Samples/Scripts/LootboxesServicesAdapter.cs @@ -1,5 +1,5 @@ using ChainSafe.Gaming.Lootboxes.Chainlink; -using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Build; using Microsoft.Extensions.DependencyInjection; using UnityEngine; diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs index b4db38b37..c262a1d57 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs @@ -5,12 +5,11 @@ using AOT; using System.Threading.Tasks; using ChainSafe.Gaming.UnityPackage; -using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Analytics; using ChainSafe.Gaming.Web3.Build; using ChainSafe.GamingSdk.Web3Auth; using Nethereum.Hex.HexTypes; -using Scenes; using TMPro; using UnityEngine; using UnityEngine.UI; diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Prefabs/Logout.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Prefabs/Logout.cs index 9b378fa5b..da90760b5 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Prefabs/Logout.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Prefabs/Logout.cs @@ -1,8 +1,5 @@ -using System.Threading.Tasks; using ChainSafe.Gaming.UnityPackage; -using ChainSafe.Gaming.Wallets; -using ChainSafe.Gaming.UnityPackage.Common; -using Scenes; +using ChainSafe.Gaming.UnityPackage.Connection; using UnityEngine; using UnityEngine.SceneManagement; diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs index ff182bdbd..4d520887d 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using ChainSafe.Gaming; +using ChainSafe.Gaming.UnityPackage.UI; using UnityEngine; using UnityEngine.UI; diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs index 706fc29fc..1adf8a1cc 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs @@ -1,10 +1,9 @@ -using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.UnityPackage.Connection; #if UNITY_WEBGL && !UNITY_EDITOR using ChainSafe.Gaming.Web3.Evm.Wallet; using ChainSafe.Gaming.Unity.MetaMask; #endif using ChainSafe.Gaming.Web3.Build; -using Scenes; using UnityEngine; using UnityEngine.UI; diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs index 201f9bc79..f1d64c68b 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs @@ -1,8 +1,7 @@ -using ChainSafe.Gaming.UnityPackage.Common; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.WalletConnect; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Evm.Wallet; -using Scenes; using UnityEngine; using UnityEngine.UI; From eb75c7eadec11903464b17dbdb954b70269c0a21 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 17 Jul 2024 22:12:57 +0300 Subject: [PATCH 25/47] compile error fix --- .../Scripts/Connection/MetamaskConnectionProvider.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs index ce1fd8e5e..1b58e3256 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs @@ -1,7 +1,9 @@ using System.Threading.Tasks; +#if UNITY_WEBGL && !UNITY_EDITOR using ChainSafe.Gaming.Unity.MetaMask; -using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Evm.Wallet; +#endif +using ChainSafe.Gaming.Web3.Build; using UnityEngine; namespace ChainSafe.Gaming.UnityPackage.Connection @@ -22,7 +24,9 @@ public override Web3Builder ConfigureServices(Web3Builder web3Builder) { return web3Builder.Configure(services => { +#if UNITY_WEBGL && !UNITY_EDITOR services.UseMetaMask().UseWalletSigner().UseWalletTransactionExecutor(); +#endif }); } } From 8110fb580b9e22467ff994d94c4e01fdf02e0238 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 17 Jul 2024 22:29:56 +0300 Subject: [PATCH 26/47] HyperPlay platform fix and added Connect Modal scene to build settings --- .../Scripts/HyperPlayConnectionProvider.cs | 2 +- .../ProjectSettings/EditorBuildSettings.asset | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs index 8ab42ecc2..112bad78f 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs @@ -11,7 +11,7 @@ namespace ChainSafe.Gaming.HyperPlay /// public class HyperPlayConnectionProvider : ConnectionProvider { - public override bool IsAvailable => Application.isEditor || Application.platform != RuntimePlatform.Android || Application.platform != RuntimePlatform.IPhonePlayer; + public override bool IsAvailable => Application.isEditor || !Application.isMobilePlatform; public override Task Initialize() { diff --git a/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset b/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset index e9233db45..1bab6bcd8 100644 --- a/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset +++ b/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset @@ -6,25 +6,29 @@ EditorBuildSettings: serializedVersion: 2 m_Scenes: - enabled: 1 - path: Assets/Samples/web3.unity SDK Web3Auth/2.5.1/Web3.Unity Web3Auth Samples/Scenes/SampleLogin + path: Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity guid: a8a8b501e594874448546e904e2437c5 - enabled: 1 - path: Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scenes/SampleLogin + path: Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity guid: 1c1af5c5662d105498b2412267dde0df - enabled: 1 - path: Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scenes/SampleLogin + path: Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity guid: 7e829b2033fc8554eb0048ce07704f77 - enabled: 1 - path: Assets/Samples/web3.unity SDK HyperPlay/1.0.0/Web3.Unity HyperPlay Samples/Scenes/SampleLogin + path: Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity guid: a31aa87c0b8cd954bb4b14166cc257dd - enabled: 1 - path: Assets/Samples/web3.unity SDK Ramp/1.0.0/Web3.Unity Ramp Samples/SampleRampIntegration.unity + path: Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin + - Connect Modal.unity + guid: 9cc8718ed12082a4582ab037b41d4f98 + - enabled: 1 + path: Assets/Samples/web3.unity SDK Ramp/2.6.0/Ramp Samples/SampleRampIntegration.unity guid: 9583b7671e7df46028765b84323c9bf7 - enabled: 1 - path: Assets/Samples/web3.unity SDK/2.5.0/Web3.Unity Samples/Scenes/SampleMain.unity + path: Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleMain.unity guid: 516f54f8261cf44459691b7adc25e055 m_configObjects: {} From 6f685f23d9e718aef7f020515c59c79acbc1ee60 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 19 Jul 2024 16:19:36 +0300 Subject: [PATCH 27/47] first draft --- .../Scripts/HyperPlayConnectionProvider.cs | 33 +++++++++----- .../Scripts/Connection/ConnectionHandler.cs | 39 +++++++++++++++-- .../Scripts/Connection/IConnectionHandler.cs | 16 +++---- .../Connection/IWeb3InitializedHandler.cs | 4 +- .../Scripts/Connection/LoadSceneOnLogin.cs | 5 ++- .../RestorableConnectionProvider.cs | 43 +++++++++++++++++++ .../RestorableConnectionProvider.cs.meta | 11 +++++ .../StoredConnectionProviderData.cs | 27 ++++++++++++ .../StoredConnectionProviderData.cs.meta | 11 +++++ .../Runtime/Scripts/DataStorageExtensions.cs | 41 ++++++++++++++++++ .../Scripts/DataStorageExtensions.cs.meta | 11 +++++ .../LocalStorage/DataStorageExtensions.cs | 32 ++++++++++++++ 12 files changed, 248 insertions(+), 25 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs.meta create mode 100644 src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs index 112bad78f..9616b3f72 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs @@ -1,4 +1,6 @@ using System.Threading.Tasks; +using ChainSafe.Gaming.LocalStorage; +using ChainSafe.Gaming.UnityPackage; using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Evm.Wallet; @@ -9,30 +11,41 @@ namespace ChainSafe.Gaming.HyperPlay /// /// Connection provider for connecting via HyperPlay Launcher. /// - public class HyperPlayConnectionProvider : ConnectionProvider + public class HyperPlayConnectionProvider : RestorableConnectionProvider { public override bool IsAvailable => Application.isEditor || !Application.isMobilePlatform; + private bool _storedSessionAvailable; + public override Task Initialize() { return Task.CompletedTask; } - public override Web3Builder ConfigureServices(Web3Builder web3Builder) + protected override void ConfigureServices(IWeb3ServiceCollection services) { - return web3Builder.Configure(services => + var config = new HyperPlayConfig { - var config = new HyperPlayConfig - { - // RememberSession = rememberMeToggle.isOn || _storedSessionAvailable, - }; + // RememberSession = rememberMeToggle.isOn || _storedSessionAvailable, + RememberSession = true, + }; #if UNITY_WEBGL && !UNITY_EDITOR services.UseHyperPlay(config); #else - services.UseHyperPlay(config); + services.UseHyperPlay(config); #endif - services.UseWalletSigner().UseWalletTransactionExecutor(); - }); + services.UseWalletSigner().UseWalletTransactionExecutor(); + } + + public override async Task SavedSessionAvailable() + { + var data = new HyperPlayData(); + + await data.LoadOneTime(); + + _storedSessionAvailable = data.RememberSession; + + return _storedSessionAvailable; } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs index 51d59ae07..37b1e677d 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs @@ -1,6 +1,10 @@ using System; +using System.Linq; using System.Threading.Tasks; +using ChainSafe.Gaming.LocalStorage; using ChainSafe.Gaming.UnityPackage.UI; +using ChainSafe.Gaming.Web3.Build; +using Microsoft.Extensions.DependencyInjection; using UnityEngine; namespace ChainSafe.Gaming.UnityPackage.Connection @@ -8,7 +12,7 @@ namespace ChainSafe.Gaming.UnityPackage.Connection /// /// A concrete implementation of . /// - public class ConnectionHandler : MonoBehaviour, IConnectionHandler + public class ConnectionHandler : MonoBehaviour, IConnectionHandler, IWeb3BuilderServiceAdapter { [SerializeField] private string gelatoApiKey = ""; [Space] @@ -18,7 +22,6 @@ public class ConnectionHandler : MonoBehaviour, IConnectionHandler public string GelatoApiKey => gelatoApiKey; public IWeb3BuilderServiceAdapter[] Web3BuilderServiceAdapters { get; private set; } - public IWeb3InitializedHandler[] Web3InitializedHandlers { get; private set; } public ConnectionProvider ConnectionProvider { get; private set; } private void Start() @@ -33,7 +36,7 @@ protected virtual async void Initialize() { Web3BuilderServiceAdapters = GetComponents(); - Web3InitializedHandlers = GetComponents(); + await TryRestore(); foreach (var provider in providers) { @@ -53,6 +56,18 @@ protected virtual async void Initialize() } } + private async Task TryRestore() + { + var provider = await providers.OfType().GetProvider(); + + if (provider != null && await provider.SavedSessionAvailable()) + { + ConnectionProvider = provider; + + await TryConnect(); + } + } + private async void ConnectClicked() { await TryConnect(); @@ -81,8 +96,24 @@ public virtual async Task TryConnect() } finally { - connectModal.HideLoading(); + if (connectModal != null) + { + connectModal.HideLoading(); + } } } + + public Web3Builder ConfigureServices(Web3Builder web3Builder) + { + return web3Builder.Configure(services => + { + var web3InitializedHandlers = GetComponents(); + + foreach (var handler in web3InitializedHandlers) + { + services.AddSingleton(handler); + } + }); + } } } \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs index 12188f790..396c90acd 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs @@ -7,6 +7,7 @@ using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Unity; using ChainSafe.GamingSdk.Gelato; +using Microsoft.Extensions.DependencyInjection; using Scripts.EVM.Token; namespace ChainSafe.Gaming.UnityPackage.Connection @@ -26,11 +27,6 @@ public interface IConnectionHandler /// public IWeb3BuilderServiceAdapter[] Web3BuilderServiceAdapters { get; } - /// - /// All Web3 initialized handlers called when Web3 instance is initialized. - /// - public IWeb3InitializedHandler[] Web3InitializedHandlers { get; } - /// /// Connection Provider used to create connection. /// @@ -49,14 +45,16 @@ public async Task Connect() Web3Accessor.Set(web3); - OnWeb3Initialized(); + await OnWeb3Initialized(web3); } - private void OnWeb3Initialized() + private async Task OnWeb3Initialized(Web3.Web3 web3) { - foreach (var web3InitializedHandler in Web3InitializedHandlers) + var web3InitializedHandlers = web3.ServiceProvider.GetServices(); + + foreach (var web3InitializedHandler in web3InitializedHandlers) { - web3InitializedHandler.OnWeb3Initialized(); + await web3InitializedHandler.OnWeb3Initialized(); } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs index 9121b8903..b2bc3d0cf 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs @@ -1,3 +1,5 @@ +using System.Threading.Tasks; + namespace ChainSafe.Gaming.UnityPackage.Connection { /// @@ -8,6 +10,6 @@ public interface IWeb3InitializedHandler /// /// Called when Web3 Instance in is initialized. /// - public void OnWeb3Initialized(); + public Task OnWeb3Initialized(); } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs index b9c377079..e411f8115 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs @@ -1,3 +1,4 @@ +using System.Threading.Tasks; using UnityEngine; using UnityEngine.SceneManagement; @@ -15,11 +16,13 @@ public class LoadSceneOnLogin : MonoBehaviour, IWeb3InitializedHandler [SerializeField] private string sceneToLoad; - public void OnWeb3Initialized() + public Task OnWeb3Initialized() { LoginSceneBuildIndex = SceneManager.GetActiveScene().buildIndex; SceneManager.LoadSceneAsync(sceneToLoad); + + return Task.CompletedTask; } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs new file mode 100644 index 000000000..c634ceb55 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using ChainSafe.Gaming.LocalStorage; +using ChainSafe.Gaming.UnityPackage; +using ChainSafe.Gaming.UnityPackage.Connection; +using ChainSafe.Gaming.Web3.Build; + +namespace ChainSafe.Gaming +{ + public abstract class RestorableConnectionProvider : ConnectionProvider + { + public override Web3Builder ConfigureServices(Web3Builder web3Builder) + { + return web3Builder.Configure(services => + { + services.AddSingleton( + _ => new StoredConnectionProviderData + { + TypeName = GetType().AssemblyQualifiedName + }); + + ConfigureServices(services); + }); + } + + protected abstract void ConfigureServices(IWeb3ServiceCollection services); + + public abstract Task SavedSessionAvailable(); + } + + public static class RestorableConnectionProviderExtensions + { + public static async Task GetProvider(this IEnumerable providers) + { + var data = new StoredConnectionProviderData(); + + await data.LoadOneTime(); + + return providers.SingleOrDefault(p => p.GetType() == data.Type); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs.meta new file mode 100644 index 000000000..249d980e9 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 59c724203afe688468faa8bf16abe598 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs new file mode 100644 index 000000000..7f3ef84ff --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs @@ -0,0 +1,27 @@ +using System; +using System.Threading.Tasks; +using ChainSafe.Gaming.LocalStorage; +using Newtonsoft.Json; + +namespace ChainSafe.Gaming.UnityPackage.Connection +{ + public class StoredConnectionProviderData : IStorable, IWeb3InitializedHandler + { + [JsonIgnore] + public string StoragePath => "connection-provider-data.json"; + + [JsonIgnore] + public bool LoadOnInitialize => true; + + [JsonProperty] + public string TypeName { get; set; } + + [JsonIgnore] + public Type Type => string.IsNullOrEmpty(TypeName) ? null : Type.GetType(TypeName); + + public async Task OnWeb3Initialized() + { + await this.SaveOneTime(); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs.meta new file mode 100644 index 000000000..44c27a39f --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de76ec28f86532a41a12c209a313a74f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs new file mode 100644 index 000000000..d6b1ed70f --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs @@ -0,0 +1,41 @@ +using System.Collections; +using System.Collections.Generic; +using System.Threading.Tasks; +using ChainSafe.Gaming.LocalStorage; +using ChainSafe.Gaming.Unity; +using ChainSafe.Gaming.Web3.Environment; +using ChainSafe.Gaming.Web3.Unity; +using Microsoft.Extensions.DependencyInjection; +using UnityEngine; + +namespace ChainSafe.Gaming.UnityPackage +{ + public static class DataStorageExtensions + { + public static Task LoadOneTime(this TStorable storable) + where TStorable : class, IStorable + { + IServiceCollection services = new ServiceCollection() + .AddSingleton() + .AddSingleton(storable) + .AddSingleton() + .AddSingleton() + .AddSingleton(); + + return storable.LoadOneTime(services); + } + + public static Task SaveOneTime(this TStorable storable) + where TStorable : class, IStorable + { + IServiceCollection services = new ServiceCollection() + .AddSingleton() + .AddSingleton(storable) + .AddSingleton() + .AddSingleton() + .AddSingleton(); + + return storable.SaveOneTime(services); + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs.meta new file mode 100644 index 000000000..90e8433bb --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8635aa1b7a0e1e04d99fa1bfc3db4edf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs new file mode 100644 index 000000000..624b3c1cd --- /dev/null +++ b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs @@ -0,0 +1,32 @@ +using System; +using System.Threading.Tasks; +using ChainSafe.Gaming.Web3.Environment; +using Microsoft.Extensions.DependencyInjection; + +namespace ChainSafe.Gaming.LocalStorage +{ + public static class DataStorageExtensions + { + public static async Task LoadOneTime(this TStorable storable, IServiceCollection services) + where TStorable : class, IStorable + { + IServiceProvider serviceProvider = services.BuildServiceProvider(); + + DataStorage dataStorage = serviceProvider.GetService(); + + await dataStorage.Load(storable); + + return storable; + } + + public static async Task SaveOneTime(this TStorable storable, IServiceCollection services) + where TStorable : class, IStorable + { + IServiceProvider serviceProvider = services.BuildServiceProvider(); + + DataStorage dataStorage = serviceProvider.GetService(); + + await dataStorage.Save(storable); + } + } +} \ No newline at end of file From 1727559cc54b95e89c4c4b595e1800fb29c6be0b Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 19 Jul 2024 18:05:28 +0300 Subject: [PATCH 28/47] connection provider config and connection provider merged into one scriptable object, restoring session for HyperPlay working --- .../Runtime/Prefabs/HyperPlayRow.prefab | 34 +---------------- ...sset => HyperPlayConnectionProvider.asset} | 7 ++-- .../HyperPlayConnectionProvider.asset.meta} | 2 +- .../Scripts/HyperPlayConnectionProvider.cs | 1 + .../Runtime/Prefabs/Web3AuthRow.prefab | 38 +------------------ .../Web3AuthConnectionProvider.asset | 20 ++++++++++ .../Web3AuthConnectionProvider.asset.meta} | 2 +- .../Web3AuthConnectionProviderConfig.asset | 16 -------- .../Runtime/Web3AuthConnectionProvider.cs | 6 +-- .../Editor/ConnectionHandlerEditor.cs | 18 +++++---- .../Runtime/Prefabs/Connect.prefab | 9 +++-- .../Runtime/Prefabs/MetamaskRow.prefab | 34 +---------------- .../Runtime/Prefabs/WalletConnectRow.prefab | 35 +---------------- ...asset => MetamaskConnectionProvider.asset} | 8 ++-- ... => MetamaskConnectionProvider.asset.meta} | 2 +- .../WalletConnectConnectionProvider.asset | 17 +++++++++ ...alletConnectConnectionProvider.asset.meta} | 2 +- ...alletConnectConnectionProviderConfig.asset | 16 -------- .../Scripts/Connection/ConnectionHandler.cs | 21 +++++++--- .../Scripts/Connection/ConnectionProvider.cs | 11 ++++-- .../Connection/ConnectionProvider.cs.meta | 2 +- .../Connection/ConnectionProviderConfig.cs | 21 ---------- .../ConnectionProviderConfig.cs.meta | 11 ------ .../Connection/MetamaskConnectionProvider.cs | 1 + .../RestorableConnectionProvider.cs | 3 ++ .../StoredConnectionProviderData.cs | 1 + .../WalletConnectConnectionProvider.cs | 1 + .../Runtime/Scripts/UI/ConnectModal.cs | 6 +-- 28 files changed, 104 insertions(+), 241 deletions(-) rename Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/{HyperPlayConnectionProviderConfig.asset => HyperPlayConnectionProvider.asset} (55%) rename Packages/{io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta => io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProvider.asset.meta} (79%) create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset rename Packages/{io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta => io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset.meta} (79%) delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset rename Packages/io.chainsafe.web3-unity/Runtime/Resources/{MetamaskConnectionProviderConfig.asset => MetamaskConnectionProvider.asset} (52%) rename Packages/io.chainsafe.web3-unity/Runtime/Resources/{WalletConnectConnectionProviderConfig.asset.meta => MetamaskConnectionProvider.asset.meta} (79%) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset rename Packages/{io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset.meta => io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset.meta} (79%) delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs.meta diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab index a16f9a11f..afea763ee 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Prefabs/HyperPlayRow.prefab @@ -107,37 +107,5 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - insertIndex: -1 - addedObject: {fileID: 1727169539746137890} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} ---- !u!1 &8369934619212736850 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1727169539746137890 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 73b5e9380c5275043b3558f49f807100, type: 3} - m_Name: - m_EditorClassIdentifier: - k__BackingField: {fileID: 8599114313589093787} ---- !u!114 &8599114313589093787 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProvider.asset similarity index 55% rename from Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset rename to Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProvider.asset index 60b7897ce..c30bdef28 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProvider.asset @@ -9,8 +9,9 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1272c3d1812e95e408d945d25da049bb, type: 3} - m_Name: HyperPlayConnectionProviderConfig + m_Script: {fileID: 11500000, guid: 73b5e9380c5275043b3558f49f807100, type: 3} + m_Name: HyperPlayConnectionProvider m_EditorClassIdentifier: k__BackingField: HyperPlay - k__BackingField: {fileID: 1727169539746137890, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} + k__BackingField: {fileID: 8599114313589093787, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} + k__BackingField: 1 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProvider.asset.meta similarity index 79% rename from Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta rename to Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProvider.asset.meta index c7de3f2e6..751745b49 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProvider.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 15bca0e27aa9c9446b907f31a512906c +guid: 70ad5245d5b5895448ba4fd9ad57ea95 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs index 9616b3f72..937ddfdb7 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs @@ -11,6 +11,7 @@ namespace ChainSafe.Gaming.HyperPlay /// /// Connection provider for connecting via HyperPlay Launcher. /// + [CreateAssetMenu(menuName = "ChainSafe/Connection Provider/HyperPlay", fileName = nameof(HyperPlayConnectionProvider))] public class HyperPlayConnectionProvider : RestorableConnectionProvider { public override bool IsAvailable => Application.isEditor || !Application.isMobilePlatform; diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3AuthRow.prefab b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3AuthRow.prefab index aa3e84d3d..e05bc269b 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3AuthRow.prefab +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Prefabs/Web3AuthRow.prefab @@ -111,41 +111,5 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - insertIndex: -1 - addedObject: {fileID: 8841964981256285308} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} ---- !u!1 &8369934619212736850 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} ---- !u!114 &8841964981256285308 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6b435f36106e244449abb70cf6f41008, type: 3} - m_Name: - m_EditorClassIdentifier: - k__BackingField: {fileID: 8599114313589093787} - clientId: BCc0wTmuXureEzgawhUSZOWu4bgWo56sZPrxLiHQCpg5OHcNrfa44esdTS8Dm77VtmaIyjhbthdWfbLhSwf7jtU - redirectUri: torusapp://io.chainsafe.gamingsdk.sdkdemoscene/auth - network: 1 - modalPrefab: {fileID: 1060439634540712661, guid: 42c53f26848d1d54a9ffe18fae333758, type: 3} ---- !u!114 &8599114313589093787 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset new file mode 100644 index 000000000..8b79bcf9f --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b435f36106e244449abb70cf6f41008, type: 3} + m_Name: Web3AuthConnectionProvider + m_EditorClassIdentifier: + k__BackingField: Web3Auth + k__BackingField: {fileID: 8599114313589093787, guid: 163bbaaeb51883442a20ea7532888a43, type: 3} + clientId: BCc0wTmuXureEzgawhUSZOWu4bgWo56sZPrxLiHQCpg5OHcNrfa44esdTS8Dm77VtmaIyjhbthdWfbLhSwf7jtU + redirectUri: torusapp://io.chainsafe.gamingsdk.sdkdemoscene/auth + network: 1 + modalPrefab: {fileID: 1060439634540712661, guid: 42c53f26848d1d54a9ffe18fae333758, type: 3} diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset.meta similarity index 79% rename from Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta rename to Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset.meta index f65df09e0..abf411a79 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e58af3a1029796646a4a5bcc565ed4f0 +guid: 5a662f0c96c53db48b29a3aa7ab0f102 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset deleted file mode 100644 index 10cb0832f..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1272c3d1812e95e408d945d25da049bb, type: 3} - m_Name: Web3AuthConnectionProviderConfig - m_EditorClassIdentifier: - k__BackingField: Web3Auth - k__BackingField: {fileID: 8841964981256285308, guid: 163bbaaeb51883442a20ea7532888a43, type: 3} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs index eb8b84ac1..24c08815c 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -16,6 +16,7 @@ /// /// ConnectionProvider for connecting wallet via Web3Auth. /// +[CreateAssetMenu(menuName = "ChainSafe/Connection Provider/Web3Auth", fileName = nameof(Web3AuthConnectionProvider))] public class Web3AuthConnectionProvider : ConnectionProvider { [SerializeField] private string clientId; @@ -62,15 +63,10 @@ public override async Task Initialize() await _initializeTcs.Task; Debug.Log("Web3Auth Initialized Successfully."); - - // Don't allow connection before initialization. - ConnectButton.interactable = true; } #else public override Task Initialize() { - ConnectButton.interactable = true; - return Task.CompletedTask; } #endif diff --git a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs index c6d77fe42..2a950fcdd 100644 --- a/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs +++ b/Packages/io.chainsafe.web3-unity/Editor/ConnectionHandlerEditor.cs @@ -23,7 +23,7 @@ public override void OnInspectorGUI() { base.OnInspectorGUI(); - var providers = Resources.LoadAll(string.Empty); + var providers = Resources.LoadAll(string.Empty); _foldout = EditorGUILayout.Foldout(_foldout, "Connection Providers"); @@ -53,9 +53,7 @@ public override void OnInspectorGUI() foreach (var provider in providers) { - var loadedProvider = provider.ProviderRow; - - if (loadedProvider == null) + if (provider == null) { Debug.LogWarning($"Error loading {provider.Name} Provider."); @@ -64,7 +62,7 @@ public override void OnInspectorGUI() EditorGUI.BeginChangeCheck(); - bool isAvailable = availableProviders.Contains(loadedProvider); + bool isAvailable = availableProviders.Contains(provider); isAvailable = GUILayout.Toggle(isAvailable, provider.Name); @@ -74,18 +72,24 @@ public override void OnInspectorGUI() { providersProperty.InsertArrayElementAtIndex(arraySize); - providersProperty.GetArrayElementAtIndex(arraySize).objectReferenceValue = loadedProvider; + providersProperty.GetArrayElementAtIndex(arraySize).objectReferenceValue = provider; } else { - providersProperty.DeleteArrayElementAtIndex(availableProviders.IndexOf(loadedProvider)); + providersProperty.DeleteArrayElementAtIndex(availableProviders.IndexOf(provider)); } serializedObject.ApplyModifiedProperties(); return; } + + EditorGUI.BeginDisabledGroup(true); + + EditorGUILayout.ObjectField(provider, typeof(ConnectionProvider), false); + + EditorGUI.EndDisabledGroup(); } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab index f6b98fc0a..526cd21f6 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -1146,12 +1146,13 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ + autoConnectToPreviousSession: 1 connectModal: {fileID: 5955209656218357189} providers: - - {fileID: 4800578877220411311, guid: 4591cfadb2bf9824da90ebf4005728a8, type: 3} - - {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} - - {fileID: 1727169539746137890, guid: 71b112e16f898d140935553a4b33ae1f, type: 3} - - {fileID: 8841964981256285308, guid: 163bbaaeb51883442a20ea7532888a43, type: 3} + - {fileID: 11400000, guid: a15bdaf25319d6f44b48ff2159e4b7fb, type: 2} + - {fileID: 11400000, guid: 5a662f0c96c53db48b29a3aa7ab0f102, type: 2} + - {fileID: 11400000, guid: 70ad5245d5b5895448ba4fd9ad57ea95, type: 2} + - {fileID: 11400000, guid: f891ba0f7fed9084982e95c96826fcb7, type: 2} --- !u!114 &2962743025659679964 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab index 66a1b5e91..9994bb634 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/MetamaskRow.prefab @@ -107,37 +107,5 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - insertIndex: -1 - addedObject: {fileID: 4276990323382053958} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} ---- !u!1 &8369934619212736850 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} ---- !u!114 &4276990323382053958 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1b64d00084d2c544aa644a8a6010964d, type: 3} - m_Name: - m_EditorClassIdentifier: - k__BackingField: {fileID: 8599114313589093787} ---- !u!114 &8599114313589093787 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab index c2400149c..351ff46ec 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/WalletConnectRow.prefab @@ -107,38 +107,5 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - insertIndex: -1 - addedObject: {fileID: 4800578877220411311} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5fc3fb751209aae4a97201647b943503, type: 3} ---- !u!1 &8369934619212736850 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 4942797880779212655, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} ---- !u!114 &4800578877220411311 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 582efc0fde77aab43a77ee4237ba305a, type: 3} - m_Name: - m_EditorClassIdentifier: - k__BackingField: {fileID: 8599114313589093787} - walletConnectConfig: {fileID: 11400000, guid: fde7db0e37b4a884da1149e9f1999093, type: 2} ---- !u!114 &8599114313589093787 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5181835182331206566, guid: 5fc3fb751209aae4a97201647b943503, type: 3} - m_PrefabInstance: {fileID: 3512705784189120061} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8369934619212736850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProvider.asset similarity index 52% rename from Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset rename to Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProvider.asset index 409856385..051c73007 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProvider.asset @@ -9,8 +9,8 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1272c3d1812e95e408d945d25da049bb, type: 3} - m_Name: MetamaskConnectionProviderConfig + m_Script: {fileID: 11500000, guid: 1b64d00084d2c544aa644a8a6010964d, type: 3} + m_Name: MetamaskConnectionProvider m_EditorClassIdentifier: - k__BackingField: MetaMask - k__BackingField: {fileID: 4276990323382053958, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} + k__BackingField: Metamask + k__BackingField: {fileID: 8599114313589093787, guid: 1200437cb83a29c4fb63faa44cf63f0d, type: 3} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProvider.asset.meta similarity index 79% rename from Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProvider.asset.meta index 1a6bde699..1c2fc6272 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProvider.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 723743175ed10c540ae2497bde52f150 +guid: a15bdaf25319d6f44b48ff2159e4b7fb NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset new file mode 100644 index 000000000..a14609ecd --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 582efc0fde77aab43a77ee4237ba305a, type: 3} + m_Name: WalletConnectConnectionProvider + m_EditorClassIdentifier: + k__BackingField: WalletConnect + k__BackingField: {fileID: 8599114313589093787, guid: 4591cfadb2bf9824da90ebf4005728a8, type: 3} + walletConnectConfig: {fileID: 11400000, guid: fde7db0e37b4a884da1149e9f1999093, type: 2} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset.meta b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset.meta similarity index 79% rename from Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset.meta rename to Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset.meta index c29aa1981..cbee4d3c6 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset.meta +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f07bd9ab13eb4ac4288f6b20dfc1d562 +guid: f891ba0f7fed9084982e95c96826fcb7 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset deleted file mode 100644 index 3bacd7db2..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1272c3d1812e95e408d945d25da049bb, type: 3} - m_Name: WalletConnectConnectionProviderConfig - m_EditorClassIdentifier: - k__BackingField: Wallet Connect - k__BackingField: {fileID: 4800578877220411311, guid: 4591cfadb2bf9824da90ebf4005728a8, type: 3} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs index 37b1e677d..992aeb8c0 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs @@ -6,6 +6,8 @@ using ChainSafe.Gaming.Web3.Build; using Microsoft.Extensions.DependencyInjection; using UnityEngine; +using UnityEngine.Serialization; +using UnityEngine.UI; namespace ChainSafe.Gaming.UnityPackage.Connection { @@ -16,6 +18,7 @@ public class ConnectionHandler : MonoBehaviour, IConnectionHandler, IWeb3Builder { [SerializeField] private string gelatoApiKey = ""; [Space] + [SerializeField] private bool autoConnectToPreviousSession; [SerializeField] private ConnectModal connectModal; // Handed in ConnectionHandlerEditor [HideInInspector] [SerializeField] private ConnectionProvider[] providers; @@ -36,19 +39,25 @@ protected virtual async void Initialize() { Web3BuilderServiceAdapters = GetComponents(); - await TryRestore(); + if (autoConnectToPreviousSession) + { + await TryRestore(); + } foreach (var provider in providers) { if (provider != null && provider.IsAvailable) { - var instantiatedProvider = connectModal.AddProvider(provider); + Button button = connectModal.AddProvider(provider.ConnectButtonRow); + + await provider.Initialize(); - await instantiatedProvider.Initialize(); + // Don't allow connection before initialization. + button.interactable = true; - instantiatedProvider.ConnectButton.onClick.AddListener(delegate + button.onClick.AddListener(delegate { - ConnectionProvider = instantiatedProvider; + ConnectionProvider = provider; ConnectClicked(); }); @@ -60,7 +69,7 @@ private async Task TryRestore() { var provider = await providers.OfType().GetProvider(); - if (provider != null && await provider.SavedSessionAvailable()) + if (provider != null && provider.RememberSession && await provider.SavedSessionAvailable()) { ConnectionProvider = provider; diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs index 0197afda3..36d06576f 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs @@ -7,9 +7,9 @@ namespace ChainSafe.Gaming.UnityPackage.Connection { /// - /// Connection Provider used for connecting to a wallet. + /// Connection Provider Scriptable Object. /// - public abstract class ConnectionProvider : MonoBehaviour, IWeb3BuilderServiceAdapter + public abstract class ConnectionProvider : ScriptableObject, IWeb3BuilderServiceAdapter { /// /// Is provider available for connection. @@ -17,10 +17,15 @@ public abstract class ConnectionProvider : MonoBehaviour, IWeb3BuilderServiceAda /// public abstract bool IsAvailable { get; } + /// + /// Name of connection provider. + /// + [field: SerializeField] public string Name { get; private set; } + /// /// Button to connect to the wallet. /// - [field: SerializeField] public Button ConnectButton { get; private set; } + [field: SerializeField] public Button ConnectButtonRow { get; private set; } /// /// Initialize Connection provider. diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs.meta index 3439b8bb1..37d415ccb 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs.meta +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProvider.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4339c1b6fafbb934081de0b151b2de7b +guid: 1272c3d1812e95e408d945d25da049bb MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs deleted file mode 100644 index 437c94d72..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs +++ /dev/null @@ -1,21 +0,0 @@ -using UnityEngine; - -namespace ChainSafe.Gaming.UnityPackage.Connection -{ - /// - /// Connection Provider Config Scriptable Object. - /// - [CreateAssetMenu(menuName = "ChainSafe/Connection Provider Config", fileName = "ConnectionProviderConfig")] - public class ConnectionProviderConfig : ScriptableObject - { - /// - /// Name of connection provider. - /// - [field: SerializeField] public string Name { get; private set; } - - /// - /// Row Prefab of connection provider. - /// - [field: SerializeField] public ConnectionProvider ProviderRow { get; private set; } - } -} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs.meta deleted file mode 100644 index 37d415ccb..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1272c3d1812e95e408d945d25da049bb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs index 1b58e3256..9de763bb0 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/MetamaskConnectionProvider.cs @@ -11,6 +11,7 @@ namespace ChainSafe.Gaming.UnityPackage.Connection /// /// Metamask connection provider used for connecting to a Metamask wallet. /// + [CreateAssetMenu(menuName = "ChainSafe/Connection Provider/Metamask", fileName = nameof(MetamaskConnectionProvider))] public class MetamaskConnectionProvider : ConnectionProvider { public override bool IsAvailable => Application.platform == RuntimePlatform.WebGLPlayer && Application.isEditor == false; diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs index c634ceb55..cfbc3a1e7 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs @@ -5,11 +5,14 @@ using ChainSafe.Gaming.UnityPackage; using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Build; +using UnityEngine; namespace ChainSafe.Gaming { public abstract class RestorableConnectionProvider : ConnectionProvider { + [field: SerializeField] public bool RememberSession { get; private set; } + public override Web3Builder ConfigureServices(Web3Builder web3Builder) { return web3Builder.Configure(services => diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs index 7f3ef84ff..b5e72df20 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs @@ -1,6 +1,7 @@ using System; using System.Threading.Tasks; using ChainSafe.Gaming.LocalStorage; +using ChainSafe.Gaming.Web3.Core.Logout; using Newtonsoft.Json; namespace ChainSafe.Gaming.UnityPackage.Connection diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs index e25580af5..69750338a 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs @@ -9,6 +9,7 @@ namespace ChainSafe.Gaming.UnityPackage.Connection /// /// WalletConnect connection provider used for connecting to a wallet using WalletConnect. /// + [CreateAssetMenu(menuName = "ChainSafe/Connection Provider/Wallet Connect", fileName = nameof(WalletConnectConnectionProvider))] public class WalletConnectConnectionProvider : ConnectionProvider { [SerializeField] private WalletConnectConfigSO walletConnectConfig; diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs index 82eea833a..2f4b0973f 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs @@ -53,11 +53,11 @@ public void HideLoading() /// /// Add connection provider to the modal. /// - /// ConnectionProvider prefab to be added. + /// Button row prefab for connection. /// Added connection provider. - public ConnectionProvider AddProvider(ConnectionProvider provider) + public Button AddProvider(Button buttonPrefab) { - return Instantiate(provider, providerContainer); + return Instantiate(buttonPrefab, providerContainer); } private void Close() From 354c75f7fe4f8bfc79d7ac0ed44f49ddd319ca1e Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 19 Jul 2024 19:54:14 +0300 Subject: [PATCH 29/47] logout and missing changes from previous commit --- .../StoredConnectionProviderData.cs | 9 +++++- .../Runtime/Scripts/DataStorageExtensions.cs | 28 +++++++++---------- .../LocalStorage/DataStorageExtensions.cs | 10 +++++++ .../Scenes/SampleLogin - Connect Modal.unity | 8 +++--- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs index b5e72df20..a87099a6f 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs @@ -6,7 +6,7 @@ namespace ChainSafe.Gaming.UnityPackage.Connection { - public class StoredConnectionProviderData : IStorable, IWeb3InitializedHandler + public class StoredConnectionProviderData : IStorable, IWeb3InitializedHandler, ILogoutHandler { [JsonIgnore] public string StoragePath => "connection-provider-data.json"; @@ -24,5 +24,12 @@ public async Task OnWeb3Initialized() { await this.SaveOneTime(); } + + public Task OnLogout() + { + this.ClearOneTime(); + + return Task.CompletedTask; + } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs index d6b1ed70f..6028578c8 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs @@ -1,12 +1,9 @@ -using System.Collections; -using System.Collections.Generic; using System.Threading.Tasks; using ChainSafe.Gaming.LocalStorage; using ChainSafe.Gaming.Unity; using ChainSafe.Gaming.Web3.Environment; using ChainSafe.Gaming.Web3.Unity; using Microsoft.Extensions.DependencyInjection; -using UnityEngine; namespace ChainSafe.Gaming.UnityPackage { @@ -15,27 +12,30 @@ public static class DataStorageExtensions public static Task LoadOneTime(this TStorable storable) where TStorable : class, IStorable { - IServiceCollection services = new ServiceCollection() - .AddSingleton() - .AddSingleton(storable) - .AddSingleton() - .AddSingleton() - .AddSingleton(); - - return storable.LoadOneTime(services); + return storable.LoadOneTime(DataStorageDependencies(storable)); } public static Task SaveOneTime(this TStorable storable) where TStorable : class, IStorable { - IServiceCollection services = new ServiceCollection() + return storable.SaveOneTime(DataStorageDependencies(storable)); + } + + public static void ClearOneTime(this TStorable storable) + where TStorable : class, IStorable + { + storable.ClearOneTime(DataStorageDependencies(storable)); + } + + private static IServiceCollection DataStorageDependencies(TStorable storable) + where TStorable : class, IStorable + { + return new ServiceCollection() .AddSingleton() .AddSingleton(storable) .AddSingleton() .AddSingleton() .AddSingleton(); - - return storable.SaveOneTime(services); } } } diff --git a/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs index 624b3c1cd..e27c47fb3 100644 --- a/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs +++ b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs @@ -28,5 +28,15 @@ public static async Task SaveOneTime(this TStorable storable, IServic await dataStorage.Save(storable); } + + public static void ClearOneTime(this TStorable storable, IServiceCollection services) + where TStorable : class, IStorable + { + IServiceProvider serviceProvider = services.BuildServiceProvider(); + + DataStorage dataStorage = serviceProvider.GetService(); + + dataStorage.Clear(storable); + } } } \ No newline at end of file diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity index 640c5e49a..5fa64c4f3 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -901,10 +901,10 @@ RectTransform: - {fileID: 199374705475579680} m_Father: {fileID: 5727883533759626018} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 150, y: -37.5} + m_SizeDelta: {x: 300, y: 75} m_Pivot: {x: 0.5, y: 0.5} --- !u!1660057539 &9223372036854775807 SceneRoots: From e8b8ed2946d598696b289d878e9a191f4991288f Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 19 Jul 2024 20:02:28 +0300 Subject: [PATCH 30/47] logout error fix --- .../Runtime/Scripts/Connection/RestorableConnectionProvider.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs index cfbc3a1e7..9cca2ffd3 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs @@ -5,6 +5,7 @@ using ChainSafe.Gaming.UnityPackage; using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3.Build; +using ChainSafe.Gaming.Web3.Core.Logout; using UnityEngine; namespace ChainSafe.Gaming @@ -17,7 +18,7 @@ public override Web3Builder ConfigureServices(Web3Builder web3Builder) { return web3Builder.Configure(services => { - services.AddSingleton( + services.AddSingleton( _ => new StoredConnectionProviderData { TypeName = GetType().AssemblyQualifiedName From 81f6a979e2acf723e111e1c76a1e1adcf255cdd2 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Sun, 21 Jul 2024 01:07:23 +0300 Subject: [PATCH 31/47] UI flow fixed for Restore and removed LoginProviders --- .../Runtime/Prefabs/Connect.prefab | 1598 +++++++++-------- .../Scripts/Connection/ConnectionHandler.cs | 95 +- .../Connection/ConnectionHandlerExtensions.cs | 23 + .../ConnectionHandlerExtensions.cs.meta | 3 + .../Scripts/Connection/IConnectionHandler.cs | 37 +- .../RestorableConnectionProvider.cs | 12 - .../Runtime/Scripts/UI/ConnectModal.cs | 87 +- .../Scripts/HyperPlayLoginProvider.cs | 63 - .../Scripts/HyperPlayLoginProvider.cs.meta | 11 - .../Scripts/Web3AuthLoginProvider.cs | 195 -- .../Scripts/Web3AuthLoginProvider.cs.meta | 11 - .../Scenes/SampleLogin - Connect Modal.unity | 105 +- .../Scripts/Scenes/ConnectToWallet.cs | 39 +- .../Scripts/Scenes/MetaMaskLoginProvider.cs | 43 - .../Scenes/MetaMaskLoginProvider.cs.meta | 11 - .../Scenes/WalletConnectLoginProvider.cs | 54 - .../Scenes/WalletConnectLoginProvider.cs.meta | 11 - 17 files changed, 1070 insertions(+), 1328 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab index 526cd21f6..7da593223 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab +++ b/Packages/io.chainsafe.web3-unity/Runtime/Prefabs/Connect.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &858375910881990934 +--- !u!1 &512907245045981047 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,52 +8,119 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1434635570019924198} - - component: {fileID: 6488158042095282669} + - component: {fileID: 8264395254030072333} + - component: {fileID: 1241082496184572803} + - component: {fileID: 1188754484944043895} + - component: {fileID: 4067841252476219871} m_Layer: 5 - m_Name: Error + m_Name: Background m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1434635570019924198 + m_IsActive: 1 +--- !u!224 &8264395254030072333 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 858375910881990934} + m_GameObject: {fileID: 512907245045981047} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1175272198045419377} - - {fileID: 5635724673564464309} - - {fileID: 5065669832710481866} - m_Father: {fileID: 1727674147626260063} + m_Children: [] + m_Father: {fileID: 2582193404757431644} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &6488158042095282669 +--- !u!222 &1241082496184572803 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 512907245045981047} + m_CullTransparentMesh: 1 +--- !u!114 &1188754484944043895 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 858375910881990934} + m_GameObject: {fileID: 512907245045981047} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c8e1efb33f5231a4ca01864cc2c7f836, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4067841252476219871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 512907245045981047} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: - errorText: {fileID: 744602821817686934} - closeButton: {fileID: 3312676026106168536} ---- !u!1 &1095526093096085220 + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1188754484944043895} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &577819352860301686 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -61,66 +128,69 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5412364599528845662} - - component: {fileID: 5400396181300235978} - - component: {fileID: 5715795542608107382} + - component: {fileID: 3537729594848037028} + - component: {fileID: 755072316443981909} + - component: {fileID: 351463523104216806} m_Layer: 5 - m_Name: Spinner + m_Name: Header m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &5412364599528845662 +--- !u!224 &3537729594848037028 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1095526093096085220} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 577819352860301686} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5464612045836999735} + m_Children: + - {fileID: 2285552788123290192} + - {fileID: 4137927879619495531} + - {fileID: 9150892615562685356} + m_Father: {fileID: 6776356280780232000} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.35, y: 0.35} - m_AnchorMax: {x: 0.65, y: 0.65} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -100, y: -100} + m_AnchorMin: {x: 0, y: 0.8} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 72.5} + m_SizeDelta: {x: 0, y: 155} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5400396181300235978 +--- !u!222 &755072316443981909 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1095526093096085220} + m_GameObject: {fileID: 577819352860301686} m_CullTransparentMesh: 1 ---- !u!114 &5715795542608107382 +--- !u!114 &351463523104216806 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1095526093096085220} + m_GameObject: {fileID: 577819352860301686} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 0.28235295, a: 1} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 42cfe2a53c45b954b9f91b5db202b300, type: 3} - m_Type: 0 - m_PreserveAspect: 1 + m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} + m_Type: 1 + m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 @@ -128,7 +198,102 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1152248004544011840 +--- !u!1 &738387638706958224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2582193404757431644} + m_Layer: 5 + m_Name: Modal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2582193404757431644 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 738387638706958224} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8264395254030072333} + - {fileID: 6548670286764578535} + m_Father: {fileID: 6126508098153006505} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1043886997416115567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6776356280780232000} + - component: {fileID: 1188601432264281169} + m_Layer: 5 + m_Name: Column + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6776356280780232000 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1043886997416115567} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3537729594848037028} + - {fileID: 2367522428583027584} + m_Father: {fileID: 7233684158117536303} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 375, y: 0} + m_SizeDelta: {x: 750, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1188601432264281169 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1043886997416115567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 750 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &1188038593750819853 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -136,9 +301,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7448651822848397120} - - component: {fileID: 2861151914375929257} - - component: {fileID: 4677673153104425569} + - component: {fileID: 3846267152512198228} + - component: {fileID: 4513424034595775594} + - component: {fileID: 4532545662664039242} m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged @@ -146,40 +311,40 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &7448651822848397120 +--- !u!224 &3846267152512198228 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1152248004544011840} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 1188038593750819853} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 6732399563691960325} + m_Father: {fileID: 3148506027711315752} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 0.85, y: 1} - m_AnchoredPosition: {x: -37.5, y: -1} - m_SizeDelta: {x: -75, y: -2} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 288, y: -45.110016} + m_SizeDelta: {x: 526, y: 40.22003} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2861151914375929257 +--- !u!222 &4513424034595775594 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1152248004544011840} + m_GameObject: {fileID: 1188038593750819853} m_CullTransparentMesh: 1 ---- !u!114 &4677673153104425569 +--- !u!114 &4532545662664039242 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1152248004544011840} + m_GameObject: {fileID: 1188038593750819853} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -193,17 +358,17 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Connect + m_text: Error Text m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} - m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4282974207 - m_fontColor: {r: 1, g: 1, b: 0.28235295, a: 1} + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -220,13 +385,13 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 54 + m_fontSize: 36 m_fontSizeBase: 36 m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 46 - m_fontSizeMax: 54 - m_fontStyle: 1 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 m_HorizontalAlignment: 2 m_VerticalAlignment: 512 m_textAlignment: 65535 @@ -262,7 +427,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &1429021388470255031 +--- !u!1 &1205454551981608007 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -270,69 +435,103 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5065669832710481866} - - component: {fileID: 307917436983963069} - - component: {fileID: 3134920096731298618} - - component: {fileID: 3221666810651607518} - - component: {fileID: 1216389327216043614} + - component: {fileID: 5410795088685671119} m_Layer: 5 - m_Name: Content + m_Name: Overlays m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &5065669832710481866 +--- !u!224 &5410795088685671119 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1429021388470255031} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 1205454551981608007} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 5562760844960939568} - m_Father: {fileID: 1434635570019924198} + - {fileID: 5658499974514101114} + - {fileID: 7402727736623120682} + m_Father: {fileID: 6126508098153006505} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.35, y: 0} - m_AnchorMax: {x: 0.65, y: 0.65} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -611.77997} - m_Pivot: {x: 0.5, y: 1} ---- !u!222 &307917436983963069 + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1221867210673696474 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2285552788123290192} + - component: {fileID: 8373195595011448997} + - component: {fileID: 8305700020424572571} + m_Layer: 5 + m_Name: Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2285552788123290192 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1221867210673696474} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3537729594848037028} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.25, y: 1} + m_AnchoredPosition: {x: 37.5, y: -12.5} + m_SizeDelta: {x: -75, y: -25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8373195595011448997 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1429021388470255031} + m_GameObject: {fileID: 1221867210673696474} m_CullTransparentMesh: 1 ---- !u!114 &3134920096731298618 +--- !u!114 &8305700020424572571 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1429021388470255031} + m_GameObject: {fileID: 1221867210673696474} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.19215687, g: 0.21568628, b: 0.16862746, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: c7ee9441838f964469b354b1c18bb60f, type: 3} - m_Type: 1 - m_PreserveAspect: 0 + m_Sprite: {fileID: 21300000, guid: 1d020f23af32ae54b9982fd730d37193, type: 3} + m_Type: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 @@ -340,284 +539,76 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &3221666810651607518 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1429021388470255031} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 25 - m_Right: 25 - m_Top: 25 - m_Bottom: 25 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &1216389327216043614 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1429021388470255031} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!1 &2237341416548017329 -GameObject: +--- !u!1 &1817785451658648242 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7745417804556379745} - - component: {fileID: 4032498525751300840} + - component: {fileID: 3148506027711315752} + - component: {fileID: 3678026631223233634} + - component: {fileID: 5370350952671458875} + - component: {fileID: 1227879627953770395} + - component: {fileID: 7738653063657147596} m_Layer: 5 - m_Name: Column - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7745417804556379745 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2237341416548017329} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6732399563691960325} - - {fileID: 927670855158962907} - m_Father: {fileID: 6558448801438321956} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &4032498525751300840 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2237341416548017329} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 750 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &3620063580313004822 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5488325748173676434} - - component: {fileID: 5791888603397280985} - - component: {fileID: 6576779523520890522} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5488325748173676434 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3620063580313004822} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5464612045836999735} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5791888603397280985 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3620063580313004822} - m_CullTransparentMesh: 1 ---- !u!114 &6576779523520890522 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3620063580313004822} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &3877765966216603309 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1727674147626260063} - m_Layer: 5 - m_Name: Overlays + m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1727674147626260063 +--- !u!224 &3148506027711315752 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3877765966216603309} + m_GameObject: {fileID: 1817785451658648242} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 5464612045836999735} - - {fileID: 1434635570019924198} - m_Father: {fileID: 6329436153274430458} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &3895911955368965336 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 850444260342609506} - - component: {fileID: 4082656798130106691} - - component: {fileID: 4672817495575154206} - - component: {fileID: 8282516275078844245} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &850444260342609506 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6329436153274430458} + - {fileID: 3846267152512198228} + m_Father: {fileID: 7402727736623120682} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMin: {x: 0.35, y: 0} + m_AnchorMax: {x: 0.65, y: 0.65} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4082656798130106691 + m_SizeDelta: {x: 0, y: -611.77997} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3678026631223233634 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} + m_GameObject: {fileID: 1817785451658648242} m_CullTransparentMesh: 1 ---- !u!114 &4672817495575154206 +--- !u!114 &5370350952671458875 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} + m_GameObject: {fileID: 1817785451658648242} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0} + m_Color: {r: 0.19215687, g: 0.21568628, b: 0.16862746, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 + m_Sprite: {fileID: 21300000, guid: c7ee9441838f964469b354b1c18bb60f, type: 3} + m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -626,127 +617,47 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8282516275078844245 +--- !u!114 &1227879627953770395 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895911955368965336} + m_GameObject: {fileID: 1817785451658648242} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} m_Name: m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 4672817495575154206} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &4538423631168186023 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5635724673564464309} - - component: {fileID: 6124791464915302979} - - component: {fileID: 5311402912615556782} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5635724673564464309 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4538423631168186023} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3634766939270035496} - m_Father: {fileID: 1434635570019924198} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.35, y: 0.65} - m_AnchorMax: {x: 0.65, y: 0.725} - m_AnchoredPosition: {x: 0, y: -2.5} - m_SizeDelta: {x: 0, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6124791464915302979 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4538423631168186023} - m_CullTransparentMesh: 1 ---- !u!114 &5311402912615556782 + m_Padding: + m_Left: 25 + m_Right: 25 + m_Top: 25 + m_Bottom: 25 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &7738653063657147596 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4538423631168186023} + m_GameObject: {fileID: 1817785451658648242} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19215687, g: 0.21568628, b: 0.16862746, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5282376474319179916 + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &2435058774571067995 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -754,11 +665,11 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 927670855158962907} - - component: {fileID: 6933173120826074429} - - component: {fileID: 8205949823160346083} - - component: {fileID: 8031514570600876421} - - component: {fileID: 742992652230266778} + - component: {fileID: 2367522428583027584} + - component: {fileID: 1174318938465744890} + - component: {fileID: 3884808336370815879} + - component: {fileID: 2108071871888812039} + - component: {fileID: 3862021772193567368} m_Layer: 5 m_Name: Container m_TagString: Untagged @@ -766,32 +677,32 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &927670855158962907 +--- !u!224 &2367522428583027584 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 2435058774571067995} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 7745417804556379745} + m_Father: {fileID: 6776356280780232000} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} m_Pivot: {x: 0.5, y: 1} ---- !u!114 &6933173120826074429 +--- !u!114 &1174318938465744890 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 2435058774571067995} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -815,13 +726,13 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8205949823160346083 +--- !u!114 &3884808336370815879 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 2435058774571067995} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} @@ -841,13 +752,13 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!114 &8031514570600876421 +--- !u!114 &2108071871888812039 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 2435058774571067995} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} @@ -855,15 +766,15 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 ---- !u!222 &742992652230266778 +--- !u!222 &3862021772193567368 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5282376474319179916} + m_GameObject: {fileID: 2435058774571067995} m_CullTransparentMesh: 1 ---- !u!1 &5924577586993790483 +--- !u!1 &2848399091128474601 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -871,69 +782,66 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6732399563691960325} - - component: {fileID: 4102446605622547045} - - component: {fileID: 7091605519317671907} + - component: {fileID: 699057321551839701} + - component: {fileID: 4321378254350993253} + - component: {fileID: 8894999184897913203} m_Layer: 5 - m_Name: Header + m_Name: Spinner m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6732399563691960325 +--- !u!224 &699057321551839701 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5924577586993790483} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 2848399091128474601} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7659673790302877183} - - {fileID: 7448651822848397120} - - {fileID: 1432415783519671661} - m_Father: {fileID: 7745417804556379745} + m_Children: [] + m_Father: {fileID: 5658499974514101114} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.8} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 72.5} - m_SizeDelta: {x: 0, y: 155} + m_AnchorMin: {x: 0.35, y: 0.35} + m_AnchorMax: {x: 0.65, y: 0.65} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -100, y: -100} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4102446605622547045 +--- !u!222 &4321378254350993253 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5924577586993790483} + m_GameObject: {fileID: 2848399091128474601} m_CullTransparentMesh: 1 ---- !u!114 &7091605519317671907 +--- !u!114 &8894999184897913203 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5924577586993790483} + m_GameObject: {fileID: 2848399091128474601} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1} + m_Color: {r: 1, g: 1, b: 0.28235295, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} - m_Type: 1 - m_PreserveAspect: 0 + m_Sprite: {fileID: 21300000, guid: 42cfe2a53c45b954b9f91b5db202b300, type: 3} + m_Type: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 @@ -941,7 +849,7 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6033532184202397071 +--- !u!1 &2922682494248757570 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -949,9 +857,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5562760844960939568} - - component: {fileID: 1019722780424375553} - - component: {fileID: 744602821817686934} + - component: {fileID: 4137927879619495531} + - component: {fileID: 5267662959952197333} + - component: {fileID: 6568067007841187765} m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged @@ -959,40 +867,40 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &5562760844960939568 +--- !u!224 &4137927879619495531 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6033532184202397071} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 2922682494248757570} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 5065669832710481866} + m_Father: {fileID: 3537729594848037028} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 288, y: -45.110016} - m_SizeDelta: {x: 526, y: 40.22003} + m_AnchorMin: {x: 0.25, y: 0} + m_AnchorMax: {x: 0.85, y: 1} + m_AnchoredPosition: {x: -37.5, y: -1} + m_SizeDelta: {x: -75, y: -2} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1019722780424375553 +--- !u!222 &5267662959952197333 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6033532184202397071} + m_GameObject: {fileID: 2922682494248757570} m_CullTransparentMesh: 1 ---- !u!114 &744602821817686934 +--- !u!114 &6568067007841187765 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6033532184202397071} + m_GameObject: {fileID: 2922682494248757570} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -1006,17 +914,17 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Error Text + m_text: Connect m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} + m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} + rgba: 4282974207 + m_fontColor: {r: 1, g: 1, b: 0.28235295, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -1033,13 +941,13 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 36 + m_fontSize: 54 m_fontSizeBase: 36 m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 + m_enableAutoSizing: 1 + m_fontSizeMin: 46 + m_fontSizeMax: 54 + m_fontStyle: 1 m_HorizontalAlignment: 2 m_VerticalAlignment: 512 m_textAlignment: 65535 @@ -1075,98 +983,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &6036957702279409077 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6329436153274430458} - - component: {fileID: 5955209656218357189} - - component: {fileID: 418606618353359064} - - component: {fileID: 2962743025659679964} - m_Layer: 5 - m_Name: Connect - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6329436153274430458 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6036957702279409077} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 850444260342609506} - - {fileID: 577935142268829008} - - {fileID: 1727674147626260063} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &5955209656218357189 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6036957702279409077} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8e7439d940c02d848aad5707169fe785, type: 3} - m_Name: - m_EditorClassIdentifier: - errorOverlay: {fileID: 6488158042095282669} - loadingOverlay: {fileID: 3073663067520950825} - closeButton: {fileID: 2547221875300260690} - closeFromBackgroundButton: {fileID: 8282516275078844245} - providerContainer: {fileID: 927670855158962907} ---- !u!114 &418606618353359064 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6036957702279409077} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b5a2f51f95094c949a28c71dc8658551, type: 3} - m_Name: - m_EditorClassIdentifier: - gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ - autoConnectToPreviousSession: 1 - connectModal: {fileID: 5955209656218357189} - providers: - - {fileID: 11400000, guid: a15bdaf25319d6f44b48ff2159e4b7fb, type: 2} - - {fileID: 11400000, guid: 5a662f0c96c53db48b29a3aa7ab0f102, type: 2} - - {fileID: 11400000, guid: 70ad5245d5b5895448ba4fd9ad57ea95, type: 2} - - {fileID: 11400000, guid: f891ba0f7fed9084982e95c96826fcb7, type: 2} ---- !u!114 &2962743025659679964 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6036957702279409077} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} - m_Name: - m_EditorClassIdentifier: - sceneToLoad: SampleMain ---- !u!1 &6095527205806428435 +--- !u!1 &4379674661018673339 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1174,9 +991,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3634766939270035496} - - component: {fileID: 7581207110789186895} - - component: {fileID: 9169908938101243680} + - component: {fileID: 3150670909374883035} + - component: {fileID: 4928035416425811926} + - component: {fileID: 1490847247652513629} m_Layer: 5 m_Name: Icon m_TagString: Untagged @@ -1184,40 +1001,40 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &3634766939270035496 +--- !u!224 &3150670909374883035 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6095527205806428435} + m_GameObject: {fileID: 4379674661018673339} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 5635724673564464309} + m_Father: {fileID: 373718883060701317} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: -7.5} m_SizeDelta: {x: 0, y: -15} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7581207110789186895 +--- !u!222 &4928035416425811926 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6095527205806428435} + m_GameObject: {fileID: 4379674661018673339} m_CullTransparentMesh: 1 ---- !u!114 &9169908938101243680 +--- !u!114 &1490847247652513629 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6095527205806428435} + m_GameObject: {fileID: 4379674661018673339} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -1241,59 +1058,7 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &6406804929541681753 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5464612045836999735} - - component: {fileID: 3073663067520950825} - m_Layer: 5 - m_Name: Loading - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &5464612045836999735 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6406804929541681753} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5488325748173676434} - - {fileID: 5412364599528845662} - m_Father: {fileID: 1727674147626260063} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3073663067520950825 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6406804929541681753} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7659d83bbcad93b4e9eae4bb0dfdeb48, type: 3} - m_Name: - m_EditorClassIdentifier: - spinnerTransform: {fileID: 5412364599528845662} - spinSpeed: 1 ---- !u!1 &6964812571422519759 +--- !u!1 &6511985562013916106 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1301,77 +1066,75 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6558448801438321956} - - component: {fileID: 6085279580583425317} - - component: {fileID: 199958988756034151} + - component: {fileID: 373718883060701317} + - component: {fileID: 3823019378438245182} + - component: {fileID: 7913664256379380473} m_Layer: 5 - m_Name: Content + m_Name: Header m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6558448801438321956 +--- !u!224 &373718883060701317 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6964812571422519759} + m_GameObject: {fileID: 6511985562013916106} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 7745417804556379745} - m_Father: {fileID: 577935142268829008} + - {fileID: 3150670909374883035} + m_Father: {fileID: 7402727736623120682} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.85} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &6085279580583425317 -MonoBehaviour: + m_AnchorMin: {x: 0.35, y: 0.65} + m_AnchorMax: {x: 0.65, y: 0.725} + m_AnchoredPosition: {x: 0, y: -2.5} + m_SizeDelta: {x: 0, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3823019378438245182 +CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6964812571422519759} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 4 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &199958988756034151 + m_GameObject: {fileID: 6511985562013916106} + m_CullTransparentMesh: 1 +--- !u!114 &7913664256379380473 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6964812571422519759} + m_GameObject: {fileID: 6511985562013916106} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!1 &7540885698258229545 + m_Material: {fileID: 0} + m_Color: {r: 0.19215687, g: 0.21568628, b: 0.16862746, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bcaa955798cb6da4f9302a97182bed1d, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6633790788666939123 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1379,35 +1142,74 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 577935142268829008} + - component: {fileID: 820951878307977336} + - component: {fileID: 2250762981425675227} + - component: {fileID: 173910432137772528} m_Layer: 5 - m_Name: Modal + m_Name: Background m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &577935142268829008 +--- !u!224 &820951878307977336 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7540885698258229545} + m_GameObject: {fileID: 6633790788666939123} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6558448801438321956} - m_Father: {fileID: 6329436153274430458} + m_Children: [] + m_Father: {fileID: 5658499974514101114} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0.15} - m_AnchorMax: {x: 0.75, y: 0.85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &7674483670752238931 +--- !u!222 &2250762981425675227 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6633790788666939123} + m_CullTransparentMesh: 1 +--- !u!114 &173910432137772528 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6633790788666939123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6744825550368220818 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1415,10 +1217,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1175272198045419377} - - component: {fileID: 3850686875445404471} - - component: {fileID: 5995437016800862059} - - component: {fileID: 3312676026106168536} + - component: {fileID: 4844446496924155349} + - component: {fileID: 639758132807589529} + - component: {fileID: 5509030987313802288} + - component: {fileID: 2314696928439614235} m_Layer: 5 m_Name: Background m_TagString: Untagged @@ -1426,40 +1228,40 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1175272198045419377 +--- !u!224 &4844446496924155349 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7674483670752238931} + m_GameObject: {fileID: 6744825550368220818} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1434635570019924198} + m_Father: {fileID: 7402727736623120682} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3850686875445404471 +--- !u!222 &639758132807589529 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7674483670752238931} + m_GameObject: {fileID: 6744825550368220818} m_CullTransparentMesh: 1 ---- !u!114 &5995437016800862059 +--- !u!114 &5509030987313802288 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7674483670752238931} + m_GameObject: {fileID: 6744825550368220818} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -1483,13 +1285,13 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &3312676026106168536 +--- !u!114 &2314696928439614235 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7674483670752238931} + m_GameObject: {fileID: 6744825550368220818} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -1523,11 +1325,11 @@ MonoBehaviour: m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 5995437016800862059} + m_TargetGraphic: {fileID: 5509030987313802288} m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &7738577535433790659 +--- !u!1 &7140089412661231909 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1535,74 +1337,77 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7659673790302877183} - - component: {fileID: 4837691293256020319} - - component: {fileID: 3610818540548522733} + - component: {fileID: 7233684158117536303} + - component: {fileID: 6033898491350019982} + - component: {fileID: 440031099918463234} m_Layer: 5 - m_Name: Logo + m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &7659673790302877183 +--- !u!224 &7233684158117536303 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7738577535433790659} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 7140089412661231909} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6732399563691960325} + m_Children: + - {fileID: 6776356280780232000} + m_Father: {fileID: 6548670286764578535} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 37.5, y: -12.5} - m_SizeDelta: {x: -75, y: -25} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4837691293256020319 -CanvasRenderer: + m_AnchorMax: {x: 1, y: 0.85} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -210, y: -642.60004} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &6033898491350019982 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7738577535433790659} - m_CullTransparentMesh: 1 ---- !u!114 &3610818540548522733 + m_GameObject: {fileID: 7140089412661231909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &440031099918463234 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7738577535433790659} + m_GameObject: {fileID: 7140089412661231909} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 1d020f23af32ae54b9982fd730d37193, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8997209791918168290 + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &7289878389501023211 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1610,10 +1415,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1432415783519671661} - - component: {fileID: 4867007146758828141} - - component: {fileID: 3537795417714461763} - - component: {fileID: 2547221875300260690} + - component: {fileID: 9150892615562685356} + - component: {fileID: 255834997440539906} + - component: {fileID: 1547227138247185770} + - component: {fileID: 2179147160295533171} m_Layer: 5 m_Name: CloseButton m_TagString: Untagged @@ -1621,40 +1426,40 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1432415783519671661 +--- !u!224 &9150892615562685356 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8997209791918168290} + m_GameObject: {fileID: 7289878389501023211} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 6732399563691960325} + m_Father: {fileID: 3537729594848037028} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.85, y: 0.5} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -50.000008, y: -50} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4867007146758828141 +--- !u!222 &255834997440539906 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8997209791918168290} + m_GameObject: {fileID: 7289878389501023211} m_CullTransparentMesh: 1 ---- !u!114 &3537795417714461763 +--- !u!114 &1547227138247185770 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8997209791918168290} + m_GameObject: {fileID: 7289878389501023211} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -1678,13 +1483,13 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &2547221875300260690 +--- !u!114 &2179147160295533171 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8997209791918168290} + m_GameObject: {fileID: 7289878389501023211} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -1718,7 +1523,270 @@ MonoBehaviour: m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 3537795417714461763} + m_TargetGraphic: {fileID: 1547227138247185770} m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &7521736384250951132 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5658499974514101114} + - component: {fileID: 5980002253212460427} + m_Layer: 5 + m_Name: Loading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5658499974514101114 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7521736384250951132} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 820951878307977336} + - {fileID: 699057321551839701} + m_Father: {fileID: 5410795088685671119} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5980002253212460427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7521736384250951132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7659d83bbcad93b4e9eae4bb0dfdeb48, type: 3} + m_Name: + m_EditorClassIdentifier: + spinnerTransform: {fileID: 699057321551839701} + spinSpeed: 1 +--- !u!1 &8285523104754931762 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6548670286764578535} + m_Layer: 5 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6548670286764578535 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8285523104754931762} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7233684158117536303} + m_Father: {fileID: 2582193404757431644} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.25, y: 0.15} + m_AnchorMax: {x: 0.75, y: 0.85} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8796252048503242651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6126508098153006505} + - component: {fileID: 4111725390650102376} + - component: {fileID: 4832088867168672124} + - component: {fileID: 7295392965609606114} + - component: {fileID: 4706621120835174763} + m_Layer: 5 + m_Name: Connect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6126508098153006505 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796252048503242651} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2582193404757431644} + - {fileID: 5410795088685671119} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &4111725390650102376 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796252048503242651} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &4832088867168672124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796252048503242651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &7295392965609606114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796252048503242651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &4706621120835174763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796252048503242651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e7439d940c02d848aad5707169fe785, type: 3} + m_Name: + m_EditorClassIdentifier: + errorOverlay: {fileID: 954457909439498470} + loadingOverlay: {fileID: 5980002253212460427} + closeButton: {fileID: 2179147160295533171} + closeFromBackgroundButton: {fileID: 4067841252476219871} + modalContainer: {fileID: 2582193404757431644} + providerContainer: {fileID: 2367522428583027584} +--- !u!1 &8811348651926342057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7402727736623120682} + - component: {fileID: 954457909439498470} + m_Layer: 5 + m_Name: Error + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7402727736623120682 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8811348651926342057} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4844446496924155349} + - {fileID: 373718883060701317} + - {fileID: 3148506027711315752} + m_Father: {fileID: 5410795088685671119} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &954457909439498470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8811348651926342057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8e1efb33f5231a4ca01864cc2c7f836, type: 3} + m_Name: + m_EditorClassIdentifier: + errorText: {fileID: 4532545662664039242} + closeButton: {fileID: 2314696928439614235} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs index 992aeb8c0..7215f77ca 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs @@ -1,13 +1,9 @@ -using System; -using System.Linq; +using System.Linq; using System.Threading.Tasks; -using ChainSafe.Gaming.LocalStorage; -using ChainSafe.Gaming.UnityPackage.UI; using ChainSafe.Gaming.Web3.Build; using Microsoft.Extensions.DependencyInjection; using UnityEngine; -using UnityEngine.Serialization; -using UnityEngine.UI; +using CWeb3 = ChainSafe.Gaming.Web3.Web3; namespace ChainSafe.Gaming.UnityPackage.Connection { @@ -18,98 +14,37 @@ public class ConnectionHandler : MonoBehaviour, IConnectionHandler, IWeb3Builder { [SerializeField] private string gelatoApiKey = ""; [Space] - [SerializeField] private bool autoConnectToPreviousSession; - [SerializeField] private ConnectModal connectModal; // Handed in ConnectionHandlerEditor - [HideInInspector] [SerializeField] private ConnectionProvider[] providers; + [HideInInspector, SerializeField] private ConnectionProvider[] providers; public string GelatoApiKey => gelatoApiKey; public IWeb3BuilderServiceAdapter[] Web3BuilderServiceAdapters { get; private set; } - public ConnectionProvider ConnectionProvider { get; private set; } - - private void Start() - { - Initialize(); - } + public ConnectionProvider[] Providers => providers; + /// /// Initializes Connection Handler. /// - protected virtual async void Initialize() + public void Initialize() { Web3BuilderServiceAdapters = GetComponents(); - - if (autoConnectToPreviousSession) - { - await TryRestore(); - } - - foreach (var provider in providers) - { - if (provider != null && provider.IsAvailable) - { - Button button = connectModal.AddProvider(provider.ConnectButtonRow); - - await provider.Initialize(); - - // Don't allow connection before initialization. - button.interactable = true; - - button.onClick.AddListener(delegate - { - ConnectionProvider = provider; - - ConnectClicked(); - }); - } - } } - private async Task TryRestore() + public async Task Restore() { - var provider = await providers.OfType().GetProvider(); + var data = new StoredConnectionProviderData(); + + await data.LoadOneTime(); + + var provider = providers.OfType() + .SingleOrDefault(p => p.GetType() == data.Type); if (provider != null && provider.RememberSession && await provider.SavedSessionAvailable()) { - ConnectionProvider = provider; - - await TryConnect(); + return await (this as IConnectionHandler).Connect(provider); } - } - - private async void ConnectClicked() - { - await TryConnect(); - } - - /// - /// Try to Connect and displays error and throws exception on a failed attempt. - /// - public virtual async Task TryConnect() - { - try - { - connectModal.ShowLoading(); - await (this as IConnectionHandler).Connect(); - } - catch (Exception e) - { - if (!(e is TaskCanceledException)) - { - connectModal.DisplayError( - $"Connection failed, please try again."); - - ConnectionProvider.HandleException(e); - } - } - finally - { - if (connectModal != null) - { - connectModal.HideLoading(); - } - } + return null; } public Web3Builder ConfigureServices(Web3Builder web3Builder) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs new file mode 100644 index 000000000..0e2ec464c --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs @@ -0,0 +1,23 @@ +using ChainSafe.Gaming.UnityPackage.Connection; +using ChainSafe.Gaming.Web3.Build; + +namespace ChainSafe.Gaming.Connection +{ + public static class ConnectionHandlerExtensions + { + public static Web3Builder ConfigureServices(this Web3Builder web3Builder, IWeb3BuilderServiceAdapter adapter) + { + return adapter.ConfigureServices(web3Builder); + } + + public static Web3Builder ConfigureServices(this Web3Builder web3Builder, IWeb3BuilderServiceAdapter[] adapters) + { + foreach (var adapter in adapters) + { + web3Builder = adapter.ConfigureServices(web3Builder); + } + + return web3Builder; + } + } +} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs.meta new file mode 100644 index 000000000..baa2805b8 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e6609d910be149cc9a9bc277ffd23e6d +timeCreated: 1721478630 \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs index 396c90acd..1554ed46b 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using ChainSafe.Gaming.Connection; using ChainSafe.Gaming.Evm.Contracts; using ChainSafe.Gaming.Evm.JsonRpc; using ChainSafe.Gaming.Marketplace.Extensions; @@ -9,6 +10,7 @@ using ChainSafe.GamingSdk.Gelato; using Microsoft.Extensions.DependencyInjection; using Scripts.EVM.Token; +using CWeb3 = ChainSafe.Gaming.Web3.Web3; namespace ChainSafe.Gaming.UnityPackage.Connection { @@ -27,28 +29,24 @@ public interface IConnectionHandler /// public IWeb3BuilderServiceAdapter[] Web3BuilderServiceAdapters { get; } - /// - /// Connection Provider used to create connection. - /// - public ConnectionProvider ConnectionProvider { get; } - /// /// Login by Building a Instance. /// - public async Task Connect() + public async Task Connect(ConnectionProvider provider) { - Web3Builder web3Builder = new Web3Builder(ProjectConfigUtilities.Load()).Configure(ConfigureCommonServices); - - web3Builder = ConfigureWeb3Services(web3Builder); + Web3Builder web3Builder = new Web3Builder(ProjectConfigUtilities.Load()) + .Configure(ConfigureCommonServices) + .ConfigureServices(Web3BuilderServiceAdapters) + .ConfigureServices(provider); var web3 = await web3Builder.LaunchAsync(); - Web3Accessor.Set(web3); - await OnWeb3Initialized(web3); + + return web3; } - private async Task OnWeb3Initialized(Web3.Web3 web3) + private async Task OnWeb3Initialized(CWeb3 web3) { var web3InitializedHandlers = web3.ServiceProvider.GetServices(); @@ -58,21 +56,6 @@ private async Task OnWeb3Initialized(Web3.Web3 web3) } } - /// - /// Configure services to inject based on the type of Login/Provider you want to use. - /// - /// Builder for services to use. - /// Builder with new services added/injected. - private Web3Builder ConfigureWeb3Services(Web3Builder web3Builder) - { - foreach (var adapter in Web3BuilderServiceAdapters) - { - web3Builder = adapter.ConfigureServices(web3Builder); - } - - return ConnectionProvider.ConfigureServices(web3Builder); - } - private void ConfigureCommonServices(IWeb3ServiceCollection services) { // TODO: most of these can/should be service adapters diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs index 9cca2ffd3..7628ed52e 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs @@ -32,16 +32,4 @@ public override Web3Builder ConfigureServices(Web3Builder web3Builder) public abstract Task SavedSessionAvailable(); } - - public static class RestorableConnectionProviderExtensions - { - public static async Task GetProvider(this IEnumerable providers) - { - var data = new StoredConnectionProviderData(); - - await data.LoadOneTime(); - - return providers.SingleOrDefault(p => p.GetType() == data.Type); - } - } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs index 2f4b0973f..63fe2745e 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs @@ -1,3 +1,5 @@ +using System; +using System.Threading.Tasks; using ChainSafe.Gaming.UnityPackage.Connection; using UnityEngine; using UnityEngine.UI; @@ -17,19 +19,86 @@ public class ConnectModal : MonoBehaviour [Space] + [SerializeField] private RectTransform modalContainer; [SerializeField] private RectTransform providerContainer; + public ConnectionProvider[] Providers => _connectionHandler.Providers; + + private ConnectionHandler _connectionHandler; + private void Start() { closeButton.onClick.AddListener(Close); closeFromBackgroundButton.onClick.AddListener(Close); } + public async Task Initialize(ConnectionHandler connectionHandler) + { + _connectionHandler = connectionHandler; + + foreach (var provider in Providers) + { + if (provider != null && provider.IsAvailable) + { + await provider.Initialize(); + + Button button = Instantiate(provider.ConnectButtonRow, providerContainer); + + // Don't allow connection before initialization. + button.interactable = true; + + button.onClick.AddListener(delegate + { + ConnectClicked(provider); + }); + } + } + + async void ConnectClicked(ConnectionProvider provider) + { + await TryConnect(provider); + } + } + + /// + /// Try to Connect and displays error and throws exception on a failed attempt. + /// + private async Task TryConnect(ConnectionProvider provider) + { + try + { + ShowLoading(); + + var web3 = await (_connectionHandler as IConnectionHandler).Connect(provider); + + Web3Accessor.Set(web3); + } + catch (Exception e) + { + if (!(e is TaskCanceledException)) + { + DisplayError( + "Connection failed, please try again."); + + provider.HandleException(e); + } + } + finally + { + HideLoading(); + } + } + + public void Show() + { + modalContainer.gameObject.SetActive(true); + } + /// /// Display Error. /// /// Error Message. - public void DisplayError(string message) + private void DisplayError(string message) { errorOverlay.DisplayError(message); } @@ -37,7 +106,7 @@ public void DisplayError(string message) /// /// Show Loading Overlay. /// - public void ShowLoading() + private void ShowLoading() { loadingOverlay.gameObject.SetActive(true); } @@ -45,24 +114,14 @@ public void ShowLoading() /// /// Hide Loading overlay. /// - public void HideLoading() + private void HideLoading() { loadingOverlay.gameObject.SetActive(false); } - /// - /// Add connection provider to the modal. - /// - /// Button row prefab for connection. - /// Added connection provider. - public Button AddProvider(Button buttonPrefab) - { - return Instantiate(buttonPrefab, providerContainer); - } - private void Close() { - gameObject.SetActive(false); + modalContainer.gameObject.SetActive(false); } } } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs deleted file mode 100644 index 2485cd1ca..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs +++ /dev/null @@ -1,63 +0,0 @@ -using ChainSafe.Gaming.HyperPlay; -using ChainSafe.Gaming.UnityPackage.Connection; -using ChainSafe.Gaming.Web3.Build; -using ChainSafe.Gaming.Web3.Evm.Wallet; -using Microsoft.Extensions.DependencyInjection; -using UnityEngine; -using UnityEngine.UI; - -/// -/// Login using HyperPlay desktop client. -/// -public class HyperPlayLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter -{ - [SerializeField] private Button loginButton; - [SerializeField] private Toggle rememberMeToggle; - - private bool _storedSessionAvailable; - - protected override async void Initialize() - { - base.Initialize(); - - _storedSessionAvailable = false; - - await using (var lightWeb3 = await HyperPlayWeb3.BuildLightweightWeb3(new HyperPlayConfig())) - { - var data = lightWeb3.ServiceProvider.GetService(); - - _storedSessionAvailable = data.RememberSession; - } - - if (_storedSessionAvailable) // auto-login - { - Debug.Log("Proceeding with auto-login."); - - await TryConnect(); - } - - loginButton.onClick.AddListener(OnLoginClicked); - } - - public Web3Builder ConfigureServices(Web3Builder web3Builder) - { - return web3Builder.Configure(services => - { - var config = new HyperPlayConfig - { - RememberSession = rememberMeToggle.isOn || _storedSessionAvailable, - }; -#if UNITY_WEBGL && !UNITY_EDITOR - services.UseHyperPlay(config); -#else - services.UseHyperPlay(config); -#endif - services.UseWalletSigner().UseWalletTransactionExecutor(); - }); - } - - private async void OnLoginClicked() - { - await TryConnect(); - } -} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs.meta deleted file mode 100644 index 4e7edde78..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts/HyperPlayLoginProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 16b51cbda3e44ff44a13173ffbde98b3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs deleted file mode 100644 index c262a1d57..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Numerics; -using System.Runtime.InteropServices; -using AOT; -using System.Threading.Tasks; -using ChainSafe.Gaming.UnityPackage; -using ChainSafe.Gaming.UnityPackage.Connection; -using ChainSafe.Gaming.Web3.Analytics; -using ChainSafe.Gaming.Web3.Build; -using ChainSafe.GamingSdk.Web3Auth; -using Nethereum.Hex.HexTypes; -using TMPro; -using UnityEngine; -using UnityEngine.UI; -using Network = Web3Auth.Network; - -/// -/// Login using Web3Auth. -/// -public class Web3AuthLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter -{ - /// - /// Struct used for pairing login buttons to Web3 auth providers. - /// Used when adding as listeners to the buttons. - /// - [Serializable] - public struct ProviderAndButtonPair - { - public Button Button; - public Provider Provider; - } - - [Header("Web3 Auth")] - [SerializeField] private string clientId; - [SerializeField] private string redirectUri; - [SerializeField] private Network network; - [Header("UI")] - [SerializeField] private List providerAndButtonPairs; - - [Header("Wallet GUI Options")] - [SerializeField] private GameObject web3AuthWalletGUIPrefab; - [SerializeField] private bool enableWalletGUI; - [SerializeField] private bool displayWalletIcon; - [SerializeField] private bool autoConfirmTransactions; - [SerializeField] private bool autoPopUpWalletOnTx; - [SerializeField] private Sprite walletIcon; - [SerializeField] private Sprite walletLogo; - [SerializeField] public TMP_FontAsset displayFont; - [SerializeField] private Color primaryBackgroundColour; - [SerializeField] private Color menuBackgroundColour; - [SerializeField] private Color primaryTextColour; - [SerializeField] private Color secondaryTextColour; - [SerializeField] private Color borderButtonColour; - private Provider? selectedProvider; - private bool rememberMe; - -// #if UNITY_WEBGL && !UNITY_EDITOR -// [DllImport("__Internal")] -// private static extern void InitWeb3Auth(string clientId, string chainId, string rpcTarget, string displayName, string blockExplorerUrl, string ticker, string tickerName, string network); -// [DllImport("__Internal")] -// private static extern void Web3AuthLogin(string provider, bool rememberMe); -// [DllImport("__Internal")] -// private static extern void SetLoginCallback(Action callback); -// -// public static event Action Web3AuthWebGLConnected; -// #endif - - - public void SetRememberMe(bool rememberMe) - { - this.rememberMe = rememberMe; - } - - protected override async void Initialize() - { - base.Initialize(); - providerAndButtonPairs.ForEach(p => - p.Button.onClick.AddListener(delegate { LoginWithWeb3Auth(p.Provider); })); -// #if !UNITY_EDITOR && UNITY_WEBGL -// Web3AuthWebGLConnected += Web3AuthSet; -// var projectSettings = ProjectConfigUtilities.Load(); -// SetLoginCallback(Web3AuthConnected); -// //1155 is a decimal number, we need to convert it to an integer -// InitWeb3Auth(clientId, new HexBigInteger(BigInteger.Parse(projectSettings.ChainId)).HexValue, -// projectSettings.Rpc, projectSettings.Network, "", projectSettings.Symbol, "", network.ToString().ToLower()); -// #else - if (!string.IsNullOrEmpty(KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID))) - { - rememberMe = true; - await TryConnect(); - Debug.Log("Restoring existing Web3Auth session (Remember Me"); - } -// #endif - } -// #if !UNITY_EDITOR && UNITY_WEBGL -// private async void Web3AuthSet(string sessionId) -// { -// Web3AuthWebGLConnected -= Web3AuthSet; -// KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); -// await TryConnect(); -// } -// #endif -// -// #if !UNITY_EDITOR && UNITY_WEBGL -// [MonoPInvokeCallback(typeof(Action))] -// private static void Web3AuthConnected(string sessionId) -// { -// Web3AuthWebGLConnected?.Invoke(sessionId); -// } -// #endif - - private async void LoginWithWeb3Auth(Provider provider) - { -// #if UNITY_WEBGL && !UNITY_EDITOR -// Web3AuthLogin(provider.ToString().ToLower(), rememberMe); -// #else - selectedProvider = provider; - await TryConnect(); - LogAnalytics(provider); - } - - public override async Task TryConnect() - { - await base.TryConnect(); - - EnableWalletGUI(); - } - - private void EnableWalletGUI() - { - if (!enableWalletGUI) return; - var w3aWalletGuiConfig = new Web3AuthWalletGUI.Web3AuthWalletConfig - { - DisplayWalletIcon = displayWalletIcon, - AutoPopUpWalletOnTx = autoPopUpWalletOnTx, - AutoConfirmTransactions = autoConfirmTransactions, - WalletIcon = walletIcon, - WalletLogo = walletLogo, - DisplayFont = displayFont, - PrimaryBackgroundColour = primaryBackgroundColour, - MenuBackgroundColour = menuBackgroundColour, - PrimaryTextColour = primaryTextColour, - SecondaryTextColour = secondaryTextColour, - BorderButtonColour = borderButtonColour - }; - var web3AuthWalletInstance = Instantiate(web3AuthWalletGUIPrefab); - web3AuthWalletInstance.GetComponent().Initialize(w3aWalletGuiConfig); - } - - private void LogAnalytics(Provider provider) - { - IAnalyticsClient client = (IAnalyticsClient)Web3Accessor.Web3.ServiceProvider.GetService(typeof(IAnalyticsClient)); - client.CaptureEvent(new AnalyticsEvent() - { - EventName = $"Login provider {provider}", - PackageName = "io.chainsafe.web3-unity.web3auth", - }); -// #endif - - } - - public Web3Builder ConfigureServices(Web3Builder web3Builder) - { - return web3Builder.Configure(services => - { - var web3AuthConfig = new Web3AuthWalletConfig - { - Web3AuthOptions = new() - { - clientId = clientId, - redirectUrl = new Uri(redirectUri), - network = network, - whiteLabel = new() - { - mode = Web3Auth.ThemeModes.dark, - defaultLanguage = Web3Auth.Language.en, - appName = "ChainSafe Gaming SDK", - } - }, - RememberMe = rememberMe - }; - - // if (selectedProvider.HasValue) - // { - // web3AuthConfig.LoginParams = new LoginParams() - // { - // loginProvider = selectedProvider.Value - // }; - // } - - services.UseWeb3AuthWallet(web3AuthConfig); - }); - } -} \ No newline at end of file diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs.meta deleted file mode 100644 index 95e3a7742..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Web3AuthLoginProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7b6902e441950fa4bb5cefdd2263164a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity index 5fa64c4f3..df0068f8c 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -283,6 +283,86 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1658652861 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1658652863} + - component: {fileID: 1658652864} + - component: {fileID: 1658652862} + - component: {fileID: 1658652865} + m_Layer: 0 + m_Name: ConnectToWallet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1658652862 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658652861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b575a0ab50061014ca051bbfaf597ac2, type: 3} + m_Name: + m_EditorClassIdentifier: + connectOnInitialize: 1 + connectModalPrefab: {fileID: 4706621120835174763, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} + connectButton: {fileID: 1551748812896581000} +--- !u!4 &1658652863 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658652861} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 960, y: 540, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1658652864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658652861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b5a2f51f95094c949a28c71dc8658551, type: 3} + m_Name: + m_EditorClassIdentifier: + gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ + providers: + - {fileID: 11400000, guid: a15bdaf25319d6f44b48ff2159e4b7fb, type: 2} + - {fileID: 11400000, guid: 5a662f0c96c53db48b29a3aa7ab0f102, type: 2} + - {fileID: 11400000, guid: 70ad5245d5b5895448ba4fd9ad57ea95, type: 2} + - {fileID: 11400000, guid: f891ba0f7fed9084982e95c96826fcb7, type: 2} +--- !u!114 &1658652865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658652861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} + m_Name: + m_EditorClassIdentifier: + sceneToLoad: SampleMain --- !u!224 &199374705475579680 RectTransform: m_ObjectHideFlags: 0 @@ -321,21 +401,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1398849710002408382 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8508818283688073654} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b575a0ab50061014ca051bbfaf597ac2, type: 3} - m_Name: - m_EditorClassIdentifier: - connectModalPrefab: {fileID: 5955209656218357189, guid: 2dd57b774deda1948bd97dcb6d6e9fb4, type: 3} - connectModalContainer: {fileID: 7178087994292010380} - connectButton: {fileID: 1551748812896581000} --- !u!114 &1551748812896581000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -829,7 +894,6 @@ GameObject: - component: {fileID: 1551748812896581000} - component: {fileID: 3408434913546917216} - component: {fileID: 5703691040042401873} - - component: {fileID: 1398849710002408382} m_Layer: 5 m_Name: Connect Button m_TagString: Untagged @@ -901,15 +965,16 @@ RectTransform: - {fileID: 199374705475579680} m_Father: {fileID: 5727883533759626018} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 150, y: -37.5} - m_SizeDelta: {x: 300, y: 75} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 893732505} + - {fileID: 1658652863} - {fileID: 7178087994292010380} - {fileID: 1290034541} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs index 4d520887d..7cda6488a 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs @@ -1,29 +1,46 @@ +using System; +using ChainSafe.Gaming.UnityPackage; +using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.UnityPackage.UI; using UnityEngine; using UnityEngine.UI; +[RequireComponent(typeof(ConnectionHandler))] public class ConnectToWallet : MonoBehaviour { + [SerializeField] private bool connectOnInitialize; [SerializeField] private ConnectModal connectModalPrefab; - [SerializeField] private RectTransform connectModalContainer; + [SerializeField] private Button connectButton; - private ConnectModal _connectModalInstance; - - private void Start() + private ConnectionHandler _connectionHandler; + private ConnectModal _connectModal; + + private void Awake() { - connectButton.onClick.AddListener(PromptConnectModal); + _connectionHandler = GetComponent(); } - private void PromptConnectModal() + private async void Start() { - if (_connectModalInstance != null) + _connectionHandler.Initialize(); + + if (connectOnInitialize) { - _connectModalInstance.gameObject.SetActive(true); - - return; + var web3 = await _connectionHandler.Restore(); + + if (web3 != null) + { + Web3Accessor.Set(web3); + + return; + } } - _connectModalInstance = Instantiate(connectModalPrefab, connectModalContainer); + _connectModal = Instantiate(connectModalPrefab); + + await _connectModal.Initialize(_connectionHandler); + + connectButton.onClick.AddListener(_connectModal.Show); } } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs deleted file mode 100644 index 1adf8a1cc..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs +++ /dev/null @@ -1,43 +0,0 @@ -using ChainSafe.Gaming.UnityPackage.Connection; -#if UNITY_WEBGL && !UNITY_EDITOR -using ChainSafe.Gaming.Web3.Evm.Wallet; -using ChainSafe.Gaming.Unity.MetaMask; -#endif -using ChainSafe.Gaming.Web3.Build; -using UnityEngine; -using UnityEngine.UI; - -/// -/// Login using MetaMask. -/// Only works for UnityWebGL build (not in editor). -/// -public class MetaMaskLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter -{ - [SerializeField] private Button loginButton; - - protected override void Initialize() - { - base.Initialize(); - - loginButton.onClick.AddListener(LoginClicked); - } - - private async void LoginClicked() - { - await TryConnect(); - } - - public Web3Builder ConfigureServices(Web3Builder web3Builder) - { - return web3Builder.Configure(services => - { - // Currently Metamask browser connections can only run in WebGL builds. - // See point 5 in https://github.com/Nethereum/Unity3dSampleTemplate?tab=readme-ov-file#important-notes. -#if UNITY_WEBGL && !UNITY_EDITOR - services.UseMetaMask().UseWalletSigner().UseWalletTransactionExecutor(); -#else - Debug.LogError("Metamask browser connection, currently, only works on WebGL Builds (not in editor)."); -#endif - }); - } -} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs.meta deleted file mode 100644 index 33f79fe3c..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/MetaMaskLoginProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b547b7e8ac8d2f442bfefe0c9f59ed1d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs deleted file mode 100644 index f1d64c68b..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs +++ /dev/null @@ -1,54 +0,0 @@ -using ChainSafe.Gaming.UnityPackage.Connection; -using ChainSafe.Gaming.WalletConnect; -using ChainSafe.Gaming.Web3.Build; -using ChainSafe.Gaming.Web3.Evm.Wallet; -using UnityEngine; -using UnityEngine.UI; - -/// -/// Login using an existing wallet with WalletConnect. -/// -public class WalletConnectLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter -{ - [SerializeField] private WalletConnectConfigSO walletConnectConfig; - [SerializeField] private bool autoLoginPreviousSession = true; - [Header("UI")] - [SerializeField] private Toggle rememberSessionToggle; - [SerializeField] private Button loginButton; - - private bool storedSessionAvailable; - - protected override async void Initialize() - { - base.Initialize(); - - await using (var lightWeb3 = await WalletConnectWeb3.BuildLightweightWeb3(walletConnectConfig)) - { - storedSessionAvailable = lightWeb3.WalletConnect().ConnectionHelper().StoredSessionAvailable; - } - - if (autoLoginPreviousSession && storedSessionAvailable) // auto-login - { - Debug.Log("Proceeding with auto-login."); - await TryConnect(); - } - - loginButton.onClick.AddListener(OnLoginClicked); - } - - public Web3Builder ConfigureServices(Web3Builder web3Builder) - { - return web3Builder.Configure(services => - { - var rememberSession = rememberSessionToggle.isOn || storedSessionAvailable; - - services.UseWalletConnect(walletConnectConfig.WithRememberSession(rememberSession)) - .UseWalletSigner().UseWalletTransactionExecutor(); - }); - } - - private async void OnLoginClicked() - { - await TryConnect(); - } -} \ No newline at end of file diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs.meta deleted file mode 100644 index 5949c672b..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/WalletConnectLoginProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 687083d27f624b84dbcf6c07a7cadab0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: From d7efedd4ed2ef2dbe133b32d60d3f996ef4098a9 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Mon, 22 Jul 2024 11:56:34 +0300 Subject: [PATCH 32/47] wallet connect sessions now restorable --- .../Scripts/HyperPlayConnectionProvider.cs | 3 +- .../Web3AuthConnectionProvider.asset | 1 + .../Runtime/Web3AuthConnectionProvider.cs | 57 +++++++++++-------- .../Runtime/Web3AuthWebGLProvider.cs | 2 +- .../WalletConnectConnectionProvider.asset | 1 + .../Scripts/Connection/ConnectionHandler.cs | 9 ++- .../WalletConnectConnectionProvider.cs | 22 ++++--- .../Runtime/Scripts/UI/ConnectModal.cs | 4 +- .../Scenes/SampleLogin - Connect Modal.unity | 2 +- .../Scripts/Scenes/ConnectToWallet.cs | 6 +- 10 files changed, 65 insertions(+), 42 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs index 937ddfdb7..6362bb5c5 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayConnectionProvider.cs @@ -27,8 +27,7 @@ protected override void ConfigureServices(IWeb3ServiceCollection services) { var config = new HyperPlayConfig { - // RememberSession = rememberMeToggle.isOn || _storedSessionAvailable, - RememberSession = true, + RememberSession = RememberSession, }; #if UNITY_WEBGL && !UNITY_EDITOR services.UseHyperPlay(config); diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset index 8b79bcf9f..72b42dd43 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset @@ -14,6 +14,7 @@ MonoBehaviour: m_EditorClassIdentifier: k__BackingField: Web3Auth k__BackingField: {fileID: 8599114313589093787, guid: 163bbaaeb51883442a20ea7532888a43, type: 3} + k__BackingField: 1 clientId: BCc0wTmuXureEzgawhUSZOWu4bgWo56sZPrxLiHQCpg5OHcNrfa44esdTS8Dm77VtmaIyjhbthdWfbLhSwf7jtU redirectUri: torusapp://io.chainsafe.gamingsdk.sdkdemoscene/auth network: 1 diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs index 24c08815c..39f1c414a 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -17,7 +17,7 @@ /// ConnectionProvider for connecting wallet via Web3Auth. /// [CreateAssetMenu(menuName = "ChainSafe/Connection Provider/Web3Auth", fileName = nameof(Web3AuthConnectionProvider))] -public class Web3AuthConnectionProvider : ConnectionProvider +public class Web3AuthConnectionProvider : RestorableConnectionProvider { [SerializeField] private string clientId; [SerializeField] private string redirectUri; @@ -29,6 +29,8 @@ public class Web3AuthConnectionProvider : ConnectionProvider private Web3AuthModal _modal; + private bool _rememberMe; + public override bool IsAvailable => true; #if UNITY_WEBGL && !UNITY_EDITOR @@ -71,34 +73,32 @@ public override Task Initialize() } #endif - public override Web3Builder ConfigureServices(Web3Builder web3Builder) + protected override void ConfigureServices(IWeb3ServiceCollection services) { DisplayModal(); - return web3Builder.Configure(services => + var web3AuthConfig = new Web3AuthWalletConfig { - var web3AuthConfig = new Web3AuthWalletConfig + Web3AuthOptions = new() { - Web3AuthOptions = new() + clientId = clientId, + redirectUrl = new Uri(redirectUri), + network = network, + whiteLabel = new() { - clientId = clientId, - redirectUrl = new Uri(redirectUri), - network = network, - whiteLabel = new() - { - mode = Web3Auth.ThemeModes.dark, - defaultLanguage = Web3Auth.Language.en, - appName = "ChainSafe Gaming SDK", - } - }, - // RememberMe = rememberMe - }; - - web3AuthConfig.CancellationToken = _modal.CancellationToken; + mode = Web3Auth.ThemeModes.dark, + defaultLanguage = Web3Auth.Language.en, + appName = "ChainSafe Gaming SDK", + } + }, + RememberMe = _rememberMe || RememberSession, + }; + + web3AuthConfig.CancellationToken = _modal.CancellationToken; - web3AuthConfig.ProviderTask = _modal.SelectProvider(); + web3AuthConfig.ProviderTask = _modal.SelectProvider(); - #if UNITY_WEBGL && !UNITY_EDITOR +#if UNITY_WEBGL && !UNITY_EDITOR web3AuthConfig.CancellationToken.Register(delegate { if (_connectionTcs != null && !_connectionTcs.Task.IsCompleted) @@ -110,8 +110,17 @@ public override Web3Builder ConfigureServices(Web3Builder web3Builder) web3AuthConfig.SessionTask = Connect(); #endif - services.UseWeb3AuthWallet(web3AuthConfig); - }); + services.UseWeb3AuthWallet(web3AuthConfig); + } + + public override Task SavedSessionAvailable() + { + if (!string.IsNullOrEmpty(KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID))) + { + _rememberMe = true; + } + + return Task.FromResult(_rememberMe); } public override void HandleException(Exception exception) @@ -161,7 +170,7 @@ private async Task Connect() var provider = await _modal.SelectProvider(); - Web3AuthLogin(provider.ToString().ToLower(), false, Connected, ConnectError); + Web3AuthLogin(provider.ToString().ToLower(), _rememberMe || RememberSession, Connected, ConnectError); return await _connectionTcs.Task; } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs index 1937f0aca..fcb1103ef 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs @@ -21,7 +21,7 @@ public override async Task Connect() string sessionId = await _config.SessionTask; KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); - + return await base.Connect(); } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset index a14609ecd..6ccc016ab 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset +++ b/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProvider.asset @@ -14,4 +14,5 @@ MonoBehaviour: m_EditorClassIdentifier: k__BackingField: WalletConnect k__BackingField: {fileID: 8599114313589093787, guid: 4591cfadb2bf9824da90ebf4005728a8, type: 3} + k__BackingField: 1 walletConnectConfig: {fileID: 11400000, guid: fde7db0e37b4a884da1149e9f1999093, type: 2} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs index 7215f77ca..8b2fa70af 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandler.cs @@ -25,9 +25,14 @@ public class ConnectionHandler : MonoBehaviour, IConnectionHandler, IWeb3Builder /// /// Initializes Connection Handler. /// - public void Initialize() + public async Task Initialize() { Web3BuilderServiceAdapters = GetComponents(); + + foreach (var provider in Providers) + { + await provider.Initialize(); + } } public async Task Restore() @@ -36,7 +41,7 @@ public async Task Restore() await data.LoadOneTime(); - var provider = providers.OfType() + var provider = Providers.OfType() .SingleOrDefault(p => p.GetType() == data.Type); if (provider != null && provider.RememberSession && await provider.SavedSessionAvailable()) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs index 69750338a..8b3ecebde 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/WalletConnectConnectionProvider.cs @@ -10,10 +10,12 @@ namespace ChainSafe.Gaming.UnityPackage.Connection /// WalletConnect connection provider used for connecting to a wallet using WalletConnect. /// [CreateAssetMenu(menuName = "ChainSafe/Connection Provider/Wallet Connect", fileName = nameof(WalletConnectConnectionProvider))] - public class WalletConnectConnectionProvider : ConnectionProvider + public class WalletConnectConnectionProvider : RestorableConnectionProvider { [SerializeField] private WalletConnectConfigSO walletConnectConfig; + private bool _storedSessionAvailable; + public override bool IsAvailable => Application.isEditor || Application.platform != RuntimePlatform.WebGLPlayer; public override Task Initialize() @@ -21,14 +23,20 @@ public override Task Initialize() return Task.CompletedTask; } - public override Web3Builder ConfigureServices(Web3Builder web3Builder) + protected override void ConfigureServices(IWeb3ServiceCollection services) { - return web3Builder.Configure(services => + services.UseWalletConnect(walletConnectConfig.WithRememberSession(RememberSession || _storedSessionAvailable)) + .UseWalletSigner().UseWalletTransactionExecutor(); + } + + public override async Task SavedSessionAvailable() + { + await using (var lightWeb3 = await WalletConnectWeb3.BuildLightweightWeb3(walletConnectConfig)) { - // var rememberSession = rememberSessionToggle.isOn || storedSessionAvailable; - services.UseWalletConnect(walletConnectConfig.WithRememberSession(false)) - .UseWalletSigner().UseWalletTransactionExecutor(); - }); + _storedSessionAvailable = lightWeb3.WalletConnect().ConnectionHelper().StoredSessionAvailable; + } + + return _storedSessionAvailable; } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs index 63fe2745e..d8cc82f89 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs @@ -32,7 +32,7 @@ private void Start() closeFromBackgroundButton.onClick.AddListener(Close); } - public async Task Initialize(ConnectionHandler connectionHandler) + public void Initialize(ConnectionHandler connectionHandler) { _connectionHandler = connectionHandler; @@ -40,8 +40,6 @@ public async Task Initialize(ConnectionHandler connectionHandler) { if (provider != null && provider.IsAvailable) { - await provider.Initialize(); - Button button = Instantiate(provider.ConnectButtonRow, providerContainer); // Don't allow connection before initialization. diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity index df0068f8c..3eed27c70 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -440,7 +440,7 @@ MonoBehaviour: m_PressedTrigger: Pressed m_SelectedTrigger: Selected m_DisabledTrigger: Disabled - m_Interactable: 1 + m_Interactable: 0 m_TargetGraphic: {fileID: 8492837113255740706} m_OnClick: m_PersistentCalls: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs index 7cda6488a..345f06fe5 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs @@ -23,7 +23,7 @@ private void Awake() private async void Start() { - _connectionHandler.Initialize(); + await _connectionHandler.Initialize(); if (connectOnInitialize) { @@ -39,8 +39,10 @@ private async void Start() _connectModal = Instantiate(connectModalPrefab); - await _connectModal.Initialize(_connectionHandler); + _connectModal.Initialize(_connectionHandler); connectButton.onClick.AddListener(_connectModal.Show); + + connectButton.interactable = true; } } From e06be07659d25be064a9f13e99b2001f3d94d28c Mon Sep 17 00:00:00 2001 From: rob1997 Date: Thu, 1 Aug 2024 11:28:36 +0300 Subject: [PATCH 33/47] restore web3auth working on editor --- .../Runtime/Web3AuthConnectionProvider.cs | 27 +++++++++++++++---- .../Runtime/Web3AuthProvider.cs | 2 +- .../Runtime/Web3AuthWalletConfig.cs | 2 ++ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs index 39f1c414a..700451f22 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -8,7 +8,9 @@ using ChainSafe.Gaming.UnityPackage.Connection; using ChainSafe.Gaming.Web3; using ChainSafe.Gaming.Web3.Build; +using ChainSafe.Gaming.Web3.Core.Logout; using ChainSafe.GamingSdk.Web3Auth; +using Microsoft.Extensions.DependencyInjection; using Nethereum.Hex.HexTypes; using UnityEngine; using Network = Web3Auth.Network; @@ -17,7 +19,7 @@ /// ConnectionProvider for connecting wallet via Web3Auth. /// [CreateAssetMenu(menuName = "ChainSafe/Connection Provider/Web3Auth", fileName = nameof(Web3AuthConnectionProvider))] -public class Web3AuthConnectionProvider : RestorableConnectionProvider +public class Web3AuthConnectionProvider : RestorableConnectionProvider, ILogoutHandler { [SerializeField] private string clientId; [SerializeField] private string redirectUri; @@ -29,7 +31,7 @@ public class Web3AuthConnectionProvider : RestorableConnectionProvider private Web3AuthModal _modal; - private bool _rememberMe; + [NonSerialized] private bool _rememberMe; public override bool IsAvailable => true; @@ -75,7 +77,11 @@ public override Task Initialize() protected override void ConfigureServices(IWeb3ServiceCollection services) { - DisplayModal(); + // Don't display modal if it's an auto login. + if (!_rememberMe) + { + DisplayModal(); + } var web3AuthConfig = new Web3AuthWalletConfig { @@ -92,11 +98,13 @@ protected override void ConfigureServices(IWeb3ServiceCollection services) } }, RememberMe = _rememberMe || RememberSession, + + AutoLogin = _rememberMe }; - web3AuthConfig.CancellationToken = _modal.CancellationToken; + web3AuthConfig.CancellationToken = _rememberMe ? default : _modal.CancellationToken; - web3AuthConfig.ProviderTask = _modal.SelectProvider(); + web3AuthConfig.ProviderTask = _rememberMe ? default : _modal.SelectProvider(); #if UNITY_WEBGL && !UNITY_EDITOR web3AuthConfig.CancellationToken.Register(delegate @@ -111,6 +119,8 @@ protected override void ConfigureServices(IWeb3ServiceCollection services) #endif services.UseWeb3AuthWallet(web3AuthConfig); + + services.AddSingleton(this); } public override Task SavedSessionAvailable() @@ -187,4 +197,11 @@ private static void ConnectError(string message) _instance._connectionTcs.SetException(new Web3Exception(message)); } #endif + + public Task OnLogout() + { + _rememberMe = false; + + return Task.CompletedTask; + } } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs index bb5dc620c..d39f2b5c0 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs @@ -57,7 +57,7 @@ public override async Task Connect() var providerTask = _config.ProviderTask; - if (providerTask != null && !providerTask.IsCompleted) + if (!_config.AutoLogin && providerTask != null && !providerTask.IsCompleted) { var provider = await _config.ProviderTask; diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletConfig.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletConfig.cs index 02228c398..56d6dbbc0 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletConfig.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletConfig.cs @@ -27,5 +27,7 @@ public class Web3AuthWalletConfig public CancellationToken CancellationToken { get; set; } public bool RememberMe { get; set; } + + public bool AutoLogin { get; set; } } } From 51edb49b984397fa64edd371eb44900be70d65f5 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 2 Aug 2024 12:28:26 +0300 Subject: [PATCH 34/47] checkpoint --- .../Runtime/Scripts/Connection/IConnectionHandler.cs | 2 +- .../Scripts/Connection/IWeb3InitializedHandler.cs | 3 ++- .../Runtime/Scripts/Connection/LoadSceneOnLogin.cs | 9 +++++---- .../Connection/StoredConnectionProviderData.cs | 3 ++- .../Runtime/Scripts/UI/ConnectModal.cs | 12 ++++-------- .../Scripts/Scenes/ConnectToWallet.cs | 2 -- 6 files changed, 14 insertions(+), 17 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs index 1554ed46b..c8d009d37 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IConnectionHandler.cs @@ -52,7 +52,7 @@ private async Task OnWeb3Initialized(CWeb3 web3) foreach (var web3InitializedHandler in web3InitializedHandlers) { - await web3InitializedHandler.OnWeb3Initialized(); + await web3InitializedHandler.OnWeb3Initialized(web3); } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs index b2bc3d0cf..5468f42b5 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/IWeb3InitializedHandler.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using CWeb3 = ChainSafe.Gaming.Web3.Web3; namespace ChainSafe.Gaming.UnityPackage.Connection { @@ -10,6 +11,6 @@ public interface IWeb3InitializedHandler /// /// Called when Web3 Instance in is initialized. /// - public Task OnWeb3Initialized(); + public Task OnWeb3Initialized(CWeb3 web3); } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs index e411f8115..2c65b89d0 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/LoadSceneOnLogin.cs @@ -1,6 +1,7 @@ using System.Threading.Tasks; using UnityEngine; using UnityEngine.SceneManagement; +using CWeb3 = ChainSafe.Gaming.Web3.Web3; namespace ChainSafe.Gaming.UnityPackage.Connection { @@ -16,13 +17,13 @@ public class LoadSceneOnLogin : MonoBehaviour, IWeb3InitializedHandler [SerializeField] private string sceneToLoad; - public Task OnWeb3Initialized() + public async Task OnWeb3Initialized(CWeb3 web3) { LoginSceneBuildIndex = SceneManager.GetActiveScene().buildIndex; - SceneManager.LoadSceneAsync(sceneToLoad); - - return Task.CompletedTask; + Web3Accessor.Set(web3); + + await SceneManager.LoadSceneAsync(sceneToLoad); } } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs index a87099a6f..f871e5daf 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs @@ -3,6 +3,7 @@ using ChainSafe.Gaming.LocalStorage; using ChainSafe.Gaming.Web3.Core.Logout; using Newtonsoft.Json; +using CWeb3 = ChainSafe.Gaming.Web3.Web3; namespace ChainSafe.Gaming.UnityPackage.Connection { @@ -20,7 +21,7 @@ public class StoredConnectionProviderData : IStorable, IWeb3InitializedHandler, [JsonIgnore] public Type Type => string.IsNullOrEmpty(TypeName) ? null : Type.GetType(TypeName); - public async Task OnWeb3Initialized() + public async Task OnWeb3Initialized(CWeb3 web3) { await this.SaveOneTime(); } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs index d8cc82f89..e205865bc 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/UI/ConnectModal.cs @@ -67,24 +67,20 @@ private async Task TryConnect(ConnectionProvider provider) { ShowLoading(); - var web3 = await (_connectionHandler as IConnectionHandler).Connect(provider); - - Web3Accessor.Set(web3); + await (_connectionHandler as IConnectionHandler).Connect(provider); } catch (Exception e) { + HideLoading(); + if (!(e is TaskCanceledException)) { DisplayError( "Connection failed, please try again."); - + provider.HandleException(e); } } - finally - { - HideLoading(); - } } public void Show() diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs index 345f06fe5..a2fe07f1b 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scripts/Scenes/ConnectToWallet.cs @@ -31,8 +31,6 @@ private async void Start() if (web3 != null) { - Web3Accessor.Set(web3); - return; } } From 485445d2212862f9ca1cd22c77657ff930e8655c Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 2 Aug 2024 15:01:33 +0300 Subject: [PATCH 35/47] web data storage added --- .../Runtime/Web3AuthWalletExtensions.cs | 4 +++ .../Runtime/Scripts/DataStorageExtensions.cs | 6 ++++- .../Runtime/Scripts/WebDataStorage.cs | 27 +++++++++++++++++++ .../Runtime/Scripts/WebDataStorage.cs.meta | 11 ++++++++ .../HyperPlayProvider.cs | 12 ++++----- .../LocalStorage/DataStorage.cs | 4 +-- .../LocalStorage/DataStorageExtensions.cs | 10 +++---- .../LocalStorage/ILocalStorage.cs | 18 +++++++++++++ .../Web3/Core/Build/Web3Builder.cs | 2 +- src/ChainSafe.Gaming/Web3/Core/Web3.cs | 6 ++--- 10 files changed, 82 insertions(+), 18 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs.meta create mode 100644 src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs index 7f4d3e512..e226618ad 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWalletExtensions.cs @@ -1,5 +1,7 @@ using ChainSafe.Gaming.Evm.Signers; using ChainSafe.Gaming.InProcessSigner; +using ChainSafe.Gaming.LocalStorage; +using ChainSafe.Gaming.UnityPackage; using ChainSafe.Gaming.Web3.Build; using ChainSafe.Gaming.Web3.Core; using ChainSafe.Gaming.Web3.Core.Evm; @@ -38,6 +40,8 @@ public static IWeb3ServiceCollection UseWeb3AuthWallet(this IWeb3ServiceCollecti collection.AssertServiceNotBound(); #if UNITY_WEBGL && !UNITY_EDITOR + collection.Replace(ServiceDescriptor.Singleton()); + collection.AddSingleton(); #else collection.AddSingleton(); diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs index 6028578c8..50644297f 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs @@ -31,7 +31,11 @@ private static IServiceCollection DataStorageDependencies(TStorable s where TStorable : class, IStorable { return new ServiceCollection() - .AddSingleton() +#if UNITY_WEBGL && !UNITY_EDITOR + .AddSingleton() +#else + .AddSingleton() +#endif .AddSingleton(storable) .AddSingleton() .AddSingleton() diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs new file mode 100644 index 000000000..0acf1ae76 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using ChainSafe.Gaming.LocalStorage; +using ChainSafe.Gaming.Web3.Environment; +using UnityEngine; + +namespace ChainSafe.Gaming.UnityPackage +{ + public class WebDataStorage : DataStorage + { + public WebDataStorage(IEnumerable store, IOperatingSystemMediator osMediator, ILogWriter logWriter) : base(store, osMediator, logWriter) + { + } + + public override async Task Save(T storable, bool createFile = true) + { + await base.Save(storable, createFile); + + // This forces the data to be saved in WebGL even when reloading WebPages. +#if UNITY_WEBGL && !UNITY_EDITOR + PlayerPrefs.SetString("forceSave", string.Empty); + + PlayerPrefs.Save(); +#endif + } + } +} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs.meta new file mode 100644 index 000000000..80035fb37 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1405627b3f4f5da4abf4f55a4ef7ea8a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs b/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs index f0c6e72a4..5a6e57bce 100644 --- a/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs +++ b/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs @@ -23,7 +23,7 @@ public class HyperPlayProvider : WalletProvider { private readonly IHyperPlayConfig config; private readonly IHyperPlayData data; - private readonly DataStorage dataStorage; + private readonly ILocalStorage localStorage; private readonly Web3Environment environment; private readonly IChainConfig chainConfig; @@ -32,16 +32,16 @@ public class HyperPlayProvider : WalletProvider /// /// Injected . /// Injected . - /// Injected . + /// Injected . /// Injected . /// ChainConfig to fetch chain data. /// Injected . - public HyperPlayProvider(IHyperPlayConfig config, IHyperPlayData data, DataStorage dataStorage, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) + public HyperPlayProvider(IHyperPlayConfig config, IHyperPlayData data, ILocalStorage localStorage, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(environment, chainRegistryProvider, chainConfig) { this.config = config; this.data = data; - this.dataStorage = dataStorage; + this.localStorage = localStorage; this.environment = environment; this.chainConfig = chainConfig; } @@ -74,7 +74,7 @@ public override async Task Connect() data.SavedAccount = account; - await dataStorage.Save(data); + await localStorage.Save(data); } return account; @@ -84,7 +84,7 @@ public override Task Disconnect() { if (data.RememberSession) { - dataStorage.Clear(data); + localStorage.Clear(data); } return Task.CompletedTask; diff --git a/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs b/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs index 2a6d00e17..8dc607185 100644 --- a/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs +++ b/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs @@ -12,7 +12,7 @@ namespace ChainSafe.Gaming.LocalStorage /// /// Default implementation of the component responsible for storage of persistent data. /// - public class DataStorage + public class DataStorage : ILocalStorage { private readonly IEnumerable store; private readonly IOperatingSystemMediator osMediator; @@ -53,7 +53,7 @@ public async Task Initialize() /// Create new file if file doesn't exist. /// Type of Storable to be saved. Helps for serializing. /// Awaitable Task for save operation. - public async Task Save(T storable, bool createFile = true) + public virtual async Task Save(T storable, bool createFile = true) where T : IStorable { var path = AbsolutePath(storable.StoragePath); diff --git a/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs index e27c47fb3..a3c40df76 100644 --- a/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs +++ b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs @@ -12,9 +12,9 @@ public static async Task LoadOneTime(this TStorable storab { IServiceProvider serviceProvider = services.BuildServiceProvider(); - DataStorage dataStorage = serviceProvider.GetService(); + var localStorage = serviceProvider.GetService(); - await dataStorage.Load(storable); + await localStorage.Load(storable); return storable; } @@ -24,9 +24,9 @@ public static async Task SaveOneTime(this TStorable storable, IServic { IServiceProvider serviceProvider = services.BuildServiceProvider(); - DataStorage dataStorage = serviceProvider.GetService(); + var localStorage = serviceProvider.GetService(); - await dataStorage.Save(storable); + await localStorage.Save(storable); } public static void ClearOneTime(this TStorable storable, IServiceCollection services) @@ -34,7 +34,7 @@ public static void ClearOneTime(this TStorable storable, IServiceColl { IServiceProvider serviceProvider = services.BuildServiceProvider(); - DataStorage dataStorage = serviceProvider.GetService(); + var dataStorage = serviceProvider.GetService(); dataStorage.Clear(storable); } diff --git a/src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs b/src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs new file mode 100644 index 000000000..fc43ce9e5 --- /dev/null +++ b/src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs @@ -0,0 +1,18 @@ +using System.IO; +using System.Threading.Tasks; + +namespace ChainSafe.Gaming.LocalStorage +{ + public interface ILocalStorage + { + Task Initialize(); + + Task Save(T storable, bool createFile = true) + where T : IStorable; + + Task Load(T storable) + where T : IStorable; + + void Clear(IStorable storable); + } +} \ No newline at end of file diff --git a/src/ChainSafe.Gaming/Web3/Core/Build/Web3Builder.cs b/src/ChainSafe.Gaming/Web3/Core/Build/Web3Builder.cs index 57958a8c2..60161af24 100644 --- a/src/ChainSafe.Gaming/Web3/Core/Build/Web3Builder.cs +++ b/src/ChainSafe.Gaming/Web3/Core/Build/Web3Builder.cs @@ -25,7 +25,7 @@ private Web3Builder() // Bind default services serviceCollection .UseEventPoller() - .AddSingleton() + .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() diff --git a/src/ChainSafe.Gaming/Web3/Core/Web3.cs b/src/ChainSafe.Gaming/Web3/Core/Web3.cs index 74bd4c340..53e6d90fd 100644 --- a/src/ChainSafe.Gaming/Web3/Core/Web3.cs +++ b/src/ChainSafe.Gaming/Web3/Core/Web3.cs @@ -25,7 +25,7 @@ public class Web3 : IAsyncDisposable private readonly ITransactionExecutor? transactionExecutor; private readonly IEvmEvents? events; private readonly ILogoutManager logoutManager; - private readonly DataStorage dataStorage; + private readonly ILocalStorage localStorage; private bool initialized; private bool terminated; @@ -41,7 +41,7 @@ internal Web3(ServiceProvider serviceProvider) ProjectConfig = serviceProvider.GetRequiredService(); ChainConfig = serviceProvider.GetRequiredService(); logoutManager = this.serviceProvider.GetRequiredService(); - dataStorage = this.serviceProvider.GetRequiredService(); + localStorage = this.serviceProvider.GetRequiredService(); Erc20 = this.serviceProvider.GetRequiredService(); Erc721 = this.serviceProvider.GetRequiredService(); Erc1155 = this.serviceProvider.GetRequiredService(); @@ -111,7 +111,7 @@ async ValueTask IAsyncDisposable.DisposeAsync() internal async ValueTask InitializeAsync() { - await dataStorage.Initialize(); + await localStorage.Initialize(); foreach (var lifecycleParticipant in serviceProvider.GetServices()) { From 731cf26d3a67ec347a727649acfaba589a25c3f8 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Fri, 2 Aug 2024 22:23:28 +0300 Subject: [PATCH 36/47] remember me working for web3auth WebGL --- .../Runtime/Web3AuthConnectionProvider.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs index 700451f22..6b3506573 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -171,6 +171,11 @@ private static void InitializeError(string message) private async Task Connect() { + if (_rememberMe) + { + return KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID); + } + if (_connectionTcs != null && !_connectionTcs.Task.IsCompleted) { _connectionTcs.SetCanceled(); From 844e8a9e3ff45c818c056bc0d38865344ef00f46 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Mon, 5 Aug 2024 12:21:32 +0300 Subject: [PATCH 37/47] unused scenes and samples removed --- .../Samples~/Web3.Unity HyperPlay/Scenes.meta | 8 - .../Scenes/SampleLogin - HyperPlay.unity | 2145 ----------- .../Scenes/SampleLogin - HyperPlay.unity.meta | 7 - .../Web3.Unity HyperPlay/Scripts.meta | 8 - .../Scripts/HyperPlayLoginProvider.cs | 63 - .../Scripts/HyperPlayLoginProvider.cs.meta | 11 - .../package.json | 9 +- .../Samples~/Web3.Unity Web3Auth/Scenes.meta | 8 - .../Scenes/SampleLogin - Web3Auth.meta | 8 - .../Scenes/SampleLogin - Web3Auth.unity | 3156 ----------------- .../Scenes/SampleLogin - Web3Auth.unity.meta | 7 - .../Samples~/Web3.Unity Web3Auth/Scripts.meta | 8 - .../Scripts/Utilities.meta | 8 - .../Utilities/DisableObjectForPlatform.cs | 16 - .../DisableObjectForPlatform.cs.meta | 11 - .../Scripts/Web3AuthLoginProvider.cs | 195 - .../Scripts/Web3AuthLoginProvider.cs.meta | 11 - .../package.json | 9 +- scripts/data/duplicate_samples.txt | 6 - .../Samples/web3.unity SDK HyperPlay.meta | 8 - .../web3.unity SDK HyperPlay/1.0.0.meta | 8 - .../1.0.0/HyperPlay Samples.meta | 8 - .../1.0.0/HyperPlay Samples/Scenes.meta | 8 - .../Scenes/SampleLogin - HyperPlay.unity | 2145 ----------- .../Scenes/SampleLogin - HyperPlay.unity.meta | 7 - .../1.0.0/HyperPlay Samples/Scripts.meta | 8 - .../Samples/web3.unity SDK Web3Auth.meta | 8 - .../web3.unity SDK Web3Auth/2.6.0.meta | 8 - .../2.6.0/Web3Auth Samples.meta | 8 - .../2.6.0/Web3Auth Samples/Scenes.meta | 8 - .../Scenes/SampleLogin - Web3Auth.meta | 8 - .../Scenes/SampleLogin - Web3Auth.unity | 3156 ----------------- .../Scenes/SampleLogin - Web3Auth.unity.meta | 7 - .../2.6.0/Web3Auth Samples/Scripts.meta | 8 - .../Web3Auth Samples/Scripts/Utilities.meta | 8 - .../Utilities/DisableObjectForPlatform.cs | 16 - .../DisableObjectForPlatform.cs.meta | 11 - .../Scenes/SampleLogin - MetaMask.unity | 1741 --------- .../Scenes/SampleLogin - MetaMask.unity.meta | 7 - .../Scenes/SampleLogin - WalletConnect.unity | 2141 ----------- .../SampleLogin - WalletConnect.unity.meta | 7 - 41 files changed, 2 insertions(+), 15026 deletions(-) delete mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes.meta delete mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity delete mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity.meta delete mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts.meta delete mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs delete mode 100644 Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs.meta delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity.meta delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity delete mode 100644 src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity.meta diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes.meta deleted file mode 100644 index be3471699..000000000 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d14fc9e97141fe548bdeadfc8bfa5fb0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity b/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity deleted file mode 100644 index 33c6ecd11..000000000 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity +++ /dev/null @@ -1,2145 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &210878633 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 210878634} - - component: {fileID: 210878636} - - component: {fileID: 210878635} - m_Layer: 5 - m_Name: Error Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &210878634 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 751800059} - - {fileID: 1812470006} - m_Father: {fileID: 314965760} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -8.4831} - m_SizeDelta: {x: 400, y: 167.1662} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &210878635 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.912, b: 0.912, a: 0.9490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &210878636 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_CullTransparentMesh: 1 ---- !u!1 &314965759 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 314965760} - - component: {fileID: 314965761} - m_Layer: 5 - m_Name: Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &314965760 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 314965759} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1042712191} - - {fileID: 210878634} - m_Father: {fileID: 2066044329} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &314965761 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 314965759} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9df78976caa7771429cfe2b9b96e1491, type: 3} - m_Name: - m_EditorClassIdentifier: - MessageLabel: {fileID: 1028782728} ---- !u!1 &433476712 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 433476714} - - component: {fileID: 433476718} - - component: {fileID: 433476717} - - component: {fileID: 433476716} - m_Layer: 0 - m_Name: Login Logic - HyperPlay - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &433476714 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &433476716 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} - m_Name: - m_EditorClassIdentifier: - sceneToLoad: SampleMain ---- !u!114 &433476717 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d4bbed5530529ea46a1f41b407499dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - rampConfig: {fileID: 11400000, guid: d1f58846e4fc71d4e90f287a86f328f9, type: 2} ---- !u!114 &433476718 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 16b51cbda3e44ff44a13173ffbde98b3, type: 3} - m_Name: - m_EditorClassIdentifier: - gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ - errorPopup: {fileID: 314965761} - loginButton: {fileID: 2048731599} - rememberMeToggle: {fileID: 1755680257} ---- !u!1 &482586192 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 482586193} - - component: {fileID: 482586195} - - component: {fileID: 482586194} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &482586193 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 482586192} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 859742331} - m_Father: {fileID: 1755680255} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0.25, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -44, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &482586194 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 482586192} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &482586195 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 482586192} - m_CullTransparentMesh: 1 ---- !u!1 &669337707 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 669337708} - - component: {fileID: 669337710} - - component: {fileID: 669337709} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &669337708 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669337707} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1755680255} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -75, y: 0} - m_SizeDelta: {x: -150, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &669337709 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669337707} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Remember me - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} - m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 18 - m_fontSizeBase: 18 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 8 - m_fontSizeMax: 36 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &669337710 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669337707} - m_CullTransparentMesh: 1 ---- !u!1 &740974330 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 740974331} - - component: {fileID: 740974332} - m_Layer: 5 - m_Name: Column - HyperPlay - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &740974331 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 740974330} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 956735924} - m_Father: {fileID: 1135875169} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &740974332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 740974330} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 300 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &751800058 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 751800059} - - component: {fileID: 751800061} - - component: {fileID: 751800060} - m_Layer: 5 - m_Name: Title - Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &751800059 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 210878634} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &751800060 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.412, g: 0.043672003, b: 0.043672003, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Error ---- !u!222 &751800061 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_CullTransparentMesh: 1 ---- !u!1 &772918783 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 772918784} - - component: {fileID: 772918787} - - component: {fileID: 772918786} - - component: {fileID: 772918785} - m_Layer: 5 - m_Name: Button - Ok - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &772918784 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1558416531} - m_Father: {fileID: 1812470006} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 0} ---- !u!114 &772918785 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 772918786} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 314965761} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &772918786 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &772918787 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_CullTransparentMesh: 1 ---- !u!1 &789601276 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 789601277} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &789601277 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789601276} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1362301615} - - {fileID: 1572088723} - m_Father: {fileID: 2066044329} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.725} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -25} - m_SizeDelta: {x: -50, y: -50} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &859742330 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 859742331} - - component: {fileID: 859742333} - - component: {fileID: 859742332} - m_Layer: 5 - m_Name: Checkmark - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &859742331 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 859742330} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 482586193} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &859742332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 859742330} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &859742333 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 859742330} - m_CullTransparentMesh: 1 ---- !u!1 &893732502 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 893732505} - - component: {fileID: 893732504} - - component: {fileID: 893732503} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &893732503 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - m_Enabled: 1 ---- !u!20 &893732504 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.101960786, g: 0.101960786, b: 0.10980392, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &893732505 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &956735923 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 956735924} - - component: {fileID: 956735926} - - component: {fileID: 956735925} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &956735924 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2048731596} - - {fileID: 1755680255} - m_Father: {fileID: 740974331} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &956735925 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &956735926 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 5 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1028782727 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1028782730} - - component: {fileID: 1028782729} - - component: {fileID: 1028782728} - m_Layer: 5 - m_Name: Error message - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1028782728 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!222 &1028782729 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_CullTransparentMesh: 1 ---- !u!224 &1028782730 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1812470006} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1042712190 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1042712191} - - component: {fileID: 1042712194} - - component: {fileID: 1042712193} - - component: {fileID: 1042712192} - m_Layer: 5 - m_Name: Fade - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1042712191 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 314965760} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1042712192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1042712193} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 314965761} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1042712193 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1042712194 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_CullTransparentMesh: 1 ---- !u!1 &1135875168 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1135875169} - - component: {fileID: 1135875171} - - component: {fileID: 1135875170} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1135875169 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 740974331} - m_Father: {fileID: 2066044329} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.725} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &1135875170 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!114 &1135875171 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 25 - m_Right: 25 - m_Top: 25 - m_Bottom: 25 - m_ChildAlignment: 0 - m_Spacing: 50 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1290034538 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1290034541} - - component: {fileID: 1290034540} - - component: {fileID: 1290034539} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1290034539 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &1290034540 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1290034541 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1362301614 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1362301615} - - component: {fileID: 1362301617} - - component: {fileID: 1362301616} - m_Layer: 5 - m_Name: ChainSafe Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1362301615 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 789601277} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1362301616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1362301617 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_CullTransparentMesh: 1 ---- !u!1 &1558416530 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1558416531} - - component: {fileID: 1558416533} - - component: {fileID: 1558416532} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1558416531 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 772918784} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1558416532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 19 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: OK ---- !u!222 &1558416533 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_CullTransparentMesh: 1 ---- !u!1 &1572088722 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1572088723} - - component: {fileID: 1572088725} - - component: {fileID: 1572088724} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1572088723 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 789601277} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -30, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1572088724 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: HyperPlay Login - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 48 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 16 - m_fontSizeMax: 40 - m_fontStyle: 1 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1572088725 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_CullTransparentMesh: 1 ---- !u!1 &1755680254 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1755680255} - - component: {fileID: 1755680257} - - component: {fileID: 1755680256} - m_Layer: 5 - m_Name: Toggle - Remember Me - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1755680255 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1755680254} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 482586193} - - {fileID: 669337708} - m_Father: {fileID: 956735924} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1755680256 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1755680254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &1755680257 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1755680254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 482586194} - toggleTransition: 1 - graphic: {fileID: 859742332} - m_Group: {fileID: 0} - onValueChanged: - m_PersistentCalls: - m_Calls: [] - m_IsOn: 0 ---- !u!1 &1812470005 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1812470006} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1812470006 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1812470005} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1028782730} - - {fileID: 772918784} - m_Father: {fileID: 210878634} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -21} - m_SizeDelta: {x: -32, y: -58} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1001 &2048731595 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 956735924} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - HyperPlay - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Login with HyperPlay - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 18.85 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 2048731598} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!224 &2048731596 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} ---- !u!1 &2048731597 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} ---- !u!114 &2048731598 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2048731597} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &2048731599 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2048731597} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &2066044325 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2066044329} - - component: {fileID: 2066044328} - - component: {fileID: 2066044327} - - component: {fileID: 2066044326} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2066044326 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &2066044327 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1280, y: 720} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &2066044328 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &2066044329 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 789601277} - - {fileID: 1135875169} - - {fileID: 314965760} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 893732505} - - {fileID: 1290034541} - - {fileID: 433476714} - - {fileID: 2066044329} diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity.meta deleted file mode 100644 index fe08f9ae5..000000000 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scenes/SampleLogin - HyperPlay.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a31aa87c0b8cd954bb4b14166cc257dd -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts.meta deleted file mode 100644 index 634ad428e..000000000 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2d9c25322424d4f41a30626fdfd56e0e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs b/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs deleted file mode 100644 index 2485cd1ca..000000000 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs +++ /dev/null @@ -1,63 +0,0 @@ -using ChainSafe.Gaming.HyperPlay; -using ChainSafe.Gaming.UnityPackage.Connection; -using ChainSafe.Gaming.Web3.Build; -using ChainSafe.Gaming.Web3.Evm.Wallet; -using Microsoft.Extensions.DependencyInjection; -using UnityEngine; -using UnityEngine.UI; - -/// -/// Login using HyperPlay desktop client. -/// -public class HyperPlayLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter -{ - [SerializeField] private Button loginButton; - [SerializeField] private Toggle rememberMeToggle; - - private bool _storedSessionAvailable; - - protected override async void Initialize() - { - base.Initialize(); - - _storedSessionAvailable = false; - - await using (var lightWeb3 = await HyperPlayWeb3.BuildLightweightWeb3(new HyperPlayConfig())) - { - var data = lightWeb3.ServiceProvider.GetService(); - - _storedSessionAvailable = data.RememberSession; - } - - if (_storedSessionAvailable) // auto-login - { - Debug.Log("Proceeding with auto-login."); - - await TryConnect(); - } - - loginButton.onClick.AddListener(OnLoginClicked); - } - - public Web3Builder ConfigureServices(Web3Builder web3Builder) - { - return web3Builder.Configure(services => - { - var config = new HyperPlayConfig - { - RememberSession = rememberMeToggle.isOn || _storedSessionAvailable, - }; -#if UNITY_WEBGL && !UNITY_EDITOR - services.UseHyperPlay(config); -#else - services.UseHyperPlay(config); -#endif - services.UseWalletSigner().UseWalletTransactionExecutor(); - }); - } - - private async void OnLoginClicked() - { - await TryConnect(); - } -} diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs.meta b/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs.meta deleted file mode 100644 index 4e7edde78..000000000 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/Scripts/HyperPlayLoginProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 16b51cbda3e44ff44a13173ffbde98b3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/package.json b/Packages/io.chainsafe.web3-unity.hyperplay/package.json index 36092d972..7605eaf85 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/package.json +++ b/Packages/io.chainsafe.web3-unity.hyperplay/package.json @@ -22,12 +22,5 @@ "name": "ChainSafe Gaming", "email": "bd@chainsafe.io", "url": "https://gaming.chainsafe.io/" - }, - "samples": [ - { - "displayName": "HyperPlay Samples", - "description": "Contains example of integration and usage of HyperPlay functionality.", - "path": "Samples~/Web3.Unity HyperPlay" - } - ] + } } \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes.meta b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes.meta deleted file mode 100644 index 4fac99df1..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 63a4252d0dda4554abf1f9920c4dc15c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.meta b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.meta deleted file mode 100644 index b4eae20d6..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4a0d35cae9132bd48886c358c7a15c98 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity deleted file mode 100644 index 642ed1d09..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity +++ /dev/null @@ -1,3156 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &57877275 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 57877276} - - component: {fileID: 57877278} - - component: {fileID: 57877277} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &57877276 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 57877275} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1079369615} - m_Father: {fileID: 118889340} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 10, y: -10} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &57877277 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 57877275} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &57877278 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 57877275} - m_CullTransparentMesh: 1 ---- !u!1 &118889339 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 118889340} - - component: {fileID: 118889341} - m_Layer: 5 - m_Name: Toggle - Remember Me - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &118889340 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118889339} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 57877276} - - {fileID: 1214381517} - m_Father: {fileID: 221640018348301908} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 20.73} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &118889341 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118889339} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 57877277} - toggleTransition: 1 - graphic: {fileID: 1079369616} - m_Group: {fileID: 0} - onValueChanged: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1679801100} - m_TargetAssemblyTypeName: Web3AuthLogin, Assembly-CSharp - m_MethodName: SetRememberMe - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_IsOn: 0 ---- !u!1 &249944480 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 249944481} - - component: {fileID: 249944483} - - component: {fileID: 249944482} - m_Layer: 5 - m_Name: Title - Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &249944481 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 249944480} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1897816690} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &249944482 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 249944480} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.412, g: 0.043672003, b: 0.043672003, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Error ---- !u!222 &249944483 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 249944480} - m_CullTransparentMesh: 1 ---- !u!1 &279657855 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 279657856} - - component: {fileID: 279657859} - - component: {fileID: 279657858} - - component: {fileID: 279657857} - m_Layer: 5 - m_Name: Fade - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &279657856 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 337558420} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &279657857 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 279657858} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 0} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &279657858 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &279657859 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_CullTransparentMesh: 1 ---- !u!1 &337558419 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 337558420} - - component: {fileID: 337558421} - m_Layer: 5 - m_Name: Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &337558420 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337558419} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 279657856} - - {fileID: 1897816690} - m_Father: {fileID: 1799608973} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &337558421 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337558419} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9df78976caa7771429cfe2b9b96e1491, type: 3} - m_Name: - m_EditorClassIdentifier: - MessageLabel: {fileID: 804898217} ---- !u!1 &359109759 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 359109762} - - component: {fileID: 359109761} - - component: {fileID: 359109760} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &359109760 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359109759} - m_Enabled: 1 ---- !u!20 &359109761 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359109759} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.101960786, g: 0.101960786, b: 0.10980392, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &359109762 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359109759} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &771332079 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 771332080} - - component: {fileID: 771332082} - - component: {fileID: 771332081} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &771332080 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 771332079} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 221640018553606200} - m_Father: {fileID: 1799608973} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.725} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &771332081 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 771332079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!114 &771332082 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 771332079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 25 - m_Right: 25 - m_Top: 25 - m_Bottom: 25 - m_ChildAlignment: 0 - m_Spacing: 50 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &804898216 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 804898219} - - component: {fileID: 804898218} - - component: {fileID: 804898217} - m_Layer: 5 - m_Name: Error message - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &804898217 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804898216} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!222 &804898218 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804898216} - m_CullTransparentMesh: 1 ---- !u!224 &804898219 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804898216} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1520162125} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1025578980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1025578983} - - component: {fileID: 1025578982} - - component: {fileID: 1025578981} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1025578981 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1025578980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &1025578982 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1025578980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1025578983 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1025578980} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1079369614 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1079369615} - - component: {fileID: 1079369617} - - component: {fileID: 1079369616} - m_Layer: 5 - m_Name: Checkmark - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1079369615 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1079369614} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 57877276} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1079369616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1079369614} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1079369617 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1079369614} - m_CullTransparentMesh: 1 ---- !u!1 &1214381516 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1214381517} - - component: {fileID: 1214381519} - - component: {fileID: 1214381518} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1214381517 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1214381516} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 118889340} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 9, y: -0.5} - m_SizeDelta: {x: -28, y: -3} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1214381518 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1214381516} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Remember me - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14.84 - m_fontSizeBase: 14.84 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1214381519 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1214381516} - m_CullTransparentMesh: 1 ---- !u!1 &1387636275 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1387636276} - - component: {fileID: 1387636279} - - component: {fileID: 1387636278} - - component: {fileID: 1387636277} - m_Layer: 5 - m_Name: Button - Ok - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1387636276 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1640414611} - m_Father: {fileID: 1520162125} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 0} ---- !u!114 &1387636277 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1387636278} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 0} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1387636278 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1387636279 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_CullTransparentMesh: 1 ---- !u!1 &1520162124 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1520162125} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1520162125 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1520162124} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 804898219} - - {fileID: 1387636276} - m_Father: {fileID: 1897816690} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -21} - m_SizeDelta: {x: -32, y: -58} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1640414610 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1640414611} - - component: {fileID: 1640414613} - - component: {fileID: 1640414612} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1640414611 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1640414610} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1387636276} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1640414612 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1640414610} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 19 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: OK ---- !u!222 &1640414613 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1640414610} - m_CullTransparentMesh: 1 ---- !u!1 &1679801098 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1679801099} - - component: {fileID: 1679801100} - - component: {fileID: 1679801101} - - component: {fileID: 1679801102} - m_Layer: 0 - m_Name: Logic - Login - Web3Auth - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1679801099 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1679801100 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7b6902e441950fa4bb5cefdd2263164a, type: 3} - m_Name: - m_EditorClassIdentifier: - gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ - errorPopup: {fileID: 337558421} - clientId: BCc0wTmuXureEzgawhUSZOWu4bgWo56sZPrxLiHQCpg5OHcNrfa44esdTS8Dm77VtmaIyjhbthdWfbLhSwf7jtU - redirectUri: torusapp://io.chainsafe.gamingsdk.sdkdemoscene/auth - network: 1 - providerAndButtonPairs: - - Button: {fileID: 7400892926620024700} - Provider: 0 - - Button: {fileID: 7400892927795158149} - Provider: 10 - - Button: {fileID: 7400892926443314765} - Provider: 1 - - Button: {fileID: 7400892927495363539} - Provider: 2 - - Button: {fileID: 7400892926127870699} - Provider: 3 - - Button: {fileID: 7400892925769233044} - Provider: 4 - web3AuthWalletGUIPrefab: {fileID: 2911816339710442984, guid: b394e6c49b9bd734089cea0293265bd3, type: 3} - enableWalletGUI: 1 - displayWalletIcon: 1 - autoConfirmTransactions: 1 - autoPopUpWalletOnTx: 0 - walletIcon: {fileID: 21300000, guid: 55a46a48cd53d834f99fda690cfea4b1, type: 3} - walletLogo: {fileID: 21300000, guid: ab400fd9b39316240b30631965553264, type: 3} - displayFont: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - primaryBackgroundColour: {r: 0, g: 0, b: 0, a: 0.8627451} - menuBackgroundColour: {r: 0.05490196, g: 0.05490196, b: 0.05490196, a: 1} - primaryTextColour: {r: 1, g: 1, b: 1, a: 1} - secondaryTextColour: {r: 0.42603534, g: 0.8584906, b: 0.2956123, a: 1} - borderButtonColour: {r: 1, g: 1, b: 1, a: 1} ---- !u!114 &1679801101 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} - m_Name: - m_EditorClassIdentifier: - sceneToLoad: SampleMain ---- !u!114 &1679801102 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d4bbed5530529ea46a1f41b407499dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - rampConfig: {fileID: 11400000, guid: d1f58846e4fc71d4e90f287a86f328f9, type: 2} ---- !u!1 &1712945644 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1712945646} - - component: {fileID: 1712945645} - m_Layer: 0 - m_Name: _countly - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1712945645 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1712945644} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3830ecbe0f874710af3c6377b4540a81, type: 3} - m_Name: - m_EditorClassIdentifier: - Auth: - ServerUrl: - AppKey: - DeviceId: - Config: - Salt: - EnablePost: 0 - EnableTestMode: 0 - EnableConsoleLogging: 0 - NotificationMode: 0 - SessionDuration: 0 - EventQueueThreshold: 0 - StoredRequestLimit: 0 - TotalBreadcrumbsAllowed: 0 - EnableAutomaticCrashReporting: 0 ---- !u!4 &1712945646 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1712945644} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1799608969 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1799608973} - - component: {fileID: 1799608972} - - component: {fileID: 1799608971} - - component: {fileID: 1799608970} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1799608970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1799608971 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1280, y: 720} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &1799608972 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &1799608973 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1941751038} - - {fileID: 771332080} - - {fileID: 337558420} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1 &1897816689 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1897816690} - - component: {fileID: 1897816692} - - component: {fileID: 1897816691} - m_Layer: 5 - m_Name: Error Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1897816690 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897816689} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 249944481} - - {fileID: 1520162125} - m_Father: {fileID: 337558420} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -8.4831} - m_SizeDelta: {x: 400, y: 167.1662} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1897816691 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897816689} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.912, b: 0.912, a: 0.9490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1897816692 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897816689} - m_CullTransparentMesh: 1 ---- !u!1 &1941751037 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1941751038} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1941751038 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1941751037} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2063401255} - - {fileID: 2017486156} - m_Father: {fileID: 1799608973} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.725} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -25} - m_SizeDelta: {x: -50, y: -50} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &2017486155 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2017486156} - - component: {fileID: 2017486158} - - component: {fileID: 2017486157} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2017486156 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2017486155} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1941751038} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -30, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2017486157 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2017486155} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Login to continue - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 48 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 16 - m_fontSizeMax: 40 - m_fontStyle: 1 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &2017486158 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2017486155} - m_CullTransparentMesh: 1 ---- !u!1 &2063401254 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2063401255} - - component: {fileID: 2063401257} - - component: {fileID: 2063401256} - m_Layer: 5 - m_Name: ChainSafe Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2063401255 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2063401254} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1941751038} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2063401256 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2063401254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2063401257 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2063401254} - m_CullTransparentMesh: 1 ---- !u!114 &221640017808192961 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029837872496} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640017808193020 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Reddit - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Reddit - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640017808192961} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!1001 &221640018061849258 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Twitter - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Twitter - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640018061849263} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640018061849263 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601030083336742} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!224 &221640018348301908 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018348301909} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4687163642340118773} - - {fileID: 4687163641433322252} - - {fileID: 4687163642770551236} - - {fileID: 4687163641674593370} - - {fileID: 4687163643058568546} - - {fileID: 4687163643165482269} - - {fileID: 118889340} - - {fileID: 221640018720180776} - m_Father: {fileID: 221640018553606200} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &221640018348301909 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 221640018348301908} - - component: {fileID: 221640018348301910} - - component: {fileID: 221640018348301911} - m_Layer: 5 - m_Name: Buttons - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &221640018348301910 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018348301909} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 5 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &221640018348301911 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018348301909} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!224 &221640018553606200 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018553606201} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 221640018348301908} - m_Father: {fileID: 771332080} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &221640018553606201 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 221640018553606200} - - component: {fileID: 221640018553606203} - m_Layer: 5 - m_Name: Column - Web3Auth - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &221640018553606203 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018553606201} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 300 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!224 &221640018720180776 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018720180777} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 221640018348301908} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 15.65} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &221640018720180777 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 221640018720180776} - - component: {fileID: 221640018720180778} - - component: {fileID: 221640018720180779} - m_Layer: 5 - m_Name: Powered by W3A - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!222 &221640018720180778 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018720180777} - m_CullTransparentMesh: 1 ---- !u!114 &221640018720180779 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018720180777} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Powered by Web3Auth - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 14 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1001 &221640018859585634 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Facebook - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Facebook - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640018859585639} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640018859585639 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028750301422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640019303666003 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 1679801100} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: set_tag - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: UnityEngine.Component, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Google - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Google - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640019303666004} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640019303666004 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028908071391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640019533962427 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Twitch - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Twitch - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640019533962428} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640019533962428 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029147800631} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640019796147396 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Discord - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Discord - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640019796147401} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640019796147401 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029661561928} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!224 &4687163641433322252 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018061849258} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163641674593370 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640017808193020} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163642340118773 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019303666003} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163642770551236 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018859585634} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163643058568546 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019796147396} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163643165482269 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019533962427} - m_PrefabAsset: {fileID: 0} ---- !u!114 &7400892925769233044 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019533962427} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029147800631} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892926127870699 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019796147396} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029661561928} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892926443314765 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018859585634} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028750301422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892926620024700 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019303666003} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028908071391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892927495363539 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640017808193020} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029837872496} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892927795158149 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018061849258} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601030083336742} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &8852601028750301422 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018859585634} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601028908071391 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019303666003} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601029147800631 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019533962427} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601029661561928 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019796147396} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601029837872496 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640017808193020} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601030083336742 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018061849258} - m_PrefabAsset: {fileID: 0} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 359109762} - - {fileID: 1025578983} - - {fileID: 1679801099} - - {fileID: 1799608973} - - {fileID: 1712945646} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity.meta b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity.meta deleted file mode 100644 index 1a53d87da..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scenes/SampleLogin - Web3Auth.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a8a8b501e594874448546e904e2437c5 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts.meta b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts.meta deleted file mode 100644 index 7c28da439..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 69be851f73848a64b85590574e09aef5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities.meta b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities.meta deleted file mode 100644 index 3ec680a81..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d1132bb018bb0b141a97e58bfad0dba6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs deleted file mode 100644 index 8a0db80da..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using UnityEngine; - -public class DisableObjectForPlatform : MonoBehaviour -{ - [SerializeField] - private RuntimePlatform platform; - - private void Awake() - { - if (Application.platform == platform) - { - gameObject.SetActive(false); - } - } -} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs.meta deleted file mode 100644 index d52a45e17..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Utilities/DisableObjectForPlatform.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 86740c22756c992438bba39abdbae13f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs deleted file mode 100644 index c262a1d57..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Numerics; -using System.Runtime.InteropServices; -using AOT; -using System.Threading.Tasks; -using ChainSafe.Gaming.UnityPackage; -using ChainSafe.Gaming.UnityPackage.Connection; -using ChainSafe.Gaming.Web3.Analytics; -using ChainSafe.Gaming.Web3.Build; -using ChainSafe.GamingSdk.Web3Auth; -using Nethereum.Hex.HexTypes; -using TMPro; -using UnityEngine; -using UnityEngine.UI; -using Network = Web3Auth.Network; - -/// -/// Login using Web3Auth. -/// -public class Web3AuthLoginProvider : ConnectionHandler, IWeb3BuilderServiceAdapter -{ - /// - /// Struct used for pairing login buttons to Web3 auth providers. - /// Used when adding as listeners to the buttons. - /// - [Serializable] - public struct ProviderAndButtonPair - { - public Button Button; - public Provider Provider; - } - - [Header("Web3 Auth")] - [SerializeField] private string clientId; - [SerializeField] private string redirectUri; - [SerializeField] private Network network; - [Header("UI")] - [SerializeField] private List providerAndButtonPairs; - - [Header("Wallet GUI Options")] - [SerializeField] private GameObject web3AuthWalletGUIPrefab; - [SerializeField] private bool enableWalletGUI; - [SerializeField] private bool displayWalletIcon; - [SerializeField] private bool autoConfirmTransactions; - [SerializeField] private bool autoPopUpWalletOnTx; - [SerializeField] private Sprite walletIcon; - [SerializeField] private Sprite walletLogo; - [SerializeField] public TMP_FontAsset displayFont; - [SerializeField] private Color primaryBackgroundColour; - [SerializeField] private Color menuBackgroundColour; - [SerializeField] private Color primaryTextColour; - [SerializeField] private Color secondaryTextColour; - [SerializeField] private Color borderButtonColour; - private Provider? selectedProvider; - private bool rememberMe; - -// #if UNITY_WEBGL && !UNITY_EDITOR -// [DllImport("__Internal")] -// private static extern void InitWeb3Auth(string clientId, string chainId, string rpcTarget, string displayName, string blockExplorerUrl, string ticker, string tickerName, string network); -// [DllImport("__Internal")] -// private static extern void Web3AuthLogin(string provider, bool rememberMe); -// [DllImport("__Internal")] -// private static extern void SetLoginCallback(Action callback); -// -// public static event Action Web3AuthWebGLConnected; -// #endif - - - public void SetRememberMe(bool rememberMe) - { - this.rememberMe = rememberMe; - } - - protected override async void Initialize() - { - base.Initialize(); - providerAndButtonPairs.ForEach(p => - p.Button.onClick.AddListener(delegate { LoginWithWeb3Auth(p.Provider); })); -// #if !UNITY_EDITOR && UNITY_WEBGL -// Web3AuthWebGLConnected += Web3AuthSet; -// var projectSettings = ProjectConfigUtilities.Load(); -// SetLoginCallback(Web3AuthConnected); -// //1155 is a decimal number, we need to convert it to an integer -// InitWeb3Auth(clientId, new HexBigInteger(BigInteger.Parse(projectSettings.ChainId)).HexValue, -// projectSettings.Rpc, projectSettings.Network, "", projectSettings.Symbol, "", network.ToString().ToLower()); -// #else - if (!string.IsNullOrEmpty(KeyStoreManagerUtils.getPreferencesData(KeyStoreManagerUtils.SESSION_ID))) - { - rememberMe = true; - await TryConnect(); - Debug.Log("Restoring existing Web3Auth session (Remember Me"); - } -// #endif - } -// #if !UNITY_EDITOR && UNITY_WEBGL -// private async void Web3AuthSet(string sessionId) -// { -// Web3AuthWebGLConnected -= Web3AuthSet; -// KeyStoreManagerUtils.savePreferenceData(KeyStoreManagerUtils.SESSION_ID, sessionId); -// await TryConnect(); -// } -// #endif -// -// #if !UNITY_EDITOR && UNITY_WEBGL -// [MonoPInvokeCallback(typeof(Action))] -// private static void Web3AuthConnected(string sessionId) -// { -// Web3AuthWebGLConnected?.Invoke(sessionId); -// } -// #endif - - private async void LoginWithWeb3Auth(Provider provider) - { -// #if UNITY_WEBGL && !UNITY_EDITOR -// Web3AuthLogin(provider.ToString().ToLower(), rememberMe); -// #else - selectedProvider = provider; - await TryConnect(); - LogAnalytics(provider); - } - - public override async Task TryConnect() - { - await base.TryConnect(); - - EnableWalletGUI(); - } - - private void EnableWalletGUI() - { - if (!enableWalletGUI) return; - var w3aWalletGuiConfig = new Web3AuthWalletGUI.Web3AuthWalletConfig - { - DisplayWalletIcon = displayWalletIcon, - AutoPopUpWalletOnTx = autoPopUpWalletOnTx, - AutoConfirmTransactions = autoConfirmTransactions, - WalletIcon = walletIcon, - WalletLogo = walletLogo, - DisplayFont = displayFont, - PrimaryBackgroundColour = primaryBackgroundColour, - MenuBackgroundColour = menuBackgroundColour, - PrimaryTextColour = primaryTextColour, - SecondaryTextColour = secondaryTextColour, - BorderButtonColour = borderButtonColour - }; - var web3AuthWalletInstance = Instantiate(web3AuthWalletGUIPrefab); - web3AuthWalletInstance.GetComponent().Initialize(w3aWalletGuiConfig); - } - - private void LogAnalytics(Provider provider) - { - IAnalyticsClient client = (IAnalyticsClient)Web3Accessor.Web3.ServiceProvider.GetService(typeof(IAnalyticsClient)); - client.CaptureEvent(new AnalyticsEvent() - { - EventName = $"Login provider {provider}", - PackageName = "io.chainsafe.web3-unity.web3auth", - }); -// #endif - - } - - public Web3Builder ConfigureServices(Web3Builder web3Builder) - { - return web3Builder.Configure(services => - { - var web3AuthConfig = new Web3AuthWalletConfig - { - Web3AuthOptions = new() - { - clientId = clientId, - redirectUrl = new Uri(redirectUri), - network = network, - whiteLabel = new() - { - mode = Web3Auth.ThemeModes.dark, - defaultLanguage = Web3Auth.Language.en, - appName = "ChainSafe Gaming SDK", - } - }, - RememberMe = rememberMe - }; - - // if (selectedProvider.HasValue) - // { - // web3AuthConfig.LoginParams = new LoginParams() - // { - // loginProvider = selectedProvider.Value - // }; - // } - - services.UseWeb3AuthWallet(web3AuthConfig); - }); - } -} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs.meta deleted file mode 100644 index 95e3a7742..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/Scripts/Web3AuthLoginProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7b6902e441950fa4bb5cefdd2263164a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/package.json b/Packages/io.chainsafe.web3-unity.web3auth/package.json index 93ce00993..f13b5be67 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/package.json +++ b/Packages/io.chainsafe.web3-unity.web3auth/package.json @@ -21,12 +21,5 @@ "name": "ChainSafe Gaming", "email": "bd@chainsafe.io", "url": "https://gaming.chainsafe.io/" - }, - "samples": [ - { - "displayName": "Web3Auth Samples", - "description": "Contains implementations for Web3 Auth Sample Operations using Web3Auth Package.", - "path": "Samples~/Web3.Unity Web3Auth" - } - ] + } } diff --git a/scripts/data/duplicate_samples.txt b/scripts/data/duplicate_samples.txt index 5d10c352b..380838cf8 100644 --- a/scripts/data/duplicate_samples.txt +++ b/scripts/data/duplicate_samples.txt @@ -1,18 +1,12 @@ source:src/UnitySampleProject/Assets/Samples/web3.unity SDK display_name:Web3.Unity Samples destination:Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/ -source:src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth - display_name:Web3Auth Samples - destination:Packages/io.chainsafe.web3-unity.web3auth/Samples~/Web3.Unity Web3Auth/ source:src/UnitySampleProject/Assets/Samples/web3.unity SDK Lootboxes display_name:Lootboxes Samples destination:Packages/io.chainsafe.web3-unity.lootboxes/Samples~/Web3.Unity Chainlink Lootboxes/ source:src/UnitySampleProject/Assets/Samples/web3.unity SDK Ramp display_name:Ramp Samples destination:Packages/io.chainsafe.web3-unity.ramp/Samples~/Web3.Unity Ramp/ -source:src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay - display_name:HyperPlay Samples - destination:Packages/io.chainsafe.web3-unity.hyperplay/Samples~/Web3.Unity HyperPlay/ source:src/UnitySampleProject/Assets/Samples/web3.unity SDK Marketplace display_name:Marketplace Samples destination:Packages/io.chainsafe.web3-unity.marketplace/Samples~/Web3.Unity Marketplace/ \ No newline at end of file diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay.meta deleted file mode 100644 index e31cd1d39..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 75427b31abfe3df4cac0a541e61a77fd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0.meta deleted file mode 100644 index 2a6c792ca..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9e3d4519bbfe0064b9144f4635cafd27 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples.meta deleted file mode 100644 index 0e1de5261..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 907825ad61e12c64ca267491a6ac7626 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes.meta deleted file mode 100644 index be3471699..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d14fc9e97141fe548bdeadfc8bfa5fb0 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity deleted file mode 100644 index 33c6ecd11..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity +++ /dev/null @@ -1,2145 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &210878633 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 210878634} - - component: {fileID: 210878636} - - component: {fileID: 210878635} - m_Layer: 5 - m_Name: Error Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &210878634 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 751800059} - - {fileID: 1812470006} - m_Father: {fileID: 314965760} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -8.4831} - m_SizeDelta: {x: 400, y: 167.1662} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &210878635 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.912, b: 0.912, a: 0.9490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &210878636 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_CullTransparentMesh: 1 ---- !u!1 &314965759 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 314965760} - - component: {fileID: 314965761} - m_Layer: 5 - m_Name: Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &314965760 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 314965759} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1042712191} - - {fileID: 210878634} - m_Father: {fileID: 2066044329} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &314965761 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 314965759} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9df78976caa7771429cfe2b9b96e1491, type: 3} - m_Name: - m_EditorClassIdentifier: - MessageLabel: {fileID: 1028782728} ---- !u!1 &433476712 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 433476714} - - component: {fileID: 433476718} - - component: {fileID: 433476717} - - component: {fileID: 433476716} - m_Layer: 0 - m_Name: Login Logic - HyperPlay - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &433476714 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &433476716 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} - m_Name: - m_EditorClassIdentifier: - sceneToLoad: SampleMain ---- !u!114 &433476717 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d4bbed5530529ea46a1f41b407499dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - rampConfig: {fileID: 11400000, guid: d1f58846e4fc71d4e90f287a86f328f9, type: 2} ---- !u!114 &433476718 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 16b51cbda3e44ff44a13173ffbde98b3, type: 3} - m_Name: - m_EditorClassIdentifier: - gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ - errorPopup: {fileID: 314965761} - loginButton: {fileID: 2048731599} - rememberMeToggle: {fileID: 1755680257} ---- !u!1 &482586192 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 482586193} - - component: {fileID: 482586195} - - component: {fileID: 482586194} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &482586193 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 482586192} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 859742331} - m_Father: {fileID: 1755680255} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0.25, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -44, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &482586194 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 482586192} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &482586195 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 482586192} - m_CullTransparentMesh: 1 ---- !u!1 &669337707 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 669337708} - - component: {fileID: 669337710} - - component: {fileID: 669337709} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &669337708 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669337707} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1755680255} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -75, y: 0} - m_SizeDelta: {x: -150, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &669337709 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669337707} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Remember me - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} - m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 18 - m_fontSizeBase: 18 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 8 - m_fontSizeMax: 36 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &669337710 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669337707} - m_CullTransparentMesh: 1 ---- !u!1 &740974330 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 740974331} - - component: {fileID: 740974332} - m_Layer: 5 - m_Name: Column - HyperPlay - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &740974331 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 740974330} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 956735924} - m_Father: {fileID: 1135875169} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &740974332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 740974330} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 300 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &751800058 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 751800059} - - component: {fileID: 751800061} - - component: {fileID: 751800060} - m_Layer: 5 - m_Name: Title - Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &751800059 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 210878634} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &751800060 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.412, g: 0.043672003, b: 0.043672003, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Error ---- !u!222 &751800061 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_CullTransparentMesh: 1 ---- !u!1 &772918783 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 772918784} - - component: {fileID: 772918787} - - component: {fileID: 772918786} - - component: {fileID: 772918785} - m_Layer: 5 - m_Name: Button - Ok - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &772918784 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1558416531} - m_Father: {fileID: 1812470006} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 0} ---- !u!114 &772918785 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 772918786} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 314965761} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &772918786 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &772918787 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_CullTransparentMesh: 1 ---- !u!1 &789601276 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 789601277} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &789601277 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789601276} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1362301615} - - {fileID: 1572088723} - m_Father: {fileID: 2066044329} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.725} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -25} - m_SizeDelta: {x: -50, y: -50} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &859742330 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 859742331} - - component: {fileID: 859742333} - - component: {fileID: 859742332} - m_Layer: 5 - m_Name: Checkmark - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &859742331 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 859742330} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 482586193} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &859742332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 859742330} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &859742333 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 859742330} - m_CullTransparentMesh: 1 ---- !u!1 &893732502 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 893732505} - - component: {fileID: 893732504} - - component: {fileID: 893732503} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &893732503 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - m_Enabled: 1 ---- !u!20 &893732504 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.101960786, g: 0.101960786, b: 0.10980392, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &893732505 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &956735923 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 956735924} - - component: {fileID: 956735926} - - component: {fileID: 956735925} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &956735924 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2048731596} - - {fileID: 1755680255} - m_Father: {fileID: 740974331} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &956735925 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &956735926 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 5 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1028782727 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1028782730} - - component: {fileID: 1028782729} - - component: {fileID: 1028782728} - m_Layer: 5 - m_Name: Error message - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1028782728 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!222 &1028782729 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_CullTransparentMesh: 1 ---- !u!224 &1028782730 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1812470006} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1042712190 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1042712191} - - component: {fileID: 1042712194} - - component: {fileID: 1042712193} - - component: {fileID: 1042712192} - m_Layer: 5 - m_Name: Fade - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1042712191 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 314965760} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1042712192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1042712193} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 314965761} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1042712193 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1042712194 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_CullTransparentMesh: 1 ---- !u!1 &1135875168 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1135875169} - - component: {fileID: 1135875171} - - component: {fileID: 1135875170} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1135875169 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 740974331} - m_Father: {fileID: 2066044329} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.725} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &1135875170 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!114 &1135875171 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 25 - m_Right: 25 - m_Top: 25 - m_Bottom: 25 - m_ChildAlignment: 0 - m_Spacing: 50 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1290034538 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1290034541} - - component: {fileID: 1290034540} - - component: {fileID: 1290034539} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1290034539 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &1290034540 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1290034541 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1362301614 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1362301615} - - component: {fileID: 1362301617} - - component: {fileID: 1362301616} - m_Layer: 5 - m_Name: ChainSafe Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1362301615 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 789601277} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1362301616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1362301617 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_CullTransparentMesh: 1 ---- !u!1 &1558416530 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1558416531} - - component: {fileID: 1558416533} - - component: {fileID: 1558416532} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1558416531 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 772918784} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1558416532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 19 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: OK ---- !u!222 &1558416533 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_CullTransparentMesh: 1 ---- !u!1 &1572088722 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1572088723} - - component: {fileID: 1572088725} - - component: {fileID: 1572088724} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1572088723 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 789601277} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -30, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1572088724 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: HyperPlay Login - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 48 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 16 - m_fontSizeMax: 40 - m_fontStyle: 1 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1572088725 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_CullTransparentMesh: 1 ---- !u!1 &1755680254 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1755680255} - - component: {fileID: 1755680257} - - component: {fileID: 1755680256} - m_Layer: 5 - m_Name: Toggle - Remember Me - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1755680255 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1755680254} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 482586193} - - {fileID: 669337708} - m_Father: {fileID: 956735924} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1755680256 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1755680254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &1755680257 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1755680254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 482586194} - toggleTransition: 1 - graphic: {fileID: 859742332} - m_Group: {fileID: 0} - onValueChanged: - m_PersistentCalls: - m_Calls: [] - m_IsOn: 0 ---- !u!1 &1812470005 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1812470006} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1812470006 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1812470005} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1028782730} - - {fileID: 772918784} - m_Father: {fileID: 210878634} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -21} - m_SizeDelta: {x: -32, y: -58} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1001 &2048731595 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 956735924} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - HyperPlay - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Login with HyperPlay - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 18.85 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 2048731598} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!224 &2048731596 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} ---- !u!1 &2048731597 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} ---- !u!114 &2048731598 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2048731597} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &2048731599 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2048731597} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &2066044325 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2066044329} - - component: {fileID: 2066044328} - - component: {fileID: 2066044327} - - component: {fileID: 2066044326} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2066044326 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &2066044327 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1280, y: 720} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &2066044328 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &2066044329 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 789601277} - - {fileID: 1135875169} - - {fileID: 314965760} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 893732505} - - {fileID: 1290034541} - - {fileID: 433476714} - - {fileID: 2066044329} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity.meta deleted file mode 100644 index fe08f9ae5..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - HyperPlay.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a31aa87c0b8cd954bb4b14166cc257dd -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts.meta deleted file mode 100644 index 634ad428e..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2d9c25322424d4f41a30626fdfd56e0e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth.meta deleted file mode 100644 index 374feb19c..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8891d18538099464a9dacfca856bbcde -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0.meta deleted file mode 100644 index 651e9e4da..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 33a51b42673f2c846a8854730ba710e2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples.meta deleted file mode 100644 index fe05f3366..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f9b43c4a7a1622440b018cb67df9e2cd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes.meta deleted file mode 100644 index 4fac99df1..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 63a4252d0dda4554abf1f9920c4dc15c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.meta deleted file mode 100644 index b4eae20d6..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4a0d35cae9132bd48886c358c7a15c98 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity deleted file mode 100644 index 642ed1d09..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity +++ /dev/null @@ -1,3156 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &57877275 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 57877276} - - component: {fileID: 57877278} - - component: {fileID: 57877277} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &57877276 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 57877275} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1079369615} - m_Father: {fileID: 118889340} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 10, y: -10} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &57877277 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 57877275} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &57877278 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 57877275} - m_CullTransparentMesh: 1 ---- !u!1 &118889339 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 118889340} - - component: {fileID: 118889341} - m_Layer: 5 - m_Name: Toggle - Remember Me - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &118889340 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118889339} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 57877276} - - {fileID: 1214381517} - m_Father: {fileID: 221640018348301908} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 20.73} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &118889341 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 118889339} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 57877277} - toggleTransition: 1 - graphic: {fileID: 1079369616} - m_Group: {fileID: 0} - onValueChanged: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1679801100} - m_TargetAssemblyTypeName: Web3AuthLogin, Assembly-CSharp - m_MethodName: SetRememberMe - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_IsOn: 0 ---- !u!1 &249944480 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 249944481} - - component: {fileID: 249944483} - - component: {fileID: 249944482} - m_Layer: 5 - m_Name: Title - Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &249944481 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 249944480} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1897816690} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &249944482 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 249944480} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.412, g: 0.043672003, b: 0.043672003, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Error ---- !u!222 &249944483 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 249944480} - m_CullTransparentMesh: 1 ---- !u!1 &279657855 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 279657856} - - component: {fileID: 279657859} - - component: {fileID: 279657858} - - component: {fileID: 279657857} - m_Layer: 5 - m_Name: Fade - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &279657856 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 337558420} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &279657857 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 279657858} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 0} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &279657858 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &279657859 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279657855} - m_CullTransparentMesh: 1 ---- !u!1 &337558419 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 337558420} - - component: {fileID: 337558421} - m_Layer: 5 - m_Name: Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &337558420 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337558419} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 279657856} - - {fileID: 1897816690} - m_Father: {fileID: 1799608973} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &337558421 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337558419} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9df78976caa7771429cfe2b9b96e1491, type: 3} - m_Name: - m_EditorClassIdentifier: - MessageLabel: {fileID: 804898217} ---- !u!1 &359109759 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 359109762} - - component: {fileID: 359109761} - - component: {fileID: 359109760} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &359109760 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359109759} - m_Enabled: 1 ---- !u!20 &359109761 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359109759} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.101960786, g: 0.101960786, b: 0.10980392, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &359109762 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359109759} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &771332079 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 771332080} - - component: {fileID: 771332082} - - component: {fileID: 771332081} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &771332080 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 771332079} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 221640018553606200} - m_Father: {fileID: 1799608973} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.725} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &771332081 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 771332079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!114 &771332082 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 771332079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 25 - m_Right: 25 - m_Top: 25 - m_Bottom: 25 - m_ChildAlignment: 0 - m_Spacing: 50 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &804898216 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 804898219} - - component: {fileID: 804898218} - - component: {fileID: 804898217} - m_Layer: 5 - m_Name: Error message - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &804898217 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804898216} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!222 &804898218 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804898216} - m_CullTransparentMesh: 1 ---- !u!224 &804898219 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804898216} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1520162125} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1025578980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1025578983} - - component: {fileID: 1025578982} - - component: {fileID: 1025578981} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1025578981 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1025578980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &1025578982 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1025578980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1025578983 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1025578980} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1079369614 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1079369615} - - component: {fileID: 1079369617} - - component: {fileID: 1079369616} - m_Layer: 5 - m_Name: Checkmark - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1079369615 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1079369614} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 57877276} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1079369616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1079369614} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1079369617 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1079369614} - m_CullTransparentMesh: 1 ---- !u!1 &1214381516 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1214381517} - - component: {fileID: 1214381519} - - component: {fileID: 1214381518} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1214381517 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1214381516} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 118889340} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 9, y: -0.5} - m_SizeDelta: {x: -28, y: -3} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1214381518 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1214381516} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Remember me - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14.84 - m_fontSizeBase: 14.84 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1214381519 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1214381516} - m_CullTransparentMesh: 1 ---- !u!1 &1387636275 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1387636276} - - component: {fileID: 1387636279} - - component: {fileID: 1387636278} - - component: {fileID: 1387636277} - m_Layer: 5 - m_Name: Button - Ok - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1387636276 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1640414611} - m_Father: {fileID: 1520162125} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 0} ---- !u!114 &1387636277 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1387636278} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 0} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1387636278 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1387636279 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1387636275} - m_CullTransparentMesh: 1 ---- !u!1 &1520162124 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1520162125} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1520162125 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1520162124} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 804898219} - - {fileID: 1387636276} - m_Father: {fileID: 1897816690} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -21} - m_SizeDelta: {x: -32, y: -58} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1640414610 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1640414611} - - component: {fileID: 1640414613} - - component: {fileID: 1640414612} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1640414611 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1640414610} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1387636276} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1640414612 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1640414610} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 19 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: OK ---- !u!222 &1640414613 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1640414610} - m_CullTransparentMesh: 1 ---- !u!1 &1679801098 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1679801099} - - component: {fileID: 1679801100} - - component: {fileID: 1679801101} - - component: {fileID: 1679801102} - m_Layer: 0 - m_Name: Logic - Login - Web3Auth - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1679801099 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1679801100 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7b6902e441950fa4bb5cefdd2263164a, type: 3} - m_Name: - m_EditorClassIdentifier: - gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ - errorPopup: {fileID: 337558421} - clientId: BCc0wTmuXureEzgawhUSZOWu4bgWo56sZPrxLiHQCpg5OHcNrfa44esdTS8Dm77VtmaIyjhbthdWfbLhSwf7jtU - redirectUri: torusapp://io.chainsafe.gamingsdk.sdkdemoscene/auth - network: 1 - providerAndButtonPairs: - - Button: {fileID: 7400892926620024700} - Provider: 0 - - Button: {fileID: 7400892927795158149} - Provider: 10 - - Button: {fileID: 7400892926443314765} - Provider: 1 - - Button: {fileID: 7400892927495363539} - Provider: 2 - - Button: {fileID: 7400892926127870699} - Provider: 3 - - Button: {fileID: 7400892925769233044} - Provider: 4 - web3AuthWalletGUIPrefab: {fileID: 2911816339710442984, guid: b394e6c49b9bd734089cea0293265bd3, type: 3} - enableWalletGUI: 1 - displayWalletIcon: 1 - autoConfirmTransactions: 1 - autoPopUpWalletOnTx: 0 - walletIcon: {fileID: 21300000, guid: 55a46a48cd53d834f99fda690cfea4b1, type: 3} - walletLogo: {fileID: 21300000, guid: ab400fd9b39316240b30631965553264, type: 3} - displayFont: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - primaryBackgroundColour: {r: 0, g: 0, b: 0, a: 0.8627451} - menuBackgroundColour: {r: 0.05490196, g: 0.05490196, b: 0.05490196, a: 1} - primaryTextColour: {r: 1, g: 1, b: 1, a: 1} - secondaryTextColour: {r: 0.42603534, g: 0.8584906, b: 0.2956123, a: 1} - borderButtonColour: {r: 1, g: 1, b: 1, a: 1} ---- !u!114 &1679801101 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} - m_Name: - m_EditorClassIdentifier: - sceneToLoad: SampleMain ---- !u!114 &1679801102 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679801098} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d4bbed5530529ea46a1f41b407499dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - rampConfig: {fileID: 11400000, guid: d1f58846e4fc71d4e90f287a86f328f9, type: 2} ---- !u!1 &1712945644 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1712945646} - - component: {fileID: 1712945645} - m_Layer: 0 - m_Name: _countly - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1712945645 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1712945644} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3830ecbe0f874710af3c6377b4540a81, type: 3} - m_Name: - m_EditorClassIdentifier: - Auth: - ServerUrl: - AppKey: - DeviceId: - Config: - Salt: - EnablePost: 0 - EnableTestMode: 0 - EnableConsoleLogging: 0 - NotificationMode: 0 - SessionDuration: 0 - EventQueueThreshold: 0 - StoredRequestLimit: 0 - TotalBreadcrumbsAllowed: 0 - EnableAutomaticCrashReporting: 0 ---- !u!4 &1712945646 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1712945644} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1799608969 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1799608973} - - component: {fileID: 1799608972} - - component: {fileID: 1799608971} - - component: {fileID: 1799608970} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1799608970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1799608971 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1280, y: 720} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &1799608972 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &1799608973 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799608969} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1941751038} - - {fileID: 771332080} - - {fileID: 337558420} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1 &1897816689 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1897816690} - - component: {fileID: 1897816692} - - component: {fileID: 1897816691} - m_Layer: 5 - m_Name: Error Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1897816690 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897816689} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 249944481} - - {fileID: 1520162125} - m_Father: {fileID: 337558420} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -8.4831} - m_SizeDelta: {x: 400, y: 167.1662} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1897816691 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897816689} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.912, b: 0.912, a: 0.9490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1897816692 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1897816689} - m_CullTransparentMesh: 1 ---- !u!1 &1941751037 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1941751038} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1941751038 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1941751037} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2063401255} - - {fileID: 2017486156} - m_Father: {fileID: 1799608973} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.725} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -25} - m_SizeDelta: {x: -50, y: -50} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &2017486155 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2017486156} - - component: {fileID: 2017486158} - - component: {fileID: 2017486157} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2017486156 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2017486155} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1941751038} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -30, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2017486157 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2017486155} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Login to continue - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 48 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 16 - m_fontSizeMax: 40 - m_fontStyle: 1 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &2017486158 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2017486155} - m_CullTransparentMesh: 1 ---- !u!1 &2063401254 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2063401255} - - component: {fileID: 2063401257} - - component: {fileID: 2063401256} - m_Layer: 5 - m_Name: ChainSafe Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2063401255 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2063401254} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1941751038} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2063401256 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2063401254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2063401257 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2063401254} - m_CullTransparentMesh: 1 ---- !u!114 &221640017808192961 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029837872496} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640017808193020 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Reddit - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Reddit - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640017808192961} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!1001 &221640018061849258 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Twitter - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Twitter - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640018061849263} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640018061849263 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601030083336742} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!224 &221640018348301908 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018348301909} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4687163642340118773} - - {fileID: 4687163641433322252} - - {fileID: 4687163642770551236} - - {fileID: 4687163641674593370} - - {fileID: 4687163643058568546} - - {fileID: 4687163643165482269} - - {fileID: 118889340} - - {fileID: 221640018720180776} - m_Father: {fileID: 221640018553606200} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &221640018348301909 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 221640018348301908} - - component: {fileID: 221640018348301910} - - component: {fileID: 221640018348301911} - m_Layer: 5 - m_Name: Buttons - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &221640018348301910 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018348301909} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 5 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &221640018348301911 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018348301909} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!224 &221640018553606200 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018553606201} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 221640018348301908} - m_Father: {fileID: 771332080} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &221640018553606201 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 221640018553606200} - - component: {fileID: 221640018553606203} - m_Layer: 5 - m_Name: Column - Web3Auth - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &221640018553606203 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018553606201} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 300 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!224 &221640018720180776 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018720180777} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 221640018348301908} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 15.65} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &221640018720180777 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 221640018720180776} - - component: {fileID: 221640018720180778} - - component: {fileID: 221640018720180779} - m_Layer: 5 - m_Name: Powered by W3A - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!222 &221640018720180778 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018720180777} - m_CullTransparentMesh: 1 ---- !u!114 &221640018720180779 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 221640018720180777} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Powered by Web3Auth - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 14 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1001 &221640018859585634 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Facebook - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Facebook - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640018859585639} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640018859585639 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028750301422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640019303666003 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 1679801100} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: set_tag - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: UnityEngine.Component, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Google - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Google - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640019303666004} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640019303666004 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028908071391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640019533962427 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Twitch - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Twitch - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640019533962428} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640019533962428 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029147800631} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1001 &221640019796147396 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 221640018348301908} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 50 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Discord - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Continue with Discord - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 17.9 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - insertIndex: -1 - addedObject: {fileID: 221640019796147401} - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!114 &221640019796147401 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029661561928} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!224 &4687163641433322252 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018061849258} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163641674593370 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640017808193020} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163642340118773 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019303666003} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163642770551236 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018859585634} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163643058568546 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019796147396} - m_PrefabAsset: {fileID: 0} ---- !u!224 &4687163643165482269 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019533962427} - m_PrefabAsset: {fileID: 0} ---- !u!114 &7400892925769233044 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019533962427} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029147800631} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892926127870699 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019796147396} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029661561928} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892926443314765 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018859585634} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028750301422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892926620024700 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019303666003} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601028908071391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892927495363539 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640017808193020} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601029837872496} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7400892927795158149 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018061849258} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8852601030083336742} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &8852601028750301422 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018859585634} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601028908071391 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019303666003} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601029147800631 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019533962427} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601029661561928 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640019796147396} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601029837872496 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640017808193020} - m_PrefabAsset: {fileID: 0} ---- !u!1 &8852601030083336742 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 221640018061849258} - m_PrefabAsset: {fileID: 0} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 359109762} - - {fileID: 1025578983} - - {fileID: 1679801099} - - {fileID: 1799608973} - - {fileID: 1712945646} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity.meta deleted file mode 100644 index 1a53d87da..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - Web3Auth.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: a8a8b501e594874448546e904e2437c5 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts.meta deleted file mode 100644 index 7c28da439..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 69be851f73848a64b85590574e09aef5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities.meta deleted file mode 100644 index 3ec680a81..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d1132bb018bb0b141a97e58bfad0dba6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs deleted file mode 100644 index 8a0db80da..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using UnityEngine; - -public class DisableObjectForPlatform : MonoBehaviour -{ - [SerializeField] - private RuntimePlatform platform; - - private void Awake() - { - if (Application.platform == platform) - { - gameObject.SetActive(false); - } - } -} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs.meta deleted file mode 100644 index d52a45e17..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scripts/Utilities/DisableObjectForPlatform.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 86740c22756c992438bba39abdbae13f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity deleted file mode 100644 index d9e83311c..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity +++ /dev/null @@ -1,1741 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &210878633 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 210878634} - - component: {fileID: 210878636} - - component: {fileID: 210878635} - m_Layer: 5 - m_Name: Error Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &210878634 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 751800059} - - {fileID: 1812470006} - m_Father: {fileID: 314965760} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -8.4831} - m_SizeDelta: {x: 400, y: 167.1662} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &210878635 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.912, b: 0.912, a: 0.9490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &210878636 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 210878633} - m_CullTransparentMesh: 1 ---- !u!1 &314965759 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 314965760} - - component: {fileID: 314965761} - m_Layer: 5 - m_Name: Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &314965760 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 314965759} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1042712191} - - {fileID: 210878634} - m_Father: {fileID: 2066044329} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &314965761 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 314965759} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9df78976caa7771429cfe2b9b96e1491, type: 3} - m_Name: - m_EditorClassIdentifier: - MessageLabel: {fileID: 1028782728} ---- !u!1 &433476712 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 433476714} - - component: {fileID: 433476715} - - component: {fileID: 433476716} - - component: {fileID: 433476717} - m_Layer: 0 - m_Name: Login Logic - MetaMask - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &433476714 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &433476715 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b547b7e8ac8d2f442bfefe0c9f59ed1d, type: 3} - m_Name: - m_EditorClassIdentifier: - gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ - errorPopup: {fileID: 314965761} - loginButton: {fileID: 2048731599} ---- !u!114 &433476716 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} - m_Name: - m_EditorClassIdentifier: - sceneToLoad: SampleMain ---- !u!114 &433476717 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433476712} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d4bbed5530529ea46a1f41b407499dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - rampConfig: {fileID: 11400000, guid: d1f58846e4fc71d4e90f287a86f328f9, type: 2} ---- !u!1 &740974330 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 740974331} - - component: {fileID: 740974332} - m_Layer: 5 - m_Name: Column - MetaMask - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &740974331 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 740974330} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 956735924} - m_Father: {fileID: 1135875169} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &740974332 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 740974330} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 300 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &751800058 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 751800059} - - component: {fileID: 751800061} - - component: {fileID: 751800060} - m_Layer: 5 - m_Name: Title - Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &751800059 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 210878634} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &751800060 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.412, g: 0.043672003, b: 0.043672003, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Error ---- !u!222 &751800061 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 751800058} - m_CullTransparentMesh: 1 ---- !u!1 &772918783 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 772918784} - - component: {fileID: 772918787} - - component: {fileID: 772918786} - - component: {fileID: 772918785} - m_Layer: 5 - m_Name: Button - Ok - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &772918784 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1558416531} - m_Father: {fileID: 1812470006} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 0} ---- !u!114 &772918785 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 772918786} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 314965761} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &772918786 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &772918787 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772918783} - m_CullTransparentMesh: 1 ---- !u!1 &789601276 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 789601277} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &789601277 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789601276} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1362301615} - - {fileID: 1572088723} - m_Father: {fileID: 2066044329} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.725} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -25} - m_SizeDelta: {x: -50, y: -50} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &893732502 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 893732505} - - component: {fileID: 893732504} - - component: {fileID: 893732503} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &893732503 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - m_Enabled: 1 ---- !u!20 &893732504 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.101960786, g: 0.101960786, b: 0.10980392, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &893732505 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 893732502} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &956735923 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 956735924} - - component: {fileID: 956735926} - - component: {fileID: 956735925} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &956735924 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2048731596} - m_Father: {fileID: 740974331} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &956735925 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &956735926 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 956735923} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 5 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1028782727 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1028782730} - - component: {fileID: 1028782729} - - component: {fileID: 1028782728} - m_Layer: 5 - m_Name: Error message - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1028782728 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!222 &1028782729 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_CullTransparentMesh: 1 ---- !u!224 &1028782730 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1028782727} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1812470006} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1042712190 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1042712191} - - component: {fileID: 1042712194} - - component: {fileID: 1042712193} - - component: {fileID: 1042712192} - m_Layer: 5 - m_Name: Fade - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1042712191 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 314965760} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1042712192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1042712193} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 314965761} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1042712193 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1042712194 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1042712190} - m_CullTransparentMesh: 1 ---- !u!1 &1135875168 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1135875169} - - component: {fileID: 1135875171} - - component: {fileID: 1135875170} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1135875169 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 740974331} - m_Father: {fileID: 2066044329} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.725} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &1135875170 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!114 &1135875171 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135875168} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 25 - m_Right: 25 - m_Top: 25 - m_Bottom: 25 - m_ChildAlignment: 0 - m_Spacing: 50 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &1290034538 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1290034541} - - component: {fileID: 1290034540} - - component: {fileID: 1290034539} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1290034539 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &1290034540 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1290034541 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1290034538} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1362301614 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1362301615} - - component: {fileID: 1362301617} - - component: {fileID: 1362301616} - m_Layer: 5 - m_Name: ChainSafe Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1362301615 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 789601277} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1362301616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1362301617 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362301614} - m_CullTransparentMesh: 1 ---- !u!1 &1558416530 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1558416531} - - component: {fileID: 1558416533} - - component: {fileID: 1558416532} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1558416531 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 772918784} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1558416532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 19 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: OK ---- !u!222 &1558416533 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1558416530} - m_CullTransparentMesh: 1 ---- !u!1 &1572088722 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1572088723} - - component: {fileID: 1572088725} - - component: {fileID: 1572088724} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1572088723 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 789601277} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -30, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1572088724 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: MetaMask Login - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 48 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 16 - m_fontSizeMax: 40 - m_fontStyle: 1 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1572088725 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1572088722} - m_CullTransparentMesh: 1 ---- !u!1 &1812470005 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1812470006} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1812470006 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1812470005} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1028782730} - - {fileID: 772918784} - m_Father: {fileID: 210878634} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -21} - m_SizeDelta: {x: -32, y: -58} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1001 &2048731595 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 956735924} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - MetaMask - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Login with MetaMask - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 18.85 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!224 &2048731596 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} ---- !u!1 &2048731597 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} ---- !u!114 &2048731598 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2048731597} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &2048731599 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 2048731595} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2048731597} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &2066044325 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2066044329} - - component: {fileID: 2066044328} - - component: {fileID: 2066044327} - - component: {fileID: 2066044326} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2066044326 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &2066044327 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1280, y: 720} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &2066044328 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &2066044329 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066044325} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 789601277} - - {fileID: 1135875169} - - {fileID: 314965760} - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity.meta deleted file mode 100644 index 6d95f8e96..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - MetaMask.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 7e829b2033fc8554eb0048ce07704f77 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity deleted file mode 100644 index 328c09cab..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity +++ /dev/null @@ -1,2141 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &23680380 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 23680381} - - component: {fileID: 23680383} - - component: {fileID: 23680382} - m_Layer: 5 - m_Name: ChainSafe Logo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &23680381 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23680380} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 920270120} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.25, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: -50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &23680382 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23680380} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 804f4bf7fbf176544bd5efde4a0749ca, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &23680383 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23680380} - m_CullTransparentMesh: 1 ---- !u!1 &108583391 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 108583392} - - component: {fileID: 108583395} - - component: {fileID: 108583394} - - component: {fileID: 108583393} - m_Layer: 5 - m_Name: Fade - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &108583392 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 108583391} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1701305867} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &108583393 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 108583391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 108583394} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1701305868} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &108583394 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 108583391} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.29803923} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &108583395 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 108583391} - m_CullTransparentMesh: 1 ---- !u!1 &253290328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 253290329} - - component: {fileID: 253290331} - - component: {fileID: 253290330} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &253290329 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 253290328} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 920270120} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -30, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &253290330 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 253290328} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: WalletConnect Login - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 48 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 16 - m_fontSizeMax: 40 - m_fontStyle: 1 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &253290331 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 253290328} - m_CullTransparentMesh: 1 ---- !u!1 &279245842 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 279245843} - - component: {fileID: 279245845} - - component: {fileID: 279245844} - m_Layer: 5 - m_Name: Error Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &279245843 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279245842} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2126730552} - - {fileID: 1491563362} - m_Father: {fileID: 1701305867} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -8.4831} - m_SizeDelta: {x: 400, y: 167.1662} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &279245844 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279245842} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.912, b: 0.912, a: 0.9490196} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &279245845 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279245842} - m_CullTransparentMesh: 1 ---- !u!1 &351786044 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 351786045} - - component: {fileID: 351786047} - - component: {fileID: 351786046} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &351786045 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 351786044} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1900245909} - m_Father: {fileID: 724612375} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0.25, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -44, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &351786046 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 351786044} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &351786047 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 351786044} - m_CullTransparentMesh: 1 ---- !u!1 &492023254 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 492023255} - - component: {fileID: 492023257} - - component: {fileID: 492023256} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &492023255 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 492023254} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &492023256 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 492023254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &492023257 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 492023254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!1 &654334439 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 654334440} - - component: {fileID: 654334442} - - component: {fileID: 654334441} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &654334440 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 654334439} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 787012149} - - {fileID: 724612375} - m_Father: {fileID: 2036998554} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &654334441 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 654334439} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &654334442 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 654334439} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 5 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &724612374 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 724612375} - - component: {fileID: 724612376} - - component: {fileID: 724612377} - m_Layer: 5 - m_Name: Toggle - Remember Me - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &724612375 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 724612374} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 351786045} - - {fileID: 1791429089} - m_Father: {fileID: 654334440} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &724612376 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 724612374} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 351786046} - toggleTransition: 1 - graphic: {fileID: 1900245910} - m_Group: {fileID: 0} - onValueChanged: - m_PersistentCalls: - m_Calls: [] - m_IsOn: 0 ---- !u!114 &724612377 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 724612374} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &786896300 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 786896301} - - component: {fileID: 786896303} - - component: {fileID: 786896302} - m_Layer: 5 - m_Name: Error message - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &786896301 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 786896300} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1491563362} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &786896302 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 786896300} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: ---- !u!222 &786896303 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 786896300} - m_CullTransparentMesh: 1 ---- !u!1001 &787012148 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 654334440} - m_Modifications: - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_Name - value: Button - Existing Wallet - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_text - value: Login with WalletConnect - objectReference: {fileID: 0} - - target: {fileID: 8781309615174179339, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - propertyPath: m_fontSize - value: 18.85 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} ---- !u!224 &787012149 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4764608378852082086, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 787012148} - m_PrefabAsset: {fileID: 0} ---- !u!114 &787012150 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7324590823460843055, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 787012148} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 787012151} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &787012151 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8775736491206355084, guid: 50ad8ea555027414b8ddfc03fc7d41ab, type: 3} - m_PrefabInstance: {fileID: 787012148} - m_PrefabAsset: {fileID: 0} ---- !u!114 &787012152 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 787012151} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: 50 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &920270119 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 920270120} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &920270120 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 920270119} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 23680381} - - {fileID: 253290329} - m_Father: {fileID: 1880270956} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.725} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -25} - m_SizeDelta: {x: -50, y: -50} - m_Pivot: {x: 0.5, y: 1} ---- !u!1 &1334079840 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1334079841} - - component: {fileID: 1334079842} - - component: {fileID: 1334079843} - - component: {fileID: 1334079844} - m_Layer: 0 - m_Name: Login Logic - WalletConnect - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1334079841 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1334079840} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1334079842 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1334079840} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 687083d27f624b84dbcf6c07a7cadab0, type: 3} - m_Name: - m_EditorClassIdentifier: - gelatoApiKey: 7MFQqyGS1Iui_e_MgmFW1BfbFeJ06g8nnL2oUTlIJug_ - errorPopup: {fileID: 1701305868} - walletConnectConfig: {fileID: 11400000, guid: f9e153ae0e842ea4cadd8bdb2212cc2d, type: 2} - autoLoginPreviousSession: 1 - rememberSessionToggle: {fileID: 724612376} - loginButton: {fileID: 787012150} ---- !u!114 &1334079843 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1334079840} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d2237df0314604419146b916b88d158, type: 3} - m_Name: - m_EditorClassIdentifier: - sceneToLoad: SampleMain ---- !u!114 &1334079844 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1334079840} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d4bbed5530529ea46a1f41b407499dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - rampConfig: {fileID: 11400000, guid: d1f58846e4fc71d4e90f287a86f328f9, type: 2} ---- !u!1 &1491563361 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1491563362} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1491563362 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1491563361} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 786896301} - - {fileID: 8930114541282302188} - m_Father: {fileID: 279245843} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -21} - m_SizeDelta: {x: -32, y: -58} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1621534067 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1621534068} - - component: {fileID: 1621534069} - - component: {fileID: 1621534070} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1621534068 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1621534067} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2036998554} - m_Father: {fileID: 1880270956} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0.725} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &1621534069 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1621534067} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 25 - m_Right: 25 - m_Top: 25 - m_Bottom: 25 - m_ChildAlignment: 0 - m_Spacing: 50 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &1621534070 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1621534067} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 2 - m_VerticalFit: 2 ---- !u!1 &1701305866 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1701305867} - - component: {fileID: 1701305868} - m_Layer: 5 - m_Name: Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1701305867 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1701305866} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 108583392} - - {fileID: 279245843} - m_Father: {fileID: 1880270956} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1701305868 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1701305866} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9df78976caa7771429cfe2b9b96e1491, type: 3} - m_Name: - m_EditorClassIdentifier: - MessageLabel: {fileID: 786896302} ---- !u!1 &1791429088 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1791429089} - - component: {fileID: 1791429091} - - component: {fileID: 1791429092} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1791429089 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1791429088} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 724612375} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.25, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -75, y: 0} - m_SizeDelta: {x: -150, y: -30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1791429091 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1791429088} - m_CullTransparentMesh: 1 ---- !u!114 &1791429092 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1791429088} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Remember me - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} - m_sharedMaterial: {fileID: 7077468325371864899, guid: b137a8f4bbcdafc439306c89bed89215, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294111986 - m_fontColor: {r: 0.95, g: 0.95, b: 0.95, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 18 - m_fontSizeBase: 18 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 8 - m_fontSizeMax: 36 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &1880270952 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1880270956} - - component: {fileID: 1880270955} - - component: {fileID: 1880270954} - - component: {fileID: 1880270953} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1880270953 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880270952} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1880270954 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880270952} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1280, y: 720} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &1880270955 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880270952} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &1880270956 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1880270952} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 920270120} - - {fileID: 1621534068} - - {fileID: 1701305867} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1 &1900245908 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1900245909} - - component: {fileID: 1900245911} - - component: {fileID: 1900245910} - m_Layer: 5 - m_Name: Checkmark - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1900245909 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1900245908} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 351786045} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1900245910 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1900245908} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1900245911 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1900245908} - m_CullTransparentMesh: 1 ---- !u!1 &2036998553 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2036998554} - - component: {fileID: 2036998556} - m_Layer: 5 - m_Name: Column - Existing Wallet - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2036998554 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2036998553} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 654334440} - m_Father: {fileID: 1621534068} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2036998556 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2036998553} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: 300 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &2126730551 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2126730552} - - component: {fileID: 2126730554} - - component: {fileID: 2126730553} - m_Layer: 5 - m_Name: Title - Error - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2126730552 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2126730551} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 279245843} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 1} ---- !u!114 &2126730553 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2126730551} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.412, g: 0.043672003, b: 0.043672003, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 24 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Error ---- !u!222 &2126730554 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2126730551} - m_CullTransparentMesh: 1 ---- !u!1 &2132619529 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2132619532} - - component: {fileID: 2132619531} - - component: {fileID: 2132619530} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &2132619530 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2132619529} - m_Enabled: 1 ---- !u!20 &2132619531 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2132619529} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.101960786, g: 0.101960786, b: 0.10980392, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &2132619532 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2132619529} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4374818084218070658 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5363668363063729578} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.05, g: 0.05, b: 0.05, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 19 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: OK ---- !u!1 &4627664228226118086 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8930114541282302188} - - component: {fileID: 5074726825428834442} - - component: {fileID: 7454433628267776944} - - component: {fileID: 6653863137026160485} - m_Layer: 5 - m_Name: Button - Ok - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!222 &5074726825428834442 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4627664228226118086} - m_CullTransparentMesh: 1 ---- !u!1 &5363668363063729578 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8875635999967305692} - - component: {fileID: 5702431145235818563} - - component: {fileID: 4374818084218070658} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!222 &5702431145235818563 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5363668363063729578} - m_CullTransparentMesh: 1 ---- !u!114 &6653863137026160485 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4627664228226118086} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 7454433628267776944} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1701305868} - m_TargetAssemblyTypeName: Scenes.ErrorPopup, Assembly-CSharp - m_MethodName: Close - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &7454433628267776944 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4627664228226118086} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!224 &8875635999967305692 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5363668363063729578} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8930114541282302188} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!224 &8930114541282302188 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4627664228226118086} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 8875635999967305692} - m_Father: {fileID: 1491563362} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 50} - m_Pivot: {x: 0.5, y: 0} diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity.meta b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity.meta deleted file mode 100644 index 13bd2836d..000000000 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - WalletConnect.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 1c1af5c5662d105498b2412267dde0df -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: From 475ccf35c7315e0143544d0773065818090c4a61 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Mon, 5 Aug 2024 14:29:28 +0300 Subject: [PATCH 38/47] checkpoint --- .../Runtime/Plugins/Web3AuthWebGLModal.jslib | 9 ++- .../Runtime/Web3AuthConnectionProvider.cs | 4 +- .../Runtime/Plugins/LocalStorage.meta | 8 +++ .../Plugins/LocalStorage/LocalStorage.jslib | 15 ++++ .../LocalStorage/LocalStorage.jslib.meta | 32 +++++++++ .../Runtime/Scripts/WebDataStorage.cs | 70 +++++++++++++++---- .../LocalStorage/DataStorage.cs | 2 +- 7 files changed, 123 insertions(+), 17 deletions(-) create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage.meta create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib create mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib.meta diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib index 49d8eae6c..e0bff888a 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib @@ -33,8 +33,13 @@ var Web3AuthWebGLNoModal = { const openLoginStoreObj = openLoginStore ? JSON.parse(openLoginStore) : null; if (openLoginStoreObj && openLoginStoreObj.sessionId) { const sessionId = openLoginStoreObj.sessionId; - Web3AuthWebGLNoModal.loginCallback(sessionId); - } else { + if (Web3AuthWebGLNoModal.loginCallback !== undefined) + { + Web3AuthWebGLNoModal.loginCallback(sessionId); + } + } + else + { console.log("No session ID found in localStorage."); } }); diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs index 6b3506573..5b92531be 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -65,8 +65,6 @@ public override async Task Initialize() projectConfig.Rpc, projectConfig.Network, "", projectConfig.Symbol, "", network.ToString().ToLower(), Initialized, InitializeError); await _initializeTcs.Task; - - Debug.Log("Web3Auth Initialized Successfully."); } #else public override Task Initialize() @@ -160,6 +158,8 @@ private void DisplayModal() [MonoPInvokeCallback(typeof(Action))] private static void Initialized() { + Debug.Log("Web3Auth Initialized Successfully."); + _instance._initializeTcs.SetResult(string.Empty); } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage.meta b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage.meta new file mode 100644 index 000000000..5fda06a91 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a491ee665982be8499fe39683dd8ff52 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib new file mode 100644 index 000000000..f7cf8fba1 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib @@ -0,0 +1,15 @@ +mergeInto(LibraryManager.library, { + Save: function (key, value) { + window.localStorage.setItem(UTF8ToString(key), UTF8ToString(value)); + }, + Load: function (key) { + var loadedItem = window.localStorage.getItem(UTF8ToString(key)); + var bufferSize = lengthBytesUTF8(loadedItem) + 1; + var buffer = _malloc(bufferSize); + stringToUTF8(loadedItem, buffer, bufferSize); + return buffer; + }, + Clear: function (key) { + window.localStorage.removeItem(UTF8ToString(key)); + } +}); \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib.meta b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib.meta new file mode 100644 index 000000000..564591d7b --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 5d7ea583c0fa9d242891019531652d4b +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + WebGL: WebGL + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs index 0acf1ae76..443f4b2fe 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs @@ -1,27 +1,73 @@ using System.Collections.Generic; +using System.Runtime.InteropServices; using System.Threading.Tasks; using ChainSafe.Gaming.LocalStorage; -using ChainSafe.Gaming.Web3.Environment; +using Newtonsoft.Json; using UnityEngine; namespace ChainSafe.Gaming.UnityPackage { - public class WebDataStorage : DataStorage + /// + /// Save and Load persistent data on WebGL + /// + public class WebDataStorage : ILocalStorage { - public WebDataStorage(IEnumerable store, IOperatingSystemMediator osMediator, ILogWriter logWriter) : base(store, osMediator, logWriter) + [DllImport("__Internal")] + private static extern void Save(string key, string value); + + [DllImport("__Internal")] + private static extern string Load(string key); + + [DllImport("__Internal")] + private static extern void Clear(string key); + + + private readonly IEnumerable _store; + + public WebDataStorage(IEnumerable store) { + _store = store; } - - public override async Task Save(T storable, bool createFile = true) + + public async Task Initialize() { - await base.Save(storable, createFile); + foreach (var storable in _store) + { + if (storable.LoadOnInitialize) + { + await Load(storable); + } + } + } - // This forces the data to be saved in WebGL even when reloading WebPages. -#if UNITY_WEBGL && !UNITY_EDITOR - PlayerPrefs.SetString("forceSave", string.Empty); - - PlayerPrefs.Save(); -#endif + public Task Save(T storable, bool createFile = true) where T : IStorable + { + string json = JsonConvert.SerializeObject(storable); + + Save(storable.StoragePath, json); + + return Task.CompletedTask; + } + + public Task Load(T storable) where T : IStorable + { + string json = Load(storable.StoragePath); + + if (string.IsNullOrEmpty(json)) + { + Debug.Log($"Failed to load {storable.StoragePath} : File not found."); + + return Task.CompletedTask; + } + + JsonConvert.PopulateObject(json, storable); + + return Task.CompletedTask; + } + + public void Clear(IStorable storable) + { + Clear(storable.StoragePath); } } } diff --git a/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs b/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs index 8dc607185..d9cb88602 100644 --- a/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs +++ b/src/ChainSafe.Gaming/LocalStorage/DataStorage.cs @@ -88,7 +88,7 @@ public async Task Load(T storable) if (!Exists(path)) { - logWriter.LogError($"Failed to load {storable.StoragePath} : File not found."); + logWriter.Log($"Failed to load {storable.StoragePath} : File not found."); return; } From 0cc3057e657bf0d7a2910141a07b5ebb77079ca0 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Mon, 5 Aug 2024 15:18:18 +0300 Subject: [PATCH 39/47] checkpoint --- .../Runtime/Plugins/Web3AuthWebGLModal.jslib | 106 +++++++++--------- 1 file changed, 55 insertions(+), 51 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib index e0bff888a..61b203a42 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthWebGLModal.jslib @@ -1,63 +1,67 @@ var Web3AuthWebGLNoModal = { $Web3AuthWebGLNoModal : {}, - InitWeb3Auth: function (clientId, chainId, rpcTarget, displayName, blockExplorerUrl, ticker, tickerName, network, callback, fallback) { + InitWeb3Auth: async function (clientId, chainId, rpcTarget, displayName, blockExplorerUrl, ticker, tickerName, network, callback, fallback) { window.web3auth = null; window.walletServicesPlugin = null; - (async function init() { - try { - - console.log("Initializing Web3Auth..."); - - const chainConfig = { - chainNamespace: "eip155", - chainId: UTF8ToString(chainId), - rpcTarget: UTF8ToString(rpcTarget), - displayName: UTF8ToString(displayName), - blockExplorerUrl: UTF8ToString(blockExplorerUrl), - ticker: UTF8ToString(ticker), - tickerName: UTF8ToString(tickerName), - }; - - const privateKeyProvider = new window.EthereumProvider.EthereumPrivateKeyProvider({ config: { chainConfig } }); - window.web3auth = new window.NoModal.Web3AuthNoModal({ - clientId: UTF8ToString(clientId), - privateKeyProvider, - web3AuthNetwork: UTF8ToString(network), - }); - - window.web3auth.on("connected", (data) => { - const openLoginStore = localStorage.getItem("openlogin_store"); - const openLoginStoreObj = openLoginStore ? JSON.parse(openLoginStore) : null; - if (openLoginStoreObj && openLoginStoreObj.sessionId) { - const sessionId = openLoginStoreObj.sessionId; - if (Web3AuthWebGLNoModal.loginCallback !== undefined) - { - Web3AuthWebGLNoModal.loginCallback(sessionId); - } - } - else + try + { + console.log("Initializing Web3Auth..."); + + const chainConfig = + { + chainNamespace: "eip155", + chainId: UTF8ToString(chainId), + rpcTarget: UTF8ToString(rpcTarget), + displayName: UTF8ToString(displayName), + blockExplorerUrl: UTF8ToString(blockExplorerUrl), + ticker: UTF8ToString(ticker), + tickerName: UTF8ToString(tickerName), + }; + + const privateKeyProvider = new window.EthereumProvider.EthereumPrivateKeyProvider({ config: { chainConfig } }); + window.web3auth = new window.NoModal.Web3AuthNoModal( + { + clientId: UTF8ToString(clientId), + privateKeyProvider, + web3AuthNetwork: UTF8ToString(network), + }); + + window.web3auth.on("connected", (data) => + { + const openLoginStore = localStorage.getItem("openlogin_store"); + const openLoginStoreObj = openLoginStore ? JSON.parse(openLoginStore) : null; + if (openLoginStoreObj && openLoginStoreObj.sessionId) + { + const sessionId = openLoginStoreObj.sessionId; + if (Web3AuthWebGLNoModal.loginCallback !== undefined) { - console.log("No session ID found in localStorage."); + Web3AuthWebGLNoModal.loginCallback(sessionId); } - }); - - const openloginAdapter = new window.OpenloginAdapter.OpenloginAdapter(); - window.web3auth.configureAdapter(openloginAdapter); - - await window.web3auth.init(); - - Module.dynCall_v(callback); - } catch (error) { - var stringToReturn = error.message; - var bufferSize = lengthBytesUTF8(stringToReturn) + 1; - var buffer = _malloc(bufferSize); - stringToUTF8(stringToReturn, buffer, bufferSize); - Module.dynCall_vi(fallback, [buffer]); - } - })(); + } + else + { + console.log("No session ID found in localStorage."); + } + }); + + const openloginAdapter = new window.OpenloginAdapter.OpenloginAdapter(); + window.web3auth.configureAdapter(openloginAdapter); + + await window.web3auth.init(); + + Module.dynCall_v(callback); + } + catch (error) + { + var stringToReturn = error.message; + var bufferSize = lengthBytesUTF8(stringToReturn) + 1; + var buffer = _malloc(bufferSize); + stringToUTF8(stringToReturn, buffer, bufferSize); + Module.dynCall_vi(fallback, [buffer]); + } }, Web3AuthLogin: async function (provider, rememberMe, callback, fallback) { From ef1e5a82d6e5ac4eadac41d90873775a435c55c3 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Mon, 5 Aug 2024 18:17:13 +0300 Subject: [PATCH 40/47] fixed json issue --- .../Runtime/Plugins/LocalStorage/LocalStorage.jslib | 5 +++-- .../Runtime/Scripts/WebDataStorage.cs | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib index f7cf8fba1..fdb2b23a9 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib +++ b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/LocalStorage/LocalStorage.jslib @@ -4,9 +4,10 @@ mergeInto(LibraryManager.library, { }, Load: function (key) { var loadedItem = window.localStorage.getItem(UTF8ToString(key)); - var bufferSize = lengthBytesUTF8(loadedItem) + 1; + var json = JSON.stringify(loadedItem); + var bufferSize = lengthBytesUTF8(json) + 1; var buffer = _malloc(bufferSize); - stringToUTF8(loadedItem, buffer, bufferSize); + stringToUTF8(json, buffer, bufferSize); return buffer; }, Clear: function (key) { diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs index 443f4b2fe..6e87b7303 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Runtime.InteropServices; +using System.Text.RegularExpressions; using System.Threading.Tasks; using ChainSafe.Gaming.LocalStorage; using Newtonsoft.Json; @@ -53,13 +54,15 @@ public Task Load(T storable) where T : IStorable { string json = Load(storable.StoragePath); - if (string.IsNullOrEmpty(json)) + if (string.IsNullOrEmpty(json) || json == JsonConvert.Null) { Debug.Log($"Failed to load {storable.StoragePath} : File not found."); return Task.CompletedTask; } - + + json = Regex.Unescape(json.Trim('"')); + JsonConvert.PopulateObject(json, storable); return Task.CompletedTask; From c8219eb37104023f54d6fb53550c876b44911231 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Tue, 6 Aug 2024 13:40:23 +0300 Subject: [PATCH 41/47] added documentation to new files --- .../Connection/ConnectionHandlerExtensions.cs | 15 ++++++++++++ .../RestorableConnectionProvider.cs | 14 ++++++++++- .../StoredConnectionProviderData.cs | 18 ++++++++++++-- .../Runtime/Scripts/DataStorageExtensions.cs | 20 ++++++++++++++++ .../Runtime/Scripts/WebDataStorage.cs | 4 +++- .../LocalStorage/DataStorageExtensions.cs | 23 ++++++++++++++++++ .../LocalStorage/ILocalStorage.cs | 24 +++++++++++++++++++ .../ProjectSettings/EditorBuildSettings.asset | 16 ------------- 8 files changed, 114 insertions(+), 20 deletions(-) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs index 0e2ec464c..2e89f5270 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionHandlerExtensions.cs @@ -3,13 +3,28 @@ namespace ChainSafe.Gaming.Connection { + /// + /// Add extension methods that are used to configure services for . + /// public static class ConnectionHandlerExtensions { + /// + /// Add the given adapter to the . + /// + /// Web3Builder instance to be configured. + /// to be added to . + /// Configured . public static Web3Builder ConfigureServices(this Web3Builder web3Builder, IWeb3BuilderServiceAdapter adapter) { return adapter.ConfigureServices(web3Builder); } + /// + /// Add the given adapters to the . + /// + /// Web3Builder instance to be configured. + /// Multiple to be added to . + /// Configured . public static Web3Builder ConfigureServices(this Web3Builder web3Builder, IWeb3BuilderServiceAdapter[] adapters) { foreach (var adapter in adapters) diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs index 7628ed52e..4e45e8022 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/RestorableConnectionProvider.cs @@ -10,9 +10,13 @@ namespace ChainSafe.Gaming { + /// + /// Connection provider that can be restored from a saved session. + /// public abstract class RestorableConnectionProvider : ConnectionProvider { - [field: SerializeField] public bool RememberSession { get; private set; } + [field: SerializeField, Tooltip("Should this connection provider remember a previous session.")] + public bool RememberSession { get; private set; } public override Web3Builder ConfigureServices(Web3Builder web3Builder) { @@ -28,8 +32,16 @@ public override Web3Builder ConfigureServices(Web3Builder web3Builder) }); } + /// + /// Configure services for the connection provider. + /// + /// Service collection to add services to. protected abstract void ConfigureServices(IWeb3ServiceCollection services); + /// + /// Check if a saved session is available. + /// + /// True if a saved session is available. public abstract Task SavedSessionAvailable(); } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs index f871e5daf..e7e417d30 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/StoredConnectionProviderData.cs @@ -2,33 +2,47 @@ using System.Threading.Tasks; using ChainSafe.Gaming.LocalStorage; using ChainSafe.Gaming.Web3.Core.Logout; +using Microsoft.Extensions.DependencyInjection; using Newtonsoft.Json; using CWeb3 = ChainSafe.Gaming.Web3.Web3; namespace ChainSafe.Gaming.UnityPackage.Connection { + /// + /// Data used to restore a connection provider from a previous session. + /// public class StoredConnectionProviderData : IStorable, IWeb3InitializedHandler, ILogoutHandler { + private ILocalStorage _localStorage; + [JsonIgnore] public string StoragePath => "connection-provider-data.json"; [JsonIgnore] public bool LoadOnInitialize => true; + /// + /// Full Type Name of connection provider to be restored. + /// [JsonProperty] public string TypeName { get; set; } + /// + /// Type of connection provider to be restored. + /// [JsonIgnore] public Type Type => string.IsNullOrEmpty(TypeName) ? null : Type.GetType(TypeName); public async Task OnWeb3Initialized(CWeb3 web3) { - await this.SaveOneTime(); + _localStorage = web3.ServiceProvider.GetService(); + + await _localStorage.Save(this); } public Task OnLogout() { - this.ClearOneTime(); + _localStorage.Clear(this); return Task.CompletedTask; } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs index 50644297f..73ac5629d 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/DataStorageExtensions.cs @@ -7,20 +7,40 @@ namespace ChainSafe.Gaming.UnityPackage { + /// + /// extensions for saving and loading data without dependencies. + /// public static class DataStorageExtensions { + /// + /// Load data one time. + /// + /// Storable to be loaded. + /// Type of storable to be loaded. + /// Loaded storable. public static Task LoadOneTime(this TStorable storable) where TStorable : class, IStorable { return storable.LoadOneTime(DataStorageDependencies(storable)); } + /// + /// Save data one time. + /// + /// Storable to be saved. + /// Type of storable to be saved. + /// Awaitable task. public static Task SaveOneTime(this TStorable storable) where TStorable : class, IStorable { return storable.SaveOneTime(DataStorageDependencies(storable)); } + /// + /// Clear data one time. + /// + /// Storable to be cleared. + /// Type of storable to be cleared. public static void ClearOneTime(this TStorable storable) where TStorable : class, IStorable { diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs index 6e87b7303..324e0a1fc 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/WebDataStorage.cs @@ -1,3 +1,4 @@ +#if UNITY_WEBGL && !UNITY_EDITOR using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text.RegularExpressions; @@ -9,7 +10,7 @@ namespace ChainSafe.Gaming.UnityPackage { /// - /// Save and Load persistent data on WebGL + /// Save and Load persistent data on WebGL. /// public class WebDataStorage : ILocalStorage { @@ -74,3 +75,4 @@ public void Clear(IStorable storable) } } } +#endif \ No newline at end of file diff --git a/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs index a3c40df76..669f6e1a4 100644 --- a/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs +++ b/src/ChainSafe.Gaming/LocalStorage/DataStorageExtensions.cs @@ -5,8 +5,18 @@ namespace ChainSafe.Gaming.LocalStorage { + /// + /// extensions for saving and loading data without dependencies. + /// public static class DataStorageExtensions { + /// + /// Load data one time. + /// + /// Storable to be loaded. + /// Service collection with dependecies. + /// Type of storable to be loaded. + /// Loaded storable. public static async Task LoadOneTime(this TStorable storable, IServiceCollection services) where TStorable : class, IStorable { @@ -19,6 +29,13 @@ public static async Task LoadOneTime(this TStorable storab return storable; } + /// + /// Save data one time. + /// + /// Storable to be saved. + /// Service collection with dependecies. + /// Type of storable to be saved. + /// Awaitable task. public static async Task SaveOneTime(this TStorable storable, IServiceCollection services) where TStorable : class, IStorable { @@ -29,6 +46,12 @@ public static async Task SaveOneTime(this TStorable storable, IServic await localStorage.Save(storable); } + /// + /// Clear data one time. + /// + /// Storable to be cleared. + /// Service collection with dependecies. + /// Type of storable to be cleared. public static void ClearOneTime(this TStorable storable, IServiceCollection services) where TStorable : class, IStorable { diff --git a/src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs b/src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs index fc43ce9e5..19b8150d1 100644 --- a/src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs +++ b/src/ChainSafe.Gaming/LocalStorage/ILocalStorage.cs @@ -3,16 +3,40 @@ namespace ChainSafe.Gaming.LocalStorage { + /// + /// Local storage used for saving and loaded persistent data locally. + /// public interface ILocalStorage { + /// + /// Initialized all storable data here. + /// + /// Awaitable Task. Task Initialize(); + /// + /// Save storable data to local storage. + /// + /// Storable data to be saved. + /// Create storable file if it doesn't exit. + /// Type of storable data to be saved. + /// Awaitable Task. Task Save(T storable, bool createFile = true) where T : IStorable; + /// + /// Load storable data from local storage. + /// + /// Storable data to be loaded. + /// Type of storable data to be loaded. + /// Awaitable Task. Task Load(T storable) where T : IStorable; + /// + /// Clear/Delete storable data for local storage. + /// + /// Storable data to be cleared. void Clear(IStorable storable); } } \ No newline at end of file diff --git a/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset b/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset index 1bab6bcd8..465d7b9a4 100644 --- a/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset +++ b/src/UnitySampleProject/ProjectSettings/EditorBuildSettings.asset @@ -5,22 +5,6 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 m_Scenes: - - enabled: 1 - path: Assets/Samples/web3.unity SDK Web3Auth/2.6.0/Web3Auth Samples/Scenes/SampleLogin - - Web3Auth.unity - guid: a8a8b501e594874448546e904e2437c5 - - enabled: 1 - path: Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - - WalletConnect.unity - guid: 1c1af5c5662d105498b2412267dde0df - - enabled: 1 - path: Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - - MetaMask.unity - guid: 7e829b2033fc8554eb0048ce07704f77 - - enabled: 1 - path: Assets/Samples/web3.unity SDK HyperPlay/1.0.0/HyperPlay Samples/Scenes/SampleLogin - - HyperPlay.unity - guid: a31aa87c0b8cd954bb4b14166cc257dd - enabled: 1 path: Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity From 95cdf52391c0e56acdbd21675a663bf768d0b7e8 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Tue, 6 Aug 2024 14:12:45 +0300 Subject: [PATCH 42/47] added show wallet gui --- .../WalletGUI/Scripts/ShowWalletGui.cs | 48 +++++++++++++++++++ .../WalletGUI/Scripts/ShowWalletGui.cs.meta | 3 ++ 2 files changed, 51 insertions(+) create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs new file mode 100644 index 000000000..a0ca35333 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs @@ -0,0 +1,48 @@ +using System.Threading.Tasks; +using ChainSafe.Gaming.UnityPackage.Connection; +using ChainSafe.Gaming.Web3; +using TMPro; +using UnityEngine; + +namespace ChainSafe.GamingSdk.Web3Auth +{ + public class ShowWalletGui : MonoBehaviour, IWeb3InitializedHandler + { + [SerializeField] private Web3AuthWalletGUI web3AuthWalletGUIPrefab; + [SerializeField] private bool displayWalletIcon; + [SerializeField] private bool autoConfirmTransactions; + [SerializeField] private bool autoPopUpWalletOnTx; + [SerializeField] private Sprite walletIcon; + [SerializeField] private Sprite walletLogo; + [SerializeField] public TMP_FontAsset displayFont; + [SerializeField] private Color primaryBackgroundColour; + [SerializeField] private Color menuBackgroundColour; + [SerializeField] private Color primaryTextColour; + [SerializeField] private Color secondaryTextColour; + [SerializeField] private Color borderButtonColour; + + public Task OnWeb3Initialized(Web3 web3) + { + var w3AWalletGuiConfig = new Web3AuthWalletGUI.Web3AuthWalletConfig + { + DisplayWalletIcon = displayWalletIcon, + AutoPopUpWalletOnTx = autoPopUpWalletOnTx, + AutoConfirmTransactions = autoConfirmTransactions, + WalletIcon = walletIcon, + WalletLogo = walletLogo, + DisplayFont = displayFont, + PrimaryBackgroundColour = primaryBackgroundColour, + MenuBackgroundColour = menuBackgroundColour, + PrimaryTextColour = primaryTextColour, + SecondaryTextColour = secondaryTextColour, + BorderButtonColour = borderButtonColour + }; + + // TODO pass web3 instance here instead of using web3accessor + var web3AuthWalletInstance = Instantiate(web3AuthWalletGUIPrefab); + web3AuthWalletInstance.Initialize(w3AWalletGuiConfig); + + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta new file mode 100644 index 000000000..03555cb1d --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e470bd7f19d447ecb8618e45dc63ba88 +timeCreated: 1722941248 \ No newline at end of file From f494bce1de1150b25323627c1946a2ac956fa617 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Tue, 6 Aug 2024 15:15:58 +0300 Subject: [PATCH 43/47] web3auth wallet gui added --- .../Scenes/SampleLogin - Connect Modal.unity | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity index 3eed27c70..e44f10450 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -295,6 +295,7 @@ GameObject: - component: {fileID: 1658652864} - component: {fileID: 1658652862} - component: {fileID: 1658652865} + - component: {fileID: 1658652866} m_Layer: 0 m_Name: ConnectToWallet m_TagString: Untagged @@ -363,6 +364,30 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sceneToLoad: SampleMain +--- !u!114 &1658652866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658652861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e470bd7f19d447ecb8618e45dc63ba88, type: 3} + m_Name: + m_EditorClassIdentifier: + web3AuthWalletGUIPrefab: {fileID: 7656622686525558909, guid: b394e6c49b9bd734089cea0293265bd3, type: 3} + displayWalletIcon: 1 + autoConfirmTransactions: 1 + autoPopUpWalletOnTx: 0 + walletIcon: {fileID: 21300000, guid: 55a46a48cd53d834f99fda690cfea4b1, type: 3} + walletLogo: {fileID: 21300000, guid: ab400fd9b39316240b30631965553264, type: 3} + displayFont: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + primaryBackgroundColour: {r: 0, g: 0, b: 0, a: 0.7254902} + menuBackgroundColour: {r: 0, g: 0, b: 0, a: 1} + primaryTextColour: {r: 1, g: 1, b: 1, a: 1} + secondaryTextColour: {r: 0.42745098, g: 0.85882354, b: 0.29411766, a: 1} + borderButtonColour: {r: 1, g: 1, b: 1, a: 1} --- !u!224 &199374705475579680 RectTransform: m_ObjectHideFlags: 0 From 6ebd44f03b12c4ba5f9dd96282f6e8ac455b909d Mon Sep 17 00:00:00 2001 From: rob1997 Date: Tue, 6 Aug 2024 16:02:48 +0300 Subject: [PATCH 44/47] removed ErrorPopup --- .../Runtime/Scripts/Connection/ErrorPopup.cs | 28 ------------------- .../Scripts/Connection/ErrorPopup.cs.meta | 3 -- 2 files changed, 31 deletions(-) delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs delete mode 100644 Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs.meta diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs deleted file mode 100644 index 2e7134c64..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs +++ /dev/null @@ -1,28 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; - -namespace ChainSafe.Gaming.UnityPackage.Common -{ - public class ErrorPopup : MonoBehaviour - { - public Text MessageLabel; - - /// - /// Display error pop up when Login fails. - /// - /// Error message to be displayed. - public void ShowError(string message) - { - gameObject.SetActive(true); - MessageLabel.text = message; - } - - /// - /// Close error popup. - /// - public void Close() - { - gameObject.SetActive(false); - } - } -} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs.meta b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs.meta deleted file mode 100644 index 3c9c65f01..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ErrorPopup.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 9df78976caa7771429cfe2b9b96e1491 -timeCreated: 1691581208 \ No newline at end of file From bc4f9ea75ea3c8ed1493b79c5461de363f9aa05c Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 7 Aug 2024 12:59:43 +0300 Subject: [PATCH 45/47] transaction issue kinda fixed --- .../InProcessTransactionExecutor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs index a00ab3bca..f2d7ec5fe 100644 --- a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs +++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs @@ -81,9 +81,9 @@ public virtual async Task SendTransaction(TransactionReques try { - var receipt = await Account.TransactionManager.SendTransactionAndWaitForReceiptAsync(txInput); + string hash = await Account.TransactionManager.SendTransactionAsync(txInput); - return await rpcProvider.GetTransaction(receipt.TransactionHash); + return await rpcProvider.GetTransaction(hash); } catch (Exception ex) { From 706a47fae4ca0776c92788d8e7920c2290617912 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 7 Aug 2024 13:17:42 +0300 Subject: [PATCH 46/47] show wallet gui moved to connection provider SO --- .../Web3AuthConnectionProvider.asset | 14 ++++++ .../WalletGUI/Scripts/ShowWalletGui.cs | 48 ------------------- .../WalletGUI/Scripts/ShowWalletGui.cs.meta | 3 -- .../Runtime/Web3AuthConnectionProvider.cs | 31 ++++++++++-- .../Scenes/SampleLogin - Connect Modal.unity | 25 ---------- 5 files changed, 42 insertions(+), 79 deletions(-) delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs delete mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset index 72b42dd43..bffe747a2 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProvider.asset @@ -19,3 +19,17 @@ MonoBehaviour: redirectUri: torusapp://io.chainsafe.gamingsdk.sdkdemoscene/auth network: 1 modalPrefab: {fileID: 1060439634540712661, guid: 42c53f26848d1d54a9ffe18fae333758, type: 3} + enableWalletGui: 1 + web3AuthWalletGUIPrefab: {fileID: 7656622686525558909, guid: b394e6c49b9bd734089cea0293265bd3, type: 3} + walletGuiConfig: + DisplayWalletIcon: 1 + AutoPopUpWalletOnTx: 1 + AutoConfirmTransactions: 0 + WalletIcon: {fileID: 21300000, guid: 55a46a48cd53d834f99fda690cfea4b1, type: 3} + WalletLogo: {fileID: 21300000, guid: ab400fd9b39316240b30631965553264, type: 3} + DisplayFont: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + PrimaryBackgroundColour: {r: 0, g: 0, b: 0, a: 0.7254902} + MenuBackgroundColour: {r: 0, g: 0, b: 0, a: 1} + PrimaryTextColour: {r: 1, g: 1, b: 1, a: 1} + SecondaryTextColour: {r: 0.42745098, g: 0.85882354, b: 0.29411766, a: 1} + BorderButtonColour: {r: 1, g: 1, b: 1, a: 1} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs deleted file mode 100644 index a0ca35333..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System.Threading.Tasks; -using ChainSafe.Gaming.UnityPackage.Connection; -using ChainSafe.Gaming.Web3; -using TMPro; -using UnityEngine; - -namespace ChainSafe.GamingSdk.Web3Auth -{ - public class ShowWalletGui : MonoBehaviour, IWeb3InitializedHandler - { - [SerializeField] private Web3AuthWalletGUI web3AuthWalletGUIPrefab; - [SerializeField] private bool displayWalletIcon; - [SerializeField] private bool autoConfirmTransactions; - [SerializeField] private bool autoPopUpWalletOnTx; - [SerializeField] private Sprite walletIcon; - [SerializeField] private Sprite walletLogo; - [SerializeField] public TMP_FontAsset displayFont; - [SerializeField] private Color primaryBackgroundColour; - [SerializeField] private Color menuBackgroundColour; - [SerializeField] private Color primaryTextColour; - [SerializeField] private Color secondaryTextColour; - [SerializeField] private Color borderButtonColour; - - public Task OnWeb3Initialized(Web3 web3) - { - var w3AWalletGuiConfig = new Web3AuthWalletGUI.Web3AuthWalletConfig - { - DisplayWalletIcon = displayWalletIcon, - AutoPopUpWalletOnTx = autoPopUpWalletOnTx, - AutoConfirmTransactions = autoConfirmTransactions, - WalletIcon = walletIcon, - WalletLogo = walletLogo, - DisplayFont = displayFont, - PrimaryBackgroundColour = primaryBackgroundColour, - MenuBackgroundColour = menuBackgroundColour, - PrimaryTextColour = primaryTextColour, - SecondaryTextColour = secondaryTextColour, - BorderButtonColour = borderButtonColour - }; - - // TODO pass web3 instance here instead of using web3accessor - var web3AuthWalletInstance = Instantiate(web3AuthWalletGUIPrefab); - web3AuthWalletInstance.Initialize(w3AWalletGuiConfig); - - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta deleted file mode 100644 index 03555cb1d..000000000 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/WalletGUI/Scripts/ShowWalletGui.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: e470bd7f19d447ecb8618e45dc63ba88 -timeCreated: 1722941248 \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs index 5b92531be..b04b9c09d 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthConnectionProvider.cs @@ -19,7 +19,7 @@ /// ConnectionProvider for connecting wallet via Web3Auth. /// [CreateAssetMenu(menuName = "ChainSafe/Connection Provider/Web3Auth", fileName = nameof(Web3AuthConnectionProvider))] -public class Web3AuthConnectionProvider : RestorableConnectionProvider, ILogoutHandler +public class Web3AuthConnectionProvider : RestorableConnectionProvider, ILogoutHandler, IWeb3InitializedHandler { [SerializeField] private string clientId; [SerializeField] private string redirectUri; @@ -27,9 +27,17 @@ public class Web3AuthConnectionProvider : RestorableConnectionProvider, ILogoutH [Space] - [SerializeField] public GameObject modalPrefab; + [SerializeField] private GameObject modalPrefab; + + [Space] + + [SerializeField] private bool enableWalletGui; + [SerializeField] private Web3AuthWalletGUI web3AuthWalletGUIPrefab; + [SerializeField] private Web3AuthWalletGUI.Web3AuthWalletConfig walletGuiConfig; private Web3AuthModal _modal; + + private Web3AuthWalletGUI _web3AuthWalletGui; [NonSerialized] private bool _rememberMe; @@ -118,7 +126,7 @@ protected override void ConfigureServices(IWeb3ServiceCollection services) services.UseWeb3AuthWallet(web3AuthConfig); - services.AddSingleton(this); + services.AddSingleton(_ => this); } public override Task SavedSessionAvailable() @@ -206,7 +214,24 @@ private static void ConnectError(string message) public Task OnLogout() { _rememberMe = false; + + if (enableWalletGui && _web3AuthWalletGui != null) + { + Destroy(_web3AuthWalletGui.gameObject); + } return Task.CompletedTask; } + + public Task OnWeb3Initialized(Web3 web3) + { + if (enableWalletGui) + { + // TODO pass web3 instance here instead of using web3accessor + _web3AuthWalletGui = Instantiate(web3AuthWalletGUIPrefab); + _web3AuthWalletGui.Initialize(walletGuiConfig); + } + + return Task.CompletedTask; + } } diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity index e44f10450..3eed27c70 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.6.0/Web3.Unity Samples/Scenes/SampleLogin - Connect Modal.unity @@ -295,7 +295,6 @@ GameObject: - component: {fileID: 1658652864} - component: {fileID: 1658652862} - component: {fileID: 1658652865} - - component: {fileID: 1658652866} m_Layer: 0 m_Name: ConnectToWallet m_TagString: Untagged @@ -364,30 +363,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sceneToLoad: SampleMain ---- !u!114 &1658652866 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1658652861} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e470bd7f19d447ecb8618e45dc63ba88, type: 3} - m_Name: - m_EditorClassIdentifier: - web3AuthWalletGUIPrefab: {fileID: 7656622686525558909, guid: b394e6c49b9bd734089cea0293265bd3, type: 3} - displayWalletIcon: 1 - autoConfirmTransactions: 1 - autoPopUpWalletOnTx: 0 - walletIcon: {fileID: 21300000, guid: 55a46a48cd53d834f99fda690cfea4b1, type: 3} - walletLogo: {fileID: 21300000, guid: ab400fd9b39316240b30631965553264, type: 3} - displayFont: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - primaryBackgroundColour: {r: 0, g: 0, b: 0, a: 0.7254902} - menuBackgroundColour: {r: 0, g: 0, b: 0, a: 1} - primaryTextColour: {r: 1, g: 1, b: 1, a: 1} - secondaryTextColour: {r: 0.42745098, g: 0.85882354, b: 0.29411766, a: 1} - borderButtonColour: {r: 1, g: 1, b: 1, a: 1} --- !u!224 &199374705475579680 RectTransform: m_ObjectHideFlags: 0 From 83d7a027cab171d7002c3a02344a1021e68b76d1 Mon Sep 17 00:00:00 2001 From: rob1997 Date: Wed, 7 Aug 2024 21:22:27 +0300 Subject: [PATCH 47/47] HyperPlay WebGL fix --- .../Runtime/Scripts/HyperPlayWebGLProvider.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 5ab90fb61..a4421e0a3 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayWebGLProvider.cs +++ b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Scripts/HyperPlayWebGLProvider.cs @@ -17,7 +17,7 @@ public class HyperPlayWebGLProvider : HyperPlayProvider { private readonly IHyperPlayConfig _config; private readonly IHyperPlayData _data; - private readonly DataStorage _dataStorage; + private readonly ILocalStorage _localStorage; private readonly IHttpClient _httpClient; private readonly IChainConfig _chainConfig; private readonly ChainRegistryProvider _chainRegistryProvider; @@ -28,15 +28,15 @@ public class HyperPlayWebGLProvider : HyperPlayProvider /// /// Injected . /// Injected . - /// Injected . + /// Injected . /// Injected . /// ChainConfig to fetch chain data. /// Injected . - public HyperPlayWebGLProvider(IHyperPlayConfig config, IHyperPlayData data, DataStorage dataStorage, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(config, data, dataStorage, environment, chainConfig, chainRegistryProvider) + public HyperPlayWebGLProvider(IHyperPlayConfig config, IHyperPlayData data, ILocalStorage localStorage, Web3Environment environment, IChainConfig chainConfig, ChainRegistryProvider chainRegistryProvider) : base(config, data, localStorage, environment, chainConfig, chainRegistryProvider) { _config = config; _data = data; - _dataStorage = dataStorage; + _localStorage = localStorage; _httpClient = environment.HttpClient; _chainConfig = chainConfig; _chainRegistryProvider = chainRegistryProvider; @@ -74,7 +74,7 @@ public override async Task Connect() _data.SavedAccount = account; - await _dataStorage.Save(_data); + await _localStorage.Save(_data); } return account;