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/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs index d39f2b5c0..0fb790e4d 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs @@ -57,9 +57,9 @@ public override async Task Connect() var providerTask = _config.ProviderTask; - if (!_config.AutoLogin && providerTask != null && !providerTask.IsCompleted) + if (!_config.AutoLogin && providerTask != null) { - var provider = await _config.ProviderTask; + var provider = await providerTask; _coreInstance.login(new LoginParams { diff --git a/Packages/io.chainsafe.web3-unity/Editor/ReadWriteProvider.cs b/Packages/io.chainsafe.web3-unity/Editor/ReadWriteProvider.cs new file mode 100644 index 000000000..7eb46d1a5 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Editor/ReadWriteProvider.cs @@ -0,0 +1,42 @@ +using System.IO; +using System.Linq; +using ChainSafe.Gaming.UnityPackage.Connection; +using UnityEditor; +using UnityEngine; + +namespace ChainSafe.GamingSdk.Editor +{ + /// + /// Make connection providers read-write by moving it from packages into Assets/Resources. + /// + [InitializeOnLoad] + public class ReadWriteProvider + { + static ReadWriteProvider() + { + TryMovingConnectionProviders(); + } + + private static void TryMovingConnectionProviders() + { + var providers = Resources.LoadAll(string.Empty) + .Where(p => AssetDatabase.GetAssetPath(p).Contains("io.chainsafe.web3-unity")); + + foreach (var provider in providers) + { + string source = AssetDatabase.GetAssetPath(provider); + + string directory = Path.Combine(Application.dataPath, nameof(Resources)); + + string destination = Path.Combine(directory, Path.GetFileName(source)); + + if (!Directory.Exists(directory)) + { + Directory.CreateDirectory(directory); + } + + File.Move(source, destination); + } + } + } +} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Editor/ReadWriteProvider.cs.meta b/Packages/io.chainsafe.web3-unity/Editor/ReadWriteProvider.cs.meta new file mode 100644 index 000000000..375538082 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Editor/ReadWriteProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 135f06edc29a460fab5cd314e9eb2de9 +timeCreated: 1723447911 \ No newline at end of file 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/ConnectionProviderConfig.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs deleted file mode 100644 index 87cc3bea7..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 446b6dbc9..000000000 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ConnectionProviderConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fba926c704b00964fb4bff80ddf858ec -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset b/src/UnitySampleProject/Assets/Resources/HyperPlayConnectionProvider.asset similarity index 55% rename from Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset rename to src/UnitySampleProject/Assets/Resources/HyperPlayConnectionProvider.asset index 60b7897ce..c30bdef28 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset +++ b/src/UnitySampleProject/Assets/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/src/UnitySampleProject/Assets/Resources/HyperPlayConnectionProvider.asset.meta similarity index 64% rename from Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta rename to src/UnitySampleProject/Assets/Resources/HyperPlayConnectionProvider.asset.meta index c7de3f2e6..1eb1588f9 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset.meta +++ b/src/UnitySampleProject/Assets/Resources/HyperPlayConnectionProvider.asset.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 15bca0e27aa9c9446b907f31a512906c +guid: 835338196b5038d4b9351fadba9dac38 NativeFormatImporter: externalObjects: {} - mainObjectFileID: 11400000 + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset b/src/UnitySampleProject/Assets/Resources/MetamaskConnectionProvider.asset similarity index 52% rename from Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset rename to src/UnitySampleProject/Assets/Resources/MetamaskConnectionProvider.asset index 409856385..051c73007 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/MetamaskConnectionProviderConfig.asset +++ b/src/UnitySampleProject/Assets/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.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta b/src/UnitySampleProject/Assets/Resources/MetamaskConnectionProvider.asset.meta similarity index 64% rename from Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta rename to src/UnitySampleProject/Assets/Resources/MetamaskConnectionProvider.asset.meta index f65df09e0..6d2c3fd2e 100644 --- a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Resources/HyperPlayConnectionProviderConfig.asset.meta +++ b/src/UnitySampleProject/Assets/Resources/MetamaskConnectionProvider.asset.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: e58af3a1029796646a4a5bcc565ed4f0 +guid: e5b50e2ca9fe0504daf70376bceb84ac NativeFormatImporter: externalObjects: {} - mainObjectFileID: 11400000 + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Resources/WalletConnectConnectionProvider.asset b/src/UnitySampleProject/Assets/Resources/WalletConnectConnectionProvider.asset new file mode 100644 index 000000000..6ccc016ab --- /dev/null +++ b/src/UnitySampleProject/Assets/Resources/WalletConnectConnectionProvider.asset @@ -0,0 +1,18 @@ +%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} + k__BackingField: 1 + walletConnectConfig: {fileID: 11400000, guid: fde7db0e37b4a884da1149e9f1999093, type: 2} diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta b/src/UnitySampleProject/Assets/Resources/WalletConnectConnectionProvider.asset.meta similarity index 64% rename from Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta rename to src/UnitySampleProject/Assets/Resources/WalletConnectConnectionProvider.asset.meta index 1a6bde699..144f2e5ed 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Resources/WalletConnectConnectionProviderConfig.asset.meta +++ b/src/UnitySampleProject/Assets/Resources/WalletConnectConnectionProvider.asset.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 723743175ed10c540ae2497bde52f150 +guid: 0d7bd7ae4b3e79d489bbc54514343f5c NativeFormatImporter: externalObjects: {} - mainObjectFileID: 11400000 + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/UnitySampleProject/Assets/Resources/Web3AuthConnectionProvider.asset b/src/UnitySampleProject/Assets/Resources/Web3AuthConnectionProvider.asset new file mode 100644 index 000000000..b1d9f4ffe --- /dev/null +++ b/src/UnitySampleProject/Assets/Resources/Web3AuthConnectionProvider.asset @@ -0,0 +1,35 @@ +%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} + k__BackingField: 1 + clientId: BDoIQpmwh4ow7oDMshLsPTj0JHGnS-0ZsB14fMzZ6CnxB0kMJf4o3oWvFWiISuL_p7PzyGx4v7iGHDQQF4lNL-s + 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/Resources/Web3AuthConnectionProviderConfig.asset.meta b/src/UnitySampleProject/Assets/Resources/Web3AuthConnectionProvider.asset.meta similarity index 64% rename from Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset.meta rename to src/UnitySampleProject/Assets/Resources/Web3AuthConnectionProvider.asset.meta index c29aa1981..189a59320 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Resources/Web3AuthConnectionProviderConfig.asset.meta +++ b/src/UnitySampleProject/Assets/Resources/Web3AuthConnectionProvider.asset.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: f07bd9ab13eb4ac4288f6b20dfc1d562 +guid: e56cb66917f860e489d3ed4480b4681c NativeFormatImporter: externalObjects: {} - mainObjectFileID: 11400000 + mainObjectFileID: 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 3eed27c70..2dd0e7a9c 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 @@ -346,10 +346,10 @@ MonoBehaviour: 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} + - {fileID: 11400000, guid: 835338196b5038d4b9351fadba9dac38, type: 2} + - {fileID: 11400000, guid: e5b50e2ca9fe0504daf70376bceb84ac, type: 2} + - {fileID: 11400000, guid: 0d7bd7ae4b3e79d489bbc54514343f5c, type: 2} + - {fileID: 11400000, guid: e56cb66917f860e489d3ed4480b4681c, type: 2} --- !u!114 &1658652865 MonoBehaviour: m_ObjectHideFlags: 0 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 a2fe07f1b..04654f40c 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 @@ -16,6 +16,8 @@ public class ConnectToWallet : MonoBehaviour private ConnectionHandler _connectionHandler; private ConnectModal _connectModal; + private bool _connected; + private void Awake() { _connectionHandler = GetComponent(); @@ -24,23 +26,28 @@ private void Awake() private async void Start() { await _connectionHandler.Initialize(); - - if (connectOnInitialize) - { - var web3 = await _connectionHandler.Restore(); - if (web3 != null) + try + { + if (connectOnInitialize) { - return; + var web3 = await _connectionHandler.Restore(); + + _connected = web3 != null; } } + finally + { + if (!_connected) + { + _connectModal = Instantiate(connectModalPrefab); - _connectModal = Instantiate(connectModalPrefab); - - _connectModal.Initialize(_connectionHandler); + _connectModal.Initialize(_connectionHandler); - connectButton.onClick.AddListener(_connectModal.Show); + connectButton.onClick.AddListener(_connectModal.Show); - connectButton.interactable = true; + connectButton.interactable = true; + } + } } }