From ec0abeac289bb263e51e22c670a5ccc0c85b8d01 Mon Sep 17 00:00:00 2001 From: Kukks Date: Sun, 19 Feb 2023 12:57:54 +0100 Subject: [PATCH] updatewabisabi --- .../Serialization/DefaultAffiliateServers.cs | 12 ------------ .../DefaultAffiliationFlagAttribute.cs | 11 ----------- .../BTCPayCoinjoinCoinSelector.cs | 18 +++++++++--------- .../BTCPayWallet.cs | 4 ++-- .../Shared/Wabisabi/WabisabiDashboard.cshtml | 4 ++-- .../UpdateWabisabiStoreSettings.cshtml | 9 ++++++--- .../Views/_ViewImports.cshtml | 4 +++- submodules/walletwasabi | 2 +- 8 files changed, 23 insertions(+), 41 deletions(-) delete mode 100644 Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliateServers.cs delete mode 100644 Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliationFlagAttribute.cs diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliateServers.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliateServers.cs deleted file mode 100644 index dd92af0..0000000 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliateServers.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Collections.Immutable; -using System.ComponentModel; -using WalletWasabi.WabiSabi.Models; - -namespace WalletWasabi.Affiliation.Serialization; - -public class DefaultAffiliateServersAttribute : DefaultValueAttribute -{ - public DefaultAffiliateServersAttribute() : base(ImmutableDictionary.Empty) - { - } -} diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliationFlagAttribute.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliationFlagAttribute.cs deleted file mode 100644 index bc9601f..0000000 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/AffiliateServer/Serialization/DefaultAffiliationFlagAttribute.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.ComponentModel; -using WalletWasabi.WabiSabi.Models; - -namespace WalletWasabi.Affiliation.Serialization; - -public class DefaultAffiliationFlagAttribute : DefaultValueAttribute -{ - public DefaultAffiliationFlagAttribute() : base(AffiliationFlag.Default) - { - } -} diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayCoinjoinCoinSelector.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayCoinjoinCoinSelector.cs index 847eb75..b16b89c 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayCoinjoinCoinSelector.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayCoinjoinCoinSelector.cs @@ -42,7 +42,7 @@ public class BTCPayCoinjoinCoinSelector : IRoundCoinSelector utxoSelectionParameters.CoordinationFeeRate); var percentageLeft = (effV.ToDecimal(MoneyUnit.BTC) / coin.Amount.ToDecimal(MoneyUnit.BTC)); // filter out low value coins where 50% of the value would be eaten up by fees - return effV > 0 && percentageLeft >= 0.5m; + return effV > Money.Zero && percentageLeft >= 0.5m; }) .Where(coin => { @@ -119,15 +119,15 @@ public class BTCPayCoinjoinCoinSelector : IRoundCoinSelector // Sort the coins by their anon score and then by descending order their value, and then slightly randomize in 2 ways: //attempt to shift coins that comes from the same tx AND also attempt to shift coins based on percentage probability var remainingCoins = SlightlyShiftOrder(RandomizeCoins( - coins.OrderBy(coin => coin.CoinColor(_wallet.AnonymitySetTarget)).ThenByDescending(x => + coins.OrderBy(coin => coin.CoinColor(_wallet.AnonScoreTarget)).ThenByDescending(x => x.EffectiveValue(utxoSelectionParameters.MiningFeeRate, utxoSelectionParameters.CoordinationFeeRate)) .ToList(), liquidityClue), 10); var remainingPendingPayments = new List(pendingPayments); - var solution = new SubsetSolution(remainingPendingPayments.Count, _wallet.AnonymitySetTarget, + var solution = new SubsetSolution(remainingPendingPayments.Count, _wallet.AnonScoreTarget, utxoSelectionParameters); - if (remainingCoins.All(coin => coin.CoinColor(_wallet.AnonymitySetTarget) == AnonsetType.Green) && + if (remainingCoins.All(coin => coin.CoinColor(_wallet.AnonScoreTarget) == AnonsetType.Green) && !remainingPendingPayments.Any()) { // var decidedAmt = Random.Shared.Next(10, maxCoins); @@ -179,20 +179,20 @@ public class BTCPayCoinjoinCoinSelector : IRoundCoinSelector coinColorCount.TryGetValue(coinColor.Key, out var currentCoinColorCount); if (currentCoinColorCount < coinColor.Value) { - predicate = coin1 => coin1.CoinColor(_wallet.AnonymitySetTarget) == coinColor.Key; + predicate = coin1 => coin1.CoinColor(_wallet.AnonScoreTarget) == coinColor.Key; break; } } else { //if the ideal amount = 0, then we should de-prioritize. - predicate = coin1 => coin1.CoinColor(_wallet.AnonymitySetTarget) != coinColor.Key; + predicate = coin1 => coin1.CoinColor(_wallet.AnonScoreTarget) != coinColor.Key; break; } } var coin = remainingCoins.FirstOrDefault(predicate) ?? remainingCoins.First(); - var color = coin.CoinColor(_wallet.AnonymitySetTarget); + var color = coin.CoinColor(_wallet.AnonScoreTarget); // If the selected coins list is at its maximum size, break out of the loop if (solution.Coins.Count == maxCoins) { @@ -201,7 +201,7 @@ public class BTCPayCoinjoinCoinSelector : IRoundCoinSelector remainingCoins.Remove(coin); if (maxPerType.TryGetValue(color, out var maxColor) && - solution.Coins.Count(coin1 => coin1.CoinColor(_wallet.AnonymitySetTarget) == color) == maxColor) + solution.Coins.Count(coin1 => coin1.CoinColor(_wallet.AnonScoreTarget) == color) == maxColor) { continue; } @@ -280,7 +280,7 @@ public class BTCPayCoinjoinCoinSelector : IRoundCoinSelector var currentCoin = remainingCoins.First(); remainingCoins.RemoveAt(0); var lastCoin = workingList.LastOrDefault(); - if (lastCoin is null || currentCoin.CoinColor(_wallet.AnonymitySetTarget) == AnonsetType.Green || + if (lastCoin is null || currentCoin.CoinColor(_wallet.AnonScoreTarget) == AnonsetType.Green || !remainingCoins.Any() || (remainingCoins.Count == 1 && remainingCoins.First().TransactionId == currentCoin.TransactionId) || lastCoin.TransactionId != currentCoin.TransactionId || diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayWallet.cs b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayWallet.cs index fa2f7f8..5947dea 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayWallet.cs +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayWallet.cs @@ -108,7 +108,7 @@ public class BTCPayWallet : IWallet, IDestinationProvider public IKeyChain KeyChain { get; } public IDestinationProvider DestinationProvider => this; - public int AnonymitySetTarget => WabisabiStoreSettings.PlebMode? 2: WabisabiStoreSettings.AnonymitySetTarget; + public int AnonScoreTarget => WabisabiStoreSettings.PlebMode? 2: WabisabiStoreSettings.AnonymitySetTarget; public bool ConsolidationMode => !WabisabiStoreSettings.PlebMode && WabisabiStoreSettings.ConsolidationMode; public TimeSpan FeeRateMedianTimeFrame { get; } = TimeSpan.FromHours(KeyManager.DefaultFeeRateMedianTimeFrameHours); public bool RedCoinIsolation => !WabisabiStoreSettings.PlebMode &&WabisabiStoreSettings.RedCoinIsolation; @@ -121,7 +121,7 @@ public class BTCPayWallet : IWallet, IDestinationProvider public async Task GetPrivacyPercentageAsync() { - return GetPrivacyPercentage(await GetAllCoins(), AnonymitySetTarget); + return GetPrivacyPercentage(await GetAllCoins(), AnonScoreTarget); } public async Task GetAllCoins() diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml index a546d28..1491bff 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/Shared/Wabisabi/WabisabiDashboard.cshtml @@ -91,10 +91,10 @@ var wallet = (BTCPayWallet) await WalletProvider.GetWalletAsync(storeId); var coins = await wallet.GetAllCoins(); - var privacy = wallet.GetPrivacyPercentage(coins, wallet.AnonymitySetTarget); + var privacy = wallet.GetPrivacyPercentage(coins, wallet.AnonScoreTarget); var privacyPercentage = Math.Round(privacy * 100); - var colorCoins = coins.GroupBy(coin => coin.CoinColor(wallet.AnonymitySetTarget)).ToDictionary(grouping => grouping.Key, grouping => grouping); + var colorCoins = coins.GroupBy(coin => coin.CoinColor(wallet.AnonScoreTarget)).ToDictionary(grouping => grouping.Key, grouping => grouping);
@if (wallet is BTCPayWallet btcPayWallet) diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiStore/UpdateWabisabiStoreSettings.cshtml b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiStore/UpdateWabisabiStoreSettings.cshtml index 020bd7b..0207447 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiStore/UpdateWabisabiStoreSettings.cshtml +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/WabisabiStore/UpdateWabisabiStoreSettings.cshtml @@ -63,9 +63,12 @@ .Select(pair => new SelectListItem(pair.Value.Result, pair.Key, Model.MixToOtherWallet == pair.Key)).Prepend(new SelectListItem("None", "")); } - -

Coinjoin configuration

- +
+

Coinjoin configuration

+ + + +
@{ var wallet = await WalletProvider.GetWalletAsync(storeId); diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/_ViewImports.cshtml b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/_ViewImports.cshtml index 5ee7b37..3ee3edb 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/Views/_ViewImports.cshtml +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/Views/_ViewImports.cshtml @@ -1,4 +1,6 @@ @using BTCPayServer.Abstractions.Extensions - +@inject BTCPayServer.Abstractions.Services.Safe Safe @addTagHelper *, BTCPayServer.Abstractions +@addTagHelper *, BTCPayServer.TagHelpers +@addTagHelper *, BTCPayServer.Views.TagHelpers @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers \ No newline at end of file diff --git a/submodules/walletwasabi b/submodules/walletwasabi index 5111d61..77021fc 160000 --- a/submodules/walletwasabi +++ b/submodules/walletwasabi @@ -1 +1 @@ -Subproject commit 5111d61ca1f0cb1da9d4d4a127f2dbfa5841dda1 +Subproject commit 77021fc2cab35f19194b20bb2e8db2996c99a6a1