diff --git a/.github/workflows/duplicate_sample.yml b/.github/workflows/duplicate_sample.yml new file mode 100644 index 000000000..f2ffef5a4 --- /dev/null +++ b/.github/workflows/duplicate_sample.yml @@ -0,0 +1,30 @@ +name: Duplicate Package Sample + +on: + pull_request: + branches: + - main + +jobs: + duplicate: + name: duplicate package sample + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.ref }} + + - name: Run duplicate script file + run: bash ${GITHUB_WORKSPACE}/duplicate_package_sample.sh + + - name: Commit and Push + run: | + git config user.email $git_email + git config user.name "${{ github.actor }}" + git add ./src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/. -f + git diff-index --cached --quiet HEAD || git commit -m "Auto-duplicate Package Samples" + git push + env: + git_email: "${{ github.actor }}@users.noreply.github.com" \ No newline at end of file diff --git a/duplicate_package_sample.sh b/duplicate_package_sample.sh new file mode 100644 index 000000000..f3a677742 --- /dev/null +++ b/duplicate_package_sample.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Specify the source directory and the destination directory +SOURCE_DIRECTORY="src/UnitySampleProject/Assets/Samples/web3.unity SDK/2.5.0-pre001/Web3.Unity Samples/" +DESTINATION_DIRECTORY="src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/" + +# clear destination directory first +rm -r "$DESTINATION_DIRECTORY" + +# Copy source to the destination +cp -r "$SOURCE_DIRECTORY" "$DESTINATION_DIRECTORY" + +#add all modified files +git add "src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/." -f \ No newline at end of file diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Prefabs.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Prefabs.meta new file mode 100644 index 000000000..5b35daff8 --- /dev/null +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 45a04d2621549e3458049c6c447c3941 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes.meta new file mode 100644 index 000000000..5488a62ed --- /dev/null +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f39f8dda9616349489a7803d7e0aff30 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity index 5c92e33a6..f56d84605 100644 --- a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity @@ -1508,8 +1508,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 37375166} m_HandleRect: {fileID: 37375165} m_Direction: 0 - m_Value: 0 - m_Size: 0.37209302 + m_Value: -0.000000050924633 + m_Size: 0.30317497 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -4020,6 +4020,62 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!114 &1019211779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98914093} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f404484bf3c7d4246a08e60ab1cd69b7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1019211780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98914093} + 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: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1001 &1031869231 PrefabInstance: m_ObjectHideFlags: 0 @@ -7945,6 +8001,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 419827144834286037, guid: dcf96d5d1be365e43a4caa7561dc9ec4, type: 3} + propertyPath: m_text + value: 'Logged in as:' + objectReference: {fileID: 0} - target: {fileID: 419827145282415510, guid: dcf96d5d1be365e43a4caa7561dc9ec4, type: 3} propertyPath: m_Name value: Header diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts.meta new file mode 100644 index 000000000..9a1e8b8d4 --- /dev/null +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eaef630f284e6e04a88b5939e0eb1cc5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/Login.cs b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/Login.cs index 4668caf96..161b5e83f 100644 --- a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/Login.cs +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/Login.cs @@ -62,6 +62,9 @@ private void Awake() // Remember me only works with the WebPageWallet RememberMeToggle.gameObject.SetActive(useWebPageWallet); +#if UNITY_WEBGL + ProcessWeb3Auth(); +#endif TryAutoLogin(); ExistingWalletButton.onClick.AddListener(LoginWithExistingAccount); @@ -84,8 +87,6 @@ private async void TryAutoLogin() if (string.IsNullOrEmpty(savedAccount)) return; - Debug.Log("Saved account detected. Logging in..."); - var web3Builder = new Web3Builder(ProjectConfigUtilities.Load()) .Configure(ConfigureCommonServices) .Configure(services => @@ -137,11 +138,11 @@ private async void LoginWithWeb3Auth(Provider provider) { var web3AuthConfig = new Web3AuthWalletConfig { - ClientId = Web3AuthSettings.ClientId, - RedirectUri = Web3AuthSettings.RedirectUri, - Network = Web3AuthSettings.Network, Web3AuthOptions = new() { + clientId = Web3AuthSettings.ClientId, + redirectUrl = new Uri(Web3AuthSettings.RedirectUri), + network = Web3AuthSettings.Network, whiteLabel = new() { dark = true, @@ -151,13 +152,39 @@ private async void LoginWithWeb3Auth(Provider provider) }, LoginParams = new() { loginProvider = provider } }; - services.UseWeb3AuthWallet(web3AuthConfig); }); + await ProcessLogin(web3Builder); + } + + private async void ProcessWeb3Auth() + { + var web3Builder = new Web3Builder(ProjectConfigUtilities.Load()) + .Configure(ConfigureCommonServices) + .Configure(services => + { + var web3AuthConfig = new Web3AuthWalletConfig + { + Web3AuthOptions = new() + { + whiteLabel = new() + { + dark = true, + defaultLanguage = "en", + name = "ChainSafe Gaming SDK", + }, + clientId = Web3AuthSettings.ClientId, + redirectUrl = new Uri(Web3AuthSettings.RedirectUri), + network = Web3AuthSettings.Network, + }, + }; + services.UseWeb3AuthWallet(web3AuthConfig); + }); await ProcessLogin(web3Builder); } + private async Task ProcessLogin(Web3Builder builder) { Web3 web3; @@ -203,4 +230,4 @@ private void ConfigureCommonServices(IWeb3ServiceCollection services) } } -} +} \ No newline at end of file diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Gelato/GelatoDisableContent.cs b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Gelato/GelatoDisableContent.cs new file mode 100644 index 000000000..4009ec614 --- /dev/null +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Gelato/GelatoDisableContent.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; + +namespace Samples.Behaviours.Gelato +{ + public class GelatoDisableContent : SampleBehaviour + { + private GelatoSample logic; + + protected override void Awake() + { + base.Awake(); + logic = new GelatoSample(Web3); + ExecuteSample(); + } + + protected override Task ExecuteSample() + { + if (!logic.GetGelatoDisabled()) return Task.CompletedTask; + print("Gelato functionality disabled as your chain isn't supported"); + gameObject.SetActive(false); + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Gelato/GelatoDisableContent.cs.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Gelato/GelatoDisableContent.cs.meta new file mode 100644 index 000000000..6d008e5b8 --- /dev/null +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scripts/Scenes/SampleMain/Gelato/GelatoDisableContent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f404484bf3c7d4246a08e60ab1cd69b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Sprites.meta b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Sprites.meta new file mode 100644 index 000000000..7175ee89d --- /dev/null +++ b/src/UnityPackages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c06517aee7843642a091a67c72b1379 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: