From ba0f6aef1b51efcca1b0d3fd9bd4c854b0a5866f Mon Sep 17 00:00:00 2001 From: Ryan Noble Date: Wed, 8 Nov 2023 17:20:55 +0100 Subject: [PATCH 1/6] Updated & modified with env updates --- .../ChainSafe.Gaming.Lootboxes.Chainlink.dll | Bin 31232 -> 31232 bytes .../Libraries/Chainsafe.Gaming.Chainlink.dll | Bin 5120 -> 5120 bytes .../Api/Models/StoreApiResponse.cs | 3 +- .../Plugins/Web3AuthSDK/Api/Web3AuthApi.cs | 20 + .../Web3AuthSDK/Debug/Web3AuthDebug.cs | 2 +- .../Runtime/Plugins/Web3AuthSDK/Editor.meta} | 2 +- .../Editor/AndroidBuildPostProcess.cs | 55 ++ .../Editor/AndroidBuildPostProcess.cs.meta | 11 + .../Web3AuthSDK/Editor/BuildPostProcess.cs | 44 ++ .../Editor/BuildPostProcess.cs.meta | 11 + .../Web3AuthSDK/Editor/CreateDeepLink.cs | 48 ++ .../Web3AuthSDK/Editor/CreateDeepLink.cs.meta | 11 + .../Web3AuthSDK/Editor/CreateDeepLink.uss | 7 + .../Editor/CreateDeepLink.uss.meta | 11 + .../Web3AuthSDK/Editor/CreateDeepLink.uxml | 13 + .../Editor/CreateDeepLink.uxml.meta | 10 + .../Keystore/KeyStoreManagerUtils.cs | 51 +- .../Runtime/Plugins/Web3AuthSDK/Libs.meta | 8 + .../Web3AuthSDK/Samples/LoginVerifier.cs | 3 +- .../Web3AuthSDK/Samples/Web3AuthSample.cs | 13 +- .../Web3AuthSDK/Samples/Web3AuthSample.unity | 4 +- .../Plugins/Web3AuthSDK/Types/AES256CBC.cs | 61 +- .../Web3AuthSDK/Types/ExtraLoginOptions.cs | 3 +- .../Web3AuthSDK/Types/LoginConfigItem.cs | 3 +- .../Plugins/Web3AuthSDK/Types/MfaSetting.cs | 16 + .../Web3AuthSDK/Types/MfaSetting.cs.meta | 11 + .../Plugins/Web3AuthSDK/Types/MfaSettings.cs | 44 ++ .../Web3AuthSDK/Types/MfaSettings.cs.meta | 11 + .../Web3AuthSDK/Types/SecurePlayerPrefs.cs | 524 +++++++++--------- .../Web3AuthSDK/Types/ShareMetadata.cs | 2 +- .../Plugins/Web3AuthSDK/Types/UserInfo.cs | 1 + .../Web3AuthSDK/Types/Web3AuthOptions.cs | 28 +- .../Web3AuthSDK/Types/WhiteLabelData.cs | 19 +- .../Runtime/Plugins/Web3AuthSDK/Web3Auth.cs | 257 +++++---- .../Plugins/Web3AuthSDK/Web3AuthExceptions.cs | 2 +- .../Runtime/Web3AuthWallet.cs | 2 +- .../Libraries/ADRaffy.ENSNormalize.dll | Bin 61952 -> 61952 bytes .../Libraries/ChainSafe.Gaming.Debugging.dll | Bin 15872 -> 15872 bytes .../Libraries/ChainSafe.Gaming.Gelato.dll | Bin 44544 -> 44544 bytes .../ChainSafe.Gaming.InProcessSigner.dll | Bin 8192 -> 8192 bytes ...fe.Gaming.InProcessTransactionExecutor.dll | Bin 11776 -> 11264 bytes .../ChainSafe.Gaming.Unity.ThirdParty.dll | Bin 23552 -> 23552 bytes .../Libraries/ChainSafe.Gaming.Unity.dll | Bin 15360 -> 15360 bytes .../ChainSafe.Gaming.WalletConnect.dll | Bin 35840 -> 35840 bytes .../Runtime/Libraries/ChainSafe.Gaming.dll | Bin 215040 -> 215040 bytes .../Runtime/Libraries/Nethereum.ABI.dll | Bin 113664 -> 113664 bytes .../Runtime/Libraries/Nethereum.Contracts.dll | Bin 374272 -> 370688 bytes .../Runtime/Libraries/Nethereum.Hex.dll | Bin 13312 -> 13312 bytes .../Libraries/Nethereum.JsonRpc.Client.dll | Bin 40448 -> 40448 bytes .../Libraries/Nethereum.Merkle.Patricia.dll | Bin 14848 -> 14848 bytes .../Runtime/Libraries/Nethereum.Model.dll | Bin 31232 -> 31232 bytes .../Runtime/Libraries/Nethereum.RLP.dll | Bin 11264 -> 11264 bytes .../Runtime/Libraries/Nethereum.RPC.dll | Bin 173056 -> 173056 bytes .../Runtime/Libraries/Nethereum.Util.dll | Bin 42496 -> 42496 bytes src/UnitySampleProject/Assets/PlayerData.json | 1 + .../Assets/PlayerData.json.meta | 7 + .../Scripts/Web3AuthLogin.cs | 6 +- 57 files changed, 907 insertions(+), 418 deletions(-) rename Packages/{io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Prefabs/MultiCall.meta => io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor.meta} (77%) create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.uss create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.uss.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.uxml create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.uxml.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Libs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Types/MfaSetting.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Types/MfaSetting.cs.meta create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Types/MfaSettings.cs create mode 100644 Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Types/MfaSettings.cs.meta create mode 100644 src/UnitySampleProject/Assets/PlayerData.json create mode 100644 src/UnitySampleProject/Assets/PlayerData.json.meta diff --git a/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/ChainSafe.Gaming.Lootboxes.Chainlink.dll b/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/ChainSafe.Gaming.Lootboxes.Chainlink.dll index 1a0f8bf919823088834b89441a4f61be84bcddf7..f5b2ceaecd362fec77d1ea91c6556d37fa3fb402 100644 GIT binary patch delta 271 zcmZqp!r1VIaY6@++DnTQ6MJMB<0h^QXXKpB$XL&qGPw~*+HPiK%8wQ}_ftOASiIV8 zX-^a1tNn|WHaEnw^Dq`|?#N7G<6WmCafgA?H-L$OfnnL?pZW5vkNOxG9!-`lP`13h z-js{2P|{)YiPY79;youY0@b)!#kk}rm*%GCl@!M$=9C1b7UUPll&2;c>y_qZmQ=<8Kh1>Tco3#A!tCtDV3PL3~JKhc0?Ghfj!R;C2|&4Ly087CUB F0{~-KWIX@? delta 283 zcmZqp!r1VIaY6@6`Q6Fg6MJMBlP0bVXB3#s$XL&qF}V>)x@=}-%8wS%eQss4#PoxI zf8oy=KUIDPY;K5U=V1)m+>x2W#@jOY>?8(8-vA~C28Okhf9A`xzU*UQcsW_NK-r;Y zSHq4OvT7dl$}er>l$o-a5vWE#BR@A)zo;}XFSSU&JijPgzdSX`Sg$lMv!oK4SzMH? zKlwqfij01KQkH&DYEEimajJe^YDsZPVqQvOQHqhCAxMGh%S*KFo1`o+qWV!v6i;yvR;19kuavubhx diff --git a/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/Chainsafe.Gaming.Chainlink.dll b/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/Chainsafe.Gaming.Chainlink.dll index 5355ae4eb62d4b3abf96cde04d299a826db6da33..e49b9b88d053c818e84b3c8ea05bdf14fd744f26 100644 GIT binary patch delta 283 zcmZqBXwaC@!J^dMc6nlt4CAzkE5jKbCo?kEGtQaZ2qa54Gcs*v7g)4s*QI%??yf!4 zM6wv~wcMI~g!3n3(d2zxRlH(_AzciNz5z@O3=ESdyK>93N@+1LNKMYf zl#G6UQkH&DYEEimajJe^YDsZPVqQvOQHqhCAy|Q>UO`F{L$HUVk*OI2)W$D$P#b}+ zGc+<0;oF#-wEs-gSHl9J+hCw;vLBB$W6k6&9?i|ucuE*I^YQ&+W}0KQSy1Rb<3s~? E0PHMdo&W#< diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Models/StoreApiResponse.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Models/StoreApiResponse.cs index 50d56b202..71fd3253d 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Models/StoreApiResponse.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Models/StoreApiResponse.cs @@ -2,8 +2,7 @@ using System.Collections.Generic; using UnityEngine; -public class StoreApiResponse -{ +public class StoreApiResponse { public string message { get; set; } public bool success { get; set; } } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Web3AuthApi.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Web3AuthApi.cs index fe23c07d9..968cd0679 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Web3AuthApi.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Api/Web3AuthApi.cs @@ -50,4 +50,24 @@ public IEnumerator logout(LogoutApiRequest logoutApiRequest, Action cal else callback(null); } + + public IEnumerator createSession(LogoutApiRequest logoutApiRequest, Action callback) + { + WWWForm data = new WWWForm(); + data.AddField("key", logoutApiRequest.key); + data.AddField("data", logoutApiRequest.data); + data.AddField("signature", logoutApiRequest.signature); + data.AddField("timeout", logoutApiRequest.timeout.ToString()); + + var request = UnityWebRequest.Post($"{baseAddress}/store/set", data); + yield return request.SendWebRequest(); + + if (request.result == UnityWebRequest.Result.Success) + { + string result = request.downloadHandler.text; + callback(Newtonsoft.Json.JsonConvert.DeserializeObject(result)); + } + else + callback(null); + } } diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Debug/Web3AuthDebug.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Debug/Web3AuthDebug.cs index e36bb1604..c6ce4a646 100644 --- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Debug/Web3AuthDebug.cs +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Debug/Web3AuthDebug.cs @@ -15,7 +15,7 @@ public class Web3AuthDebug : EditorWindow [SerializeField] public int index; - [MenuItem("Window/ChainSafe SDK/Web3Auth/Deep Linking Debug")] + [MenuItem("Window/Web3Auth/Deep Linking Debug")] public static void ShowExample() { Web3AuthDebug wnd = GetWindow(); diff --git a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Prefabs/MultiCall.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor.meta similarity index 77% rename from Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Prefabs/MultiCall.meta rename to Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor.meta index 4fbb8ea2a..c681ce1b8 100644 --- a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Prefabs/MultiCall.meta +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 07502567db01631468db8091a3562ece +guid: 53790c505320f4594a455507b48085da folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs new file mode 100644 index 000000000..34a106bff --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Xml; +using System.Xml.Linq; +using UnityEditor.Android; +using UnityEngine; + +public class AndroidBuildPostProcess : IPostGenerateGradleAndroidProject +{ + public int callbackOrder { get { return 1; } } + + public void OnPostGenerateGradleAndroidProject(string path) + { + Uri uri = null; + + try + { + uri = new Uri(System.IO.File.ReadAllText("Assets/Resources/webauth")); + } + catch + { + throw new Exception("Deep Link uri is invalid or does not exist. Please generate from \"Window > Web3Auth > Generate Deep Link\" Menu"); + } + + string manifest = path + "\\src\\main\\AndroidManifest.xml"; + + var document = new XmlDocument(); + document.Load(manifest); + + var activityNode = document.DocumentElement.SelectSingleNode("application").SelectSingleNode("activity"); + activityNode.AppendChild(activityNode.OwnerDocument.ImportNode(BuildeNode(string.Format(@" + + + + + + + + + + ", uri.Scheme, uri.Host, uri.LocalPath)), true)); + + document.Save(manifest); + + } + + private XmlNode BuildeNode(string text) + { + XmlDocument doc = new XmlDocument(); + doc.LoadXml(text); + + return doc.DocumentElement; + } +} diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs.meta new file mode 100644 index 000000000..f6489e9d1 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/AndroidBuildPostProcess.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 648fa46dcb05a0d42a1eef5e2892bc01 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs new file mode 100644 index 000000000..e599d4de9 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using UnityEditor; +using UnityEditor.Callbacks; +using System.IO; +using System.Collections; +using System; + +public class BuildPostProcess +{ + + // Runs all the post process build steps. Called from Unity during build + [PostProcessBuildAttribute(0)] // Configures this this post process to run first + public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) + { +#if UNITY_IOS + + Uri uri = null; + + try + { + uri = new Uri(System.IO.File.ReadAllText("Assets/Resources/webauth")); + } + catch + { + + throw new Exception("Deep Link uri is invalid or does not exist. Please generate from \"Window > Web3Auth > Generate Deep Link\" Menu"); + } + + + var infoPlist = new UnityEditor.iOS.Xcode.PlistDocument(); + var infoPlistPath = pathToBuiltProject + "/Info.plist"; + infoPlist.ReadFromFile(infoPlistPath); + + // Register ios URL scheme for external apps to launch this app. + var urlTypeDict = infoPlist.root.CreateArray("CFBundleURLTypes").AddDict(); + urlTypeDict.SetString("CFBundleURLName", uri.Host); + + var urlSchemes = urlTypeDict.CreateArray("CFBundleURLSchemes"); + urlSchemes.AddString(uri.Scheme); + + infoPlist.WriteToFile(infoPlistPath); +#endif + } +} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs.meta b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs.meta new file mode 100644 index 000000000..88508021f --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/BuildPostProcess.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fb6f65d85426340f7836970217463166 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.cs new file mode 100644 index 000000000..47da54d60 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Plugins/Web3AuthSDK/Editor/CreateDeepLink.cs @@ -0,0 +1,48 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; +using UnityEditor.UIElements; + + +public class CreateDeepLink : EditorWindow +{ + Button generateButton; + TextField uri; + + + [MenuItem("Window/Web3Auth/Generate Deep Link")] + public static void ShowExample() + { + CreateDeepLink wnd = GetWindow(); + wnd.titleContent = new GUIContent("Generate Deep Link"); + } + + public void OnEnable() + { + // Each editor window contains a root VisualElement object + VisualElement root = rootVisualElement; + + // Import UXML + var visualTree = AssetDatabase.LoadAssetAtPath("Assets/Plugins/Web3AuthSDK/Editor/CreateDeepLink.uxml"); + VisualElement labelFromUXML = visualTree.CloneTree(); + root.Add(labelFromUXML); + + var styleSheet = AssetDatabase.LoadAssetAtPath("Assets/Plugins/Web3AuthSDK/Editor/CreateDeepLink.uss"); + root.styleSheets.Add(styleSheet); + + generateButton = root.Q