diff --git a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Libraries/ChainSafe.Gaming.HyperPlay.dll b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Libraries/ChainSafe.Gaming.HyperPlay.dll index 5abeb23ba..b1cd40026 100644 Binary files a/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Libraries/ChainSafe.Gaming.HyperPlay.dll and b/Packages/io.chainsafe.web3-unity.hyperplay/Runtime/Libraries/ChainSafe.Gaming.HyperPlay.dll differ 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 9463512f7..2b3ef71d9 100644 Binary files a/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/ChainSafe.Gaming.Lootboxes.Chainlink.dll and b/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/ChainSafe.Gaming.Lootboxes.Chainlink.dll differ 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 4f7f44d32..2bc5a0ae0 100644 Binary files a/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/Chainsafe.Gaming.Chainlink.dll and b/Packages/io.chainsafe.web3-unity.lootboxes/Chainlink/Runtime/Libraries/Chainsafe.Gaming.Chainlink.dll differ diff --git a/Packages/io.chainsafe.web3-unity.mud/Runtime/Libraries/ChainSafe.Gaming.Mud.dll b/Packages/io.chainsafe.web3-unity.mud/Runtime/Libraries/ChainSafe.Gaming.Mud.dll index ec20cf931..772beca48 100644 Binary files a/Packages/io.chainsafe.web3-unity.mud/Runtime/Libraries/ChainSafe.Gaming.Mud.dll and b/Packages/io.chainsafe.web3-unity.mud/Runtime/Libraries/ChainSafe.Gaming.Mud.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Debugging.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Debugging.dll index b2bbef2c1..3d4300c0b 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Debugging.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Debugging.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Gelato.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Gelato.dll index aae5cfe33..758183081 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Gelato.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Gelato.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessSigner.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessSigner.dll index 2bb8cbd42..8c864cd90 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessSigner.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessSigner.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.dll index e39c3cba9..5029b9589 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Marketplace.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Marketplace.dll index f5610ee90..071f3af96 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Marketplace.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Marketplace.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.SygmaClient.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.SygmaClient.dll index 58a72a657..d160d087a 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.SygmaClient.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.SygmaClient.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.EthereumWindow.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.EthereumWindow.dll index 77b46977b..faa438e4e 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.EthereumWindow.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.EthereumWindow.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.MetaMask.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.MetaMask.dll index 6060bd32c..c801e4139 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.MetaMask.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.MetaMask.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.ThirdParty.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.ThirdParty.dll index c4dca8471..dd4337e10 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.ThirdParty.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.ThirdParty.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.dll index ad42b3338..e121a6fbd 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Unity.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.WalletConnect.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.WalletConnect.dll index 485ede850..1257a50c6 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.WalletConnect.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.WalletConnect.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.dll index cf2bcbb17..1d2b828b1 100644 Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.dll differ diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ServiceAdapters/EventsServiceAdapter.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ServiceAdapters/EventsServiceAdapter.cs index 9b9263129..5970d9f90 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ServiceAdapters/EventsServiceAdapter.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Connection/ServiceAdapters/EventsServiceAdapter.cs @@ -8,14 +8,22 @@ namespace ChainSafe.Gaming.UnityPackage.Connection { public class EventsServiceAdapter : MonoBehaviour, ILightWeightServiceAdapter { + [SerializeField, Tooltip("Enable this if a WebSocket connection is unavailable or if the blockchain does not provide a WebSocket URL")] + private bool forceEventPolling; + [SerializeField, Tooltip("How often to poll/make requests to Rpc node in seconds in WebGL")] private float pollingInterval = 10f; + public Web3Builder ConfigureServices(Web3Builder web3Builder) { return web3Builder.Configure(services => { - services.UseEvents(new PollingEventManagerConfig { PollInterval = TimeSpan.FromSeconds(pollingInterval) }); + services.UseEvents(new PollingEventManagerConfig + { + PollInterval = TimeSpan.FromSeconds(pollingInterval), + ForceEventPolling = forceEventPolling + }); }); } } diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Events/EventExtensionsUnity.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Events/EventExtensionsUnity.cs index a97f809ac..53faa505e 100644 --- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Events/EventExtensionsUnity.cs +++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/EVM/Events/EventExtensionsUnity.cs @@ -18,7 +18,11 @@ public static class EventExtensionsUnity public static IWeb3ServiceCollection UseEvents(this IWeb3ServiceCollection services, PollingEventManagerConfig eventPollerConfig = null) { #if !UNITY_WEBGL || UNITY_EDITOR - services.UseEventsWithWebSocket(); + + if (eventPollerConfig is { ForceEventPolling: true }) + services.UseEventsWithPolling(); + else + services.UseEventsWithWebSocket(); #else if (eventPollerConfig == null) { diff --git a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity index 8f3ef5076..b6727eabe 100644 --- a/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity +++ b/Packages/io.chainsafe.web3-unity/Samples~/Web3.Unity/Scenes/SampleMain.unity @@ -995,7 +995,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1573338518} m_HandleRect: {fileID: 1573338517} m_Direction: 0 - m_Value: 1 + m_Value: 0 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -1418,7 +1418,7 @@ PrefabInstance: value: Web3Unity objectReference: {fileID: 0} m_RemovedComponents: - - {fileID: 8854369476742677865, guid: 6d183a51c0030794a8ff3fea5dbd6423, type: 3} + - {fileID: 0} m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: [] diff --git a/src/ChainSafe.Gaming/MultiCall/MultiCallConfig.cs b/src/ChainSafe.Gaming/MultiCall/MultiCallConfig.cs index b6b51189f..aefd2fd6d 100644 --- a/src/ChainSafe.Gaming/MultiCall/MultiCallConfig.cs +++ b/src/ChainSafe.Gaming/MultiCall/MultiCallConfig.cs @@ -20,6 +20,6 @@ public enum UnavailableBehaviourType /// public IReadOnlyDictionary CustomNetworks { get; } - public UnavailableBehaviourType UnavailableBehaviour { get; set; } = UnavailableBehaviourType.Throw; + public UnavailableBehaviourType UnavailableBehaviour { get; set; } = UnavailableBehaviourType.DisableAndLog; } } \ No newline at end of file diff --git a/src/ChainSafe.Gaming/RPC/Events/PollingEventManagerConfig.cs b/src/ChainSafe.Gaming/RPC/Events/PollingEventManagerConfig.cs index e274bb8ca..ae4401178 100644 --- a/src/ChainSafe.Gaming/RPC/Events/PollingEventManagerConfig.cs +++ b/src/ChainSafe.Gaming/RPC/Events/PollingEventManagerConfig.cs @@ -5,5 +5,7 @@ namespace ChainSafe.Gaming.RPC.Events public class PollingEventManagerConfig { public TimeSpan PollInterval { get; set; } = TimeSpan.FromSeconds(10); + + public bool ForceEventPolling { get; set; } = false; } } diff --git a/src/ChainSafe.Gaming/RPC/Events/WebSocketEventManager.cs b/src/ChainSafe.Gaming/RPC/Events/WebSocketEventManager.cs index 9f7ef8a50..9ab0ffdf0 100644 --- a/src/ChainSafe.Gaming/RPC/Events/WebSocketEventManager.cs +++ b/src/ChainSafe.Gaming/RPC/Events/WebSocketEventManager.cs @@ -32,7 +32,7 @@ public async ValueTask WillStartAsync() { if (string.IsNullOrWhiteSpace(chainConfig.Ws)) { - throw new Web3Exception("No WebSocket URL was provided in config."); + throw new Web3Exception("No WebSocket URL was provided in config. Please toggle the ForceEventPolling to true in order to use event polling instead of WebSockets."); } webSocketClient = new StreamingWebSocketClient(chainConfig.Ws); diff --git a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/3.0.4/Web3.Unity Samples/Scenes/SampleMain.unity b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/3.0.4/Web3.Unity Samples/Scenes/SampleMain.unity index 8f3ef5076..b6727eabe 100644 --- a/src/UnitySampleProject/Assets/Samples/web3.unity SDK/3.0.4/Web3.Unity Samples/Scenes/SampleMain.unity +++ b/src/UnitySampleProject/Assets/Samples/web3.unity SDK/3.0.4/Web3.Unity Samples/Scenes/SampleMain.unity @@ -995,7 +995,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1573338518} m_HandleRect: {fileID: 1573338517} m_Direction: 0 - m_Value: 1 + m_Value: 0 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -1418,7 +1418,7 @@ PrefabInstance: value: Web3Unity objectReference: {fileID: 0} m_RemovedComponents: - - {fileID: 8854369476742677865, guid: 6d183a51c0030794a8ff3fea5dbd6423, type: 3} + - {fileID: 0} m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: [] diff --git a/src/UnitySampleProject/Packages/manifest.json b/src/UnitySampleProject/Packages/manifest.json index dc77f0da8..8c62147ac 100644 --- a/src/UnitySampleProject/Packages/manifest.json +++ b/src/UnitySampleProject/Packages/manifest.json @@ -1,7 +1,7 @@ { "dependencies": { "com.unity.collab-proxy": "2.4.4", - "com.unity.ide.rider": "3.0.31", + "com.unity.ide.rider": "3.0.34", "com.unity.ide.visualstudio": "2.0.22", "com.unity.ide.vscode": "1.2.5", "com.unity.nuget.newtonsoft-json": "3.2.1", diff --git a/src/UnitySampleProject/Packages/packages-lock.json b/src/UnitySampleProject/Packages/packages-lock.json index 201a07aab..e01273828 100644 --- a/src/UnitySampleProject/Packages/packages-lock.json +++ b/src/UnitySampleProject/Packages/packages-lock.json @@ -31,7 +31,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.rider": { - "version": "3.0.31", + "version": "3.0.34", "depth": 0, "source": "registry", "dependencies": { @@ -182,7 +182,7 @@ "source": "local", "dependencies": { "com.unity.nuget.newtonsoft-json": "3.0.2", - "io.chainsafe.web3-unity": "3.0.1" + "io.chainsafe.web3-unity": "3.0.4" } }, "io.chainsafe.web3-unity.lootboxes": { @@ -190,7 +190,7 @@ "depth": 0, "source": "local", "dependencies": { - "io.chainsafe.web3-unity": "3.0.1" + "io.chainsafe.web3-unity": "3.0.4" } }, "io.chainsafe.web3-unity.marketplace": { @@ -199,7 +199,7 @@ "source": "local", "dependencies": { "com.unity.nuget.newtonsoft-json": "3.0.2", - "io.chainsafe.web3-unity": "3.0.1" + "io.chainsafe.web3-unity": "3.0.4" } }, "io.chainsafe.web3-unity.mud": { @@ -207,7 +207,7 @@ "depth": 0, "source": "local", "dependencies": { - "io.chainsafe.web3-unity": "3.0.1" + "io.chainsafe.web3-unity": "3.0.4" } }, "io.chainsafe.web3-unity.ramp": { @@ -216,7 +216,7 @@ "source": "local", "dependencies": { "com.unity.nuget.newtonsoft-json": "3.0.2", - "io.chainsafe.web3-unity": "3.0.1" + "io.chainsafe.web3-unity": "3.0.4" } }, "io.chainsafe.web3-unity.web3auth": { @@ -225,7 +225,7 @@ "source": "local", "dependencies": { "com.unity.nuget.newtonsoft-json": "3.0.2", - "io.chainsafe.web3-unity": "3.0.1" + "io.chainsafe.web3-unity": "3.0.4" } }, "nuget.mono-cecil": {