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 1a2e43c0f..4ea6aad1a 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 5efc269a3..8ba45c124 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 d4ed40598..96f8cb8d3 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 d7918d82d..44d093315 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.web3auth/Runtime/Web3AuthProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs
index be5e853d2..e24ad08e0 100644
--- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs
+++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthProvider.cs
@@ -26,8 +26,9 @@ public Web3AuthProvider(
Web3AuthWalletConfig config,
Web3Environment environment,
IChainConfig chainConfig,
- IOperationTracker operationTracker)
- : base(environment, chainConfig, operationTracker)
+ IOperationTracker operationTracker,
+ IOperatingSystemMediator operatingSystemMediator)
+ : base(environment, chainConfig, operationTracker, operatingSystemMediator)
{
this.operationTracker = operationTracker;
_config = config;
diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs
index ea861f970..9fe43a179 100644
--- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs
+++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/Web3AuthWebGLProvider.cs
@@ -12,8 +12,8 @@ public class Web3AuthWebGLProvider : Web3AuthProvider
{
private readonly Web3AuthWalletConfig _config;
- public Web3AuthWebGLProvider(Web3AuthWalletConfig config, Web3Environment environment, IChainConfig chainConfig, IOperationTracker operationTracker)
- : base(config, environment, chainConfig, operationTracker)
+ public Web3AuthWebGLProvider(Web3AuthWalletConfig config, Web3Environment environment, IChainConfig chainConfig, IOperationTracker operationTracker, IOperatingSystemMediator operatingSystemMediator)
+ : base(config, environment, chainConfig, operationTracker, operatingSystemMediator)
{
_config = config;
}
diff --git a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/chainsafe.web3-unity.web3auth.asmdef b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/chainsafe.web3-unity.web3auth.asmdef
index f0dfa8586..c7bc5073e 100644
--- a/Packages/io.chainsafe.web3-unity.web3auth/Runtime/chainsafe.web3-unity.web3auth.asmdef
+++ b/Packages/io.chainsafe.web3-unity.web3auth/Runtime/chainsafe.web3-unity.web3auth.asmdef
@@ -3,13 +3,15 @@
"rootNamespace": "",
"references": [
"GUID:5426c6b788696eb4c88f4198b59839eb",
- "Unity.TextMeshPro"
+ "GUID:6055be8ebefd69e48b49212b09b47b2f"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
- "precompiledReferences": [],
+ "precompiledReferences": [
+ "Nethereum.Signer.dll"
+ ],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
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 54256d59f..498eaca35 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 dcb068ed2..913b6ecf1 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 675a91021..d4568e29c 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 0d396851c..021537bde 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 b8df79549..898a79342 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.Reown.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Reown.dll
index cb1f86e8f..70dca84c6 100644
Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Reown.dll and b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.Reown.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 8cba8ed54..d17afdf8f 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 f9b9a8308..b5d7c4289 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 aa9a7d319..f0cf3ede6 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 713bb52ae..38ede5f69 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 c75d7d1a9..20b63f55e 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.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/ChainSafe.Gaming.dll
index 723861ad0..612c98125 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/Libraries/Nethereum.Signer.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Signer.dll
deleted file mode 100755
index 4fdb46c6f..000000000
Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Signer.dll and /dev/null differ
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Signer.dll.meta b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Signer.dll.meta
deleted file mode 100644
index 9153f24bd..000000000
--- a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Signer.dll.meta
+++ /dev/null
@@ -1,33 +0,0 @@
-fileFormatVersion: 2
-guid: 1315cf3b9d584c38bbda0a17239b5ecc
-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/Nethereum.Web3.dll b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Web3.dll
deleted file mode 100644
index 49b364684..000000000
Binary files a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Web3.dll and /dev/null differ
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Web3.dll.meta b/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Web3.dll.meta
deleted file mode 100644
index 1033f22e7..000000000
--- a/Packages/io.chainsafe.web3-unity/Runtime/Libraries/Nethereum.Web3.dll.meta
+++ /dev/null
@@ -1,33 +0,0 @@
-fileFormatVersion: 2
-guid: f65917bc849a476692cef16063b2d614
-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/Plugins/Countly/csc.rsp.meta b/Packages/io.chainsafe.web3-unity/Runtime/Plugins/Countly/csc.rsp.meta
deleted file mode 100644
index b29495dcd..000000000
--- a/Packages/io.chainsafe.web3-unity/Runtime/Plugins/Countly/csc.rsp.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: a24005f16a377574c88b9a818a391065
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Reown/AppKit/ReownWebGLProvider.cs b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Reown/AppKit/ReownWebGLProvider.cs
index 750a9e0eb..c7c12de36 100644
--- a/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Reown/AppKit/ReownWebGLProvider.cs
+++ b/Packages/io.chainsafe.web3-unity/Runtime/Scripts/Reown/AppKit/ReownWebGLProvider.cs
@@ -40,7 +40,7 @@ public class ReownWebGLProvider : WalletProvider, ILifecycleParticipant, IConnec
public ReownWebGLProvider(ReownHttpClient httpClient, IChainConfigSet chains, IReownConfig reownConfig,
ILogWriter logWriter, Web3Environment web3Environment, IChainManager chainManager,
- IOperationTracker operationTracker) : base(web3Environment, chainManager.Current, operationTracker)
+ IOperationTracker operationTracker, IOperatingSystemMediator operatingSystemMediator) : base(web3Environment, chainManager.Current, operationTracker, operatingSystemMediator)
{
_httpClient = httpClient;
_chains = chains;
diff --git a/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs b/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs
index 4d2099582..62759806c 100644
--- a/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs
+++ b/src/ChainSafe.Gaming.HyperPlay/HyperPlayProvider.cs
@@ -31,14 +31,16 @@ public class HyperPlayProvider : WalletProvider
/// Injected .
/// ChainConfig to fetch chain data.
/// Injected .
+ /// Injected .
public HyperPlayProvider(
IHyperPlayConfig config,
IHyperPlayData data,
ILocalStorage localStorage,
Web3Environment environment,
IChainConfig chainConfig,
- IOperationTracker operationTracker)
- : base(environment, chainConfig, operationTracker)
+ IOperationTracker operationTracker,
+ IOperatingSystemMediator operatingSystemMediator)
+ : base(environment, chainConfig, operationTracker, operatingSystemMediator)
{
this.config = config;
this.data = data;
diff --git a/src/ChainSafe.Gaming.Reown/ReownProvider.cs b/src/ChainSafe.Gaming.Reown/ReownProvider.cs
index 7176f3247..e3e621456 100644
--- a/src/ChainSafe.Gaming.Reown/ReownProvider.cs
+++ b/src/ChainSafe.Gaming.Reown/ReownProvider.cs
@@ -71,8 +71,9 @@ public ReownProvider(
Web3Environment environment,
ReownHttpClient reownHttpClient,
IOperationTracker operationTracker,
- IRpcProvider rpcProvider)
- : base(environment, chainConfig, operationTracker)
+ IRpcProvider rpcProvider,
+ IOperatingSystemMediator operatingSystemMediator)
+ : base(environment, chainConfig, operationTracker, operatingSystemMediator)
{
this.operationTracker = operationTracker;
this.rpcProvider = rpcProvider;
@@ -139,62 +140,61 @@ private async Task Initialize()
ReownLogger.Instance = new ReownLogWriter(logWriter, config);
- using (operationTracker.TrackOperation("Initializing the Reown module..."))
- {
- var storage = await ReownStorageFactory.Build(environment);
- var signClientOptions = new SignClientOptions
- {
- ProjectId = config.ProjectId,
- Name = config.ProjectName,
- Metadata = config.Metadata,
- BaseContext = config.BaseContext,
- Storage = storage,
- KeyChain = new KeyChain(storage),
- ConnectionBuilder = config.ConnectionBuilder,
- RelayUrlBuilder = config.RelayUrlBuilder,
- };
- SignClient = await SignClient.Init(signClientOptions);
- await SignClient.AddressProvider.LoadDefaultsAsync();
+ var storage = await ReownStorageFactory.Build(environment);
+ var signClientOptions = new SignClientOptions
+ {
+ ProjectId = config.ProjectId,
+ Name = config.ProjectName,
+ Metadata = config.Metadata,
+ BaseContext = config.BaseContext,
+ Storage = storage,
+ KeyChain = new KeyChain(storage),
+ ConnectionBuilder = config.ConnectionBuilder,
+ RelayUrlBuilder = config.RelayUrlBuilder,
+ };
+
+ SignClient = await SignClient.Init(signClientOptions);
+ await SignClient.AddressProvider.LoadDefaultsAsync();
+
+ if (config.OnRelayErrored is not null)
+ {
+ SignClient.CoreClient.Relayer.OnErrored += config.OnRelayErrored;
+ }
- if (config.OnRelayErrored is not null)
+ var optionalNamespace =
+ new ProposedNamespace // todo using optional namespaces like AppKit does, should they be required?
{
- SignClient.CoreClient.Relayer.OnErrored += config.OnRelayErrored;
- }
-
- var optionalNamespace =
- new ProposedNamespace // todo using optional namespaces like AppKit does, should they be required?
+ Chains = chainConfigSet.Configs
+ .Select(chainEntry => chainEntry.ChainId)
+ .ToArray(),
+ Methods = new[]
{
- Chains = chainConfigSet.Configs
- .Select(chainEntry => chainEntry.ChainId)
- .ToArray(),
- Methods = new[]
- {
- "eth_sign",
- "personal_sign",
- "eth_signTypedData",
- "eth_signTransaction",
- "eth_sendTransaction",
- "eth_chainId",
- "eth_getTransactionByHash",
- "wallet_switchEthereumChain",
- "wallet_addEthereumChain",
- "eth_blockNumber",
- },
- Events = new[]
- {
- "chainChanged",
- "accountsChanged",
- },
- };
-
- optionalNamespaces = new Dictionary
- {
- { EvmNamespace, optionalNamespace },
+ "eth_sign",
+ "personal_sign",
+ "eth_signTypedData",
+ "eth_signTransaction",
+ "eth_sendTransaction",
+ "eth_chainId",
+ "eth_getTransactionByHash",
+ "wallet_switchEthereumChain",
+ "wallet_addEthereumChain",
+ "eth_blockNumber",
+ },
+ Events = new[]
+ {
+ "chainChanged",
+ "accountsChanged",
+ },
};
- initialized = true;
- }
+ optionalNamespaces = new Dictionary
+ {
+ { EvmNamespace, optionalNamespace },
+ };
+
+ initialized = true;
+
}
protected override Task GetWalletChainId()
@@ -314,13 +314,9 @@ private async Task ConnectSession()
{
ConnectedData connectedData;
IConnectionHandler connectionHandler;
-
- using (operationTracker.TrackOperation("Initializing a new Reown session..."))
- {
- var connectOptions = new ConnectOptions { OptionalNamespaces = optionalNamespaces };
- connectedData = await SignClient.Connect(connectOptions);
- connectionHandler = await config.ConnectionHandlerProvider.ProvideHandler();
- }
+ var connectOptions = new ConnectOptions { OptionalNamespaces = optionalNamespaces };
+ connectedData = await SignClient.Connect(connectOptions);
+ connectionHandler = await config.ConnectionHandlerProvider.ProvideHandler();
try
{
diff --git a/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs b/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs
index 433b0aa92..683c61aea 100644
--- a/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs
+++ b/src/ChainSafe.Gaming.Unity.MetaMask/MetaMaskProvider.cs
@@ -28,12 +28,15 @@ public class MetaMaskProvider : WalletProvider
/// Injected .
/// Injected .
/// Injected .
+ /// Injected .
+ /// Injected
public MetaMaskProvider(
Web3Environment environment,
IChainConfig chainConfig,
ChainRegistryProvider chainRegistryProvider,
- IOperationTracker operationTracker)
- : base(environment, chainConfig, operationTracker)
+ IOperationTracker operationTracker,
+ IOperatingSystemMediator operatingSystemMediator)
+ : base(environment, chainConfig, operationTracker, operatingSystemMediator)
{
logWriter = environment.LogWriter;
this.chainConfig = chainConfig;
diff --git a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs
index 2eab858ac..9383dfa1d 100644
--- a/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs
+++ b/src/ChainSafe.Gaming/Web3/Evm/Wallet/WalletProvider.cs
@@ -9,34 +9,37 @@
namespace ChainSafe.Gaming.Web3.Evm.Wallet
{
///
- /// Concrete implementation of .
+ /// Concrete implementation of .
///
- public abstract class WalletProvider : RpcClientProvider, IWalletProvider, IChainSwitchHandler // todo make sure chain id is in sync for wallet and sdk
+ public abstract class
+ WalletProvider : RpcClientProvider, IWalletProvider,
+ IChainSwitchHandler // todo make sure chain id is in sync for wallet and sdk
{
- private readonly ILogWriter logWriter;
private readonly IChainConfig chainConfig;
+ private readonly ILogWriter logWriter;
+ private readonly IOperatingSystemMediator operatingSystemMediator;
private readonly IOperationTracker operationTracker;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
- /// Injected .
- /// Injected .
- /// Injected .
- protected WalletProvider(Web3Environment environment, IChainConfig chainConfig, IOperationTracker operationTracker)
+ /// Injected .
+ /// Injected .
+ /// Injected .
+ /// Injected .
+ protected WalletProvider(
+ Web3Environment environment,
+ IChainConfig chainConfig,
+ IOperationTracker operationTracker,
+ IOperatingSystemMediator operatingSystemMediator)
: base(environment, chainConfig)
{
this.operationTracker = operationTracker;
+ this.operatingSystemMediator = operatingSystemMediator;
this.chainConfig = chainConfig;
- this.logWriter = environment.LogWriter;
+ logWriter = environment.LogWriter;
}
- public abstract Task Connect();
-
- public abstract Task Disconnect();
-
- public abstract Task Request(string method, params object[] parameters); // todo sync wallet chain id before sending any other request
-
public virtual async Task HandleChainSwitching()
{
try
@@ -45,29 +48,18 @@ public virtual async Task HandleChainSwitching()
}
catch (Exception ex)
{
- throw new Web3Exception($"Error occured while trying to switch wallet chain.", ex);
+ throw new Web3Exception("Error occured while trying to switch wallet chain.", ex);
}
}
- private async Task SwitchChain(IChainConfig chainId)
- {
- await SwitchChainAddIfMissing(chainId);
- }
-
- protected virtual async Task GetWalletChainId()
- {
- var rawHexChainId = await Request(
- "eth_chainId");
- rawHexChainId = rawHexChainId.Replace("0x", string.Empty);
- ulong number = Convert.ToUInt64(rawHexChainId, 16);
+ public abstract Task Connect();
- return number.ToString(CultureInfo.InvariantCulture);
- }
+ public abstract Task Disconnect();
- public string GetChainId(string chainId)
- {
- return "0x" + ulong.Parse(chainId).ToString("X");
- }
+ public abstract Task
+ Request(
+ string method,
+ params object[] parameters); // todo sync wallet chain id before sending any other request
public virtual async Task SwitchChainAddIfMissing(IChainConfig config = null)
{
@@ -84,7 +76,7 @@ public virtual async Task SwitchChainAddIfMissing(IChainConfig config = null)
}
catch (Exception)
{
- logWriter.Log($"Chain Id isn't present in the wallet. Adding it...");
+ logWriter.Log("Chain Id isn't present in the wallet. Adding it...");
}
var addChainParameter = new
@@ -101,34 +93,66 @@ public virtual async Task SwitchChainAddIfMissing(IChainConfig config = null)
blockExplorerUrls = new[] { chainConfig.BlockExplorerUrl },
};
- using (operationTracker.TrackOperation($"Switching the network to: {chainConfig.Chain}...\n(The network will be added if it's missing)"))
+ try
{
- try
+ if (operatingSystemMediator.IsMobilePlatform)
{
- // this will switch to the network and add it to the wallet if it's missing
await Task.Run(() => Request