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 @@ - +