Try implement osx, add helper
ADD
WalletWasabi/TorDaemons/tor-osx64.zip
WalletWasabi/TorDaemons/tor-osx64.zip
Binary files /dev/null and b/WalletWasabi/TorDaemons/tor-osx64.zip differ

MODIFY
WalletWasabi/TorSocks5/TorProcessManager.cs
WalletWasabi/TorSocks5/TorProcessManager.cs
@@ -63,26 +63,17 @@ namespace WalletWasabi.TorSocks5
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
- try
- {
- ZipFile.ExtractToDirectory(Path.Combine(torDaemonsDir, "tor-win32.zip"), torDir);
- }
- catch (UnauthorizedAccessException)
- {
- await Task.Delay(100);
- ZipFile.ExtractToDirectory(Path.Combine(torDaemonsDir, "tor-win32.zip"), torDir);
+ await IoHelpers.BetterExtractZipToDirectoryAsync(Path.Combine(torDaemonsDir, "tor-win32.zip"), torDir);
}
- }
- else // Linux and OSX
+ else // Linux or OSX
{
- try
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
- ZipFile.ExtractToDirectory(Path.Combine(torDaemonsDir, "tor-linux64.zip"), torDir);
+ await IoHelpers.BetterExtractZipToDirectoryAsync(Path.Combine(torDaemonsDir, "tor-linux64.zip"), torDir);
}
- catch (UnauthorizedAccessException)
+ else // OSX
{
- await Task.Delay(100);
- ZipFile.ExtractToDirectory(Path.Combine(torDaemonsDir, "tor-linux64.zip"), torDir);
+ await IoHelpers.BetterExtractZipToDirectoryAsync(Path.Combine(torDaemonsDir, "tor-osx64.zip"), torDir);
}
// Make sure there's sufficient permission.

MODIFY
WalletWasabi/WalletWasabi.csproj
WalletWasabi/WalletWasabi.csproj
<None Update="TorDaemons\tor-linux64.zip">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
+ <None Update="TorDaemons\tor-osx64.zip">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
<None Update="TorDaemons\tor-win32.zip">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

Try implement osx, add helper