Fix wallet transaction info merging logic and compute color as fallback for labels to not crash

This commit is contained in:
Kukks
2022-12-22 14:17:23 +01:00
parent c7baa66a4d
commit 0534261759
4 changed files with 52 additions and 22 deletions

View File

@@ -582,14 +582,10 @@ namespace BTCPayServer.Controllers
utxos.SelectMany(u => GetWalletObjectsQuery.Get(u)).Distinct().ToArray());
vm.InputsAvailable = utxos.Select(coin =>
{
walletTransactionsInfoAsync.TryGetValue(coin.OutPoint.Hash.ToString(), out var info);
walletTransactionsInfoAsync.TryGetValue(coin.ScriptPubKey.ToHex(), out var info2);
if (info is not null && info2 is not null)
{
info.Merge(info2);
}
info ??= info2;
walletTransactionsInfoAsync.TryGetValue(coin.OutPoint.Hash.ToString(), out var info1);
walletTransactionsInfoAsync.TryGetValue(coin.Address.ToString(), out var info2);
walletTransactionsInfoAsync.TryGetValue(coin.OutPoint.ToString(), out var info3);
var info = WalletRepository.Merge(info1, info2, info3);
return new WalletSendModel.InputSelectionOption()
{
Outpoint = coin.OutPoint.ToString(),