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 b27278b86..d31006290 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 5cb1d72a8..ec5f9c277 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.web3auth/Runtime/Web3AuthWallet.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs
index d88b3e8a5..fd7fb945a 100644
--- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs
+++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWallet.cs
@@ -4,6 +4,7 @@
using ChainSafe.Gaming.Evm.Transactions;
using ChainSafe.Gaming.InProcessSigner;
using ChainSafe.Gaming.InProcessTransactionExecutor;
+using ChainSafe.Gaming.InProcessTransactionExecutor.Unity;
using ChainSafe.Gaming.Web3;
using ChainSafe.Gaming.Web3.Core;
using ChainSafe.Gaming.Web3.Core.Evm;
@@ -57,7 +58,7 @@ public async ValueTask WillStartAsync()
var signerConfig = new InProcessSignerConfig { PrivateKey = privateKey };
signer = new InProcessSigner(signerConfig);
- transactionExecutor = new InProcessTransactionExecutor(signer, chainConfig, rpcProvider);
+ transactionExecutor = new InProcessTransactionExecutor(signer, chainConfig, rpcProvider, new RpcClientWrapper(chainConfig));
void Web3Auth_OnLogin(Web3AuthResponse response)
{
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 800b6fdc7..ebd95e299 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 cc23e88c9..1c39f1b4d 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 6aa2e936c..1b2d79e45 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.Unity.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.dll
new file mode 100644
index 000000000..111d35804
Binary files /dev/null and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.dll differ
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.dll.meta b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.dll.meta
new file mode 100644
index 000000000..96c98748e
--- /dev/null
+++ b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.dll.meta
@@ -0,0 +1,34 @@
+fileFormatVersion: 2
+guid: fb6ec2e0f5ff4676860fedbe54aeec82
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 1
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+
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 9b56f318c..dc7303357 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.MetaMask.Unity.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.MetaMask.Unity.dll
index 231cf1e69..67915f940 100644
Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.MetaMask.Unity.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.MetaMask.Unity.dll differ
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.MetaMask.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.MetaMask.dll
index 6fede10bb..f27e87959 100644
Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.MetaMask.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.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 20cdcf08f..e48118666 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 3f554926d..00f5e7bdf 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 9523babb9..5aced98b1 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 2b8b37075..925263611 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/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.csproj b/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.csproj
new file mode 100644
index 000000000..73d85b1d2
--- /dev/null
+++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/ChainSafe.Gaming.InProcessTransactionExecutor.Unity.csproj
@@ -0,0 +1,23 @@
+
+
+
+ netstandard2.1
+ 9.0
+ True
+ True
+ ../../global.ruleset
+ enable
+ Debug;Release;Test
+ AnyCPU
+ ChainSafe.Gaming.InProcessTransactionExecutor.Unity
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutorExtensions.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/InProcessTransactionExecutorExtensions.cs
similarity index 70%
rename from src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutorExtensions.cs
rename to src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/InProcessTransactionExecutorExtensions.cs
index 143cf19b2..5a913192a 100644
--- a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutorExtensions.cs
+++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/InProcessTransactionExecutorExtensions.cs
@@ -1,8 +1,8 @@
-using ChainSafe.Gaming.Web3.Build;
+using ChainSafe.Gaming.Web3.Build;
using ChainSafe.Gaming.Web3.Core.Evm;
using Microsoft.Extensions.DependencyInjection;
-namespace ChainSafe.Gaming.InProcessTransactionExecutor
+namespace ChainSafe.Gaming.InProcessTransactionExecutor.Unity
{
///
/// Extension methods for .
@@ -14,11 +14,14 @@ public static class InProcessTransactionExecutorExtensions
///
/// Service collection to bind implementations to.
/// The same service collection that was passed in. This enables fluent style.
- public static IWeb3ServiceCollection UseInProcessSigner(this IWeb3ServiceCollection collection)
+ public static IWeb3ServiceCollection UseInProcessTransactionExecutor(this IWeb3ServiceCollection collection)
{
collection.AssertServiceNotBound();
collection.AddSingleton();
+
+ collection.AssertServiceNotBound();
+ collection.AddSingleton();
return collection;
}
}
-}
+}
\ No newline at end of file
diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/RpcClientWrapper.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/RpcClientWrapper.cs
new file mode 100644
index 000000000..86062770e
--- /dev/null
+++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor.Unity/RpcClientWrapper.cs
@@ -0,0 +1,17 @@
+using System;
+using ChainSafe.Gaming.Web3;
+using Nethereum.JsonRpc.Client;
+using Nethereum.Unity.Rpc;
+
+namespace ChainSafe.Gaming.InProcessTransactionExecutor.Unity
+{
+ public class RpcClientWrapper : IRpcClientWrapper
+ {
+ public RpcClientWrapper(IChainConfig chainConfig)
+ {
+ Client = new UnityWebRequestRpcTaskClient(new Uri(chainConfig.Rpc));
+ }
+
+ public IClient Client { get; private set; }
+ }
+}
\ No newline at end of file
diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor/IRpcClientWrapper.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor/IRpcClientWrapper.cs
new file mode 100644
index 000000000..f0372ec30
--- /dev/null
+++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor/IRpcClientWrapper.cs
@@ -0,0 +1,9 @@
+using Nethereum.JsonRpc.Client;
+
+namespace ChainSafe.Gaming.InProcessTransactionExecutor
+{
+ public interface IRpcClientWrapper
+ {
+ public IClient Client { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs
index 067f958ad..2402435c7 100644
--- a/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs
+++ b/src/ChainSafe.Gaming.InProcessTransactionExecutor/InProcessTransactionExecutor.cs
@@ -28,8 +28,9 @@ public class InProcessTransactionExecutor : ITransactionExecutor
/// Injected .
/// Injected .
/// Injected .
+ /// Injected .
/// Throws exception if initializing instance fails.
- public InProcessTransactionExecutor(ISigner signer, IChainConfig chainConfig, IRpcProvider rpcProvider)
+ public InProcessTransactionExecutor(ISigner signer, IChainConfig chainConfig, IRpcProvider rpcProvider, IRpcClientWrapper rpcClientWrapper)
{
// 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
@@ -40,7 +41,7 @@ public InProcessTransactionExecutor(ISigner signer, IChainConfig chainConfig, IR
var account = new Account(privateKey);
if (chainConfig.Rpc is not null && !string.Empty.Equals(chainConfig.Rpc))
{
- web3 = new NWeb3(account, chainConfig.Rpc);
+ web3 = new NWeb3(account, rpcClientWrapper.Client);
}
else if (chainConfig.Ipc is not null && !string.Empty.Equals(chainConfig.Ipc))
{
diff --git a/src/ChainSafe.Gaming.Unity/ChainSafe.Gaming.Unity.csproj b/src/ChainSafe.Gaming.Unity/ChainSafe.Gaming.Unity.csproj
index 949a1f896..53d147ef3 100644
--- a/src/ChainSafe.Gaming.Unity/ChainSafe.Gaming.Unity.csproj
+++ b/src/ChainSafe.Gaming.Unity/ChainSafe.Gaming.Unity.csproj
@@ -17,7 +17,7 @@
-
+