You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When only one wallet is logged in at a time, it works in both.
(@SuperJMN Couldn't repro, so it must be related to a special case)
Exception:
2024-04-24 11:24:07.307 [1] ERROR Program.RunAsGuiAsync (162) System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List`1.get_Item(Int32 index)
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.PocketViewModel.CommonOrDefault[T](IList`1 list) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\PocketViewModel.cs:line 121
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.PocketViewModel.GetAnonScore(IEnumerable`1 pocketCoins) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\PocketViewModel.cs:line 110
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.PocketViewModel..ctor(IWalletModel wallet, Pocket pocket, Boolean ignorePrivacyMode) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\PocketViewModel.cs:line 31
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.CoinListViewModel.<>c__DisplayClass25_0.<RefreshFromPockets>b__0(Pocket pocket) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\CoinListViewModel.cs:line 181
at System.Linq.Enumerable.SelectEnumerableIterator`2.ToList()
at DynamicData.Kernel.EnumerableEx.AsList[T](IEnumerable`1 source) in /_/src/DynamicData/Kernel/EnumerableEx.cs:line 45
at DynamicData.RangeChange`1..ctor(IEnumerable`1 items, Int32 index) in /_/src/DynamicData/List/RangeChange.cs:line 29
at DynamicData.Change`1..ctor(ListChangeReason reason, IEnumerable`1 items, Int32 index) in /_/src/DynamicData/List/Change.cs:line 47
at DynamicData.ChangeAwareList`1.AddRange(IEnumerable`1 collection) in /_/src/DynamicData/List/ChangeAwareList.cs:line 131
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.CoinListViewModel.<>c__DisplayClass25_0.<RefreshFromPockets>b__1(IExtendedList`1 x) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\CoinListViewModel.cs:line 188
at DynamicData.List.Internal.ReaderWriter`1.Write(Action`1 updateAction) in /_/src/DynamicData/List/Internal/ReaderWriter.cs:line 75
at DynamicData.SourceList`1.Edit(Action`1 updateAction) in /_/src/DynamicData/List/SourceList.cs:line 129
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.CoinListViewModel.RefreshFromPockets(ISourceList`1 source, IEnumerable`1 pockets) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\CoinListViewModel.cs:line 184
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.CoinListViewModel.<>c__DisplayClass4_1.<.ctor>b__11(IReadOnlyCollection`1 pockets) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\CoinListViewModel.cs:line 108
at System.Reactive.Linq.ObservableImpl.Do`1.OnNext._.OnNext(TSource value)
--- End of stack trace from previous location ---
at System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow(Exception exception)
at System.Reactive.ExceptionHelpers.Throw(Exception exception)
at System.Reactive.Stubs.<>c.<.cctor>b__2_1(Exception ex)
at System.Reactive.AnonymousSafeObserver`1.OnError(Exception error)
at System.Reactive.Sink`1.ForwardOnError(Exception error)
at System.Reactive.Linq.ObservableImpl.Do`1.OnNext._.OnNext(TSource value)
at System.Reactive.Linq.ObservableImpl.SkipWhile`1.Predicate._.OnNext(TSource value)
at System.Reactive.Linq.ObservableImpl.Scan`2._.OnNext(TSource value)
at System.Reactive.AutoDetachObserver`1.OnNextCore(T value)
at System.Reactive.Linq.ObservableImpl.Where`1.Predicate._.OnNext(TSource value)
at System.Reactive.AutoDetachObserver`1.OnNextCore(T value)
at DynamicData.Kernel.InternalEx.<>c__DisplayClass6_0`1.<Return>b__0(IObserver`1 o) in /_/src/DynamicData/Kernel/InternalEx.cs:line 125
at System.Reactive.Linq.QueryLanguage.CreateWithActionDisposable`1.SubscribeCore(IObserver`1 observer)
at System.Reactive.ObservableBase`1.Subscribe(IObserver`1 observer)
at System.Reactive.TailRecursiveSink`1.Drain()
at System.Reactive.TailRecursiveSink`1.Run(IEnumerable`1 sources)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.Reactive.Sink`2.Run(IObservable`1 source)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at DynamicData.ObservableCache`2.<>c__DisplayClass19_0.<Connect>b__0(IObserver`1 observer) in /_/src/DynamicData/Cache/ObservableCache.cs:line 125
at System.Reactive.Linq.QueryLanguage.CreateWithDisposableObservable`1.SubscribeCore(IObserver`1 observer)
at System.Reactive.ObservableBase`1.Subscribe(IObserver`1 observer)
at System.Reactive.Sink`2.Run(IObservable`1 source)
at System.Reactive.Linq.ObservableImpl.Scan`2.Run(_ sink)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.Reactive.Sink`2.Run(IObservable`1 source)
at System.Reactive.Linq.ObservableImpl.Defer`1._.Run()
at System.Reactive.Linq.ObservableImpl.Defer`1.Run(_ sink)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.Reactive.Sink`2.Run(IObservable`1 source)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.Reactive.Sink`2.Run(IObservable`1 source)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.Reactive.Sink`2.Run(IObservable`1 source)
at System.Reactive.Linq.ObservableImpl.SkipWhile`1.Predicate.Run(_ sink)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.Reactive.Sink`2.Run(IObservable`1 source)
at System.Reactive.Linq.ObservableImpl.Do`1.OnNext.Run(_ sink)
at System.Reactive.Producer`2.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
at System.ObservableExtensions.Subscribe[T](IObservable`1 source)
at WalletWasabi.Fluent.ViewModels.Wallets.Coins.CoinListViewModel..ctor(IWalletModel wallet, IList`1 initialCoinSelection, Boolean ignorePrivacyMode) in WalletWasabi.Fluent\ViewModels\Wallets\Coins\CoinListViewModel.cs:line 101
at WalletWasabi.Fluent.ViewModels.Wallets.Advanced.WalletCoinsViewModel..ctor(IWalletModel wallet) in WalletWasabi.Fluent\ViewModels\Wallets\Advanced\WalletCoinsViewModel.cs:line 42
at WalletWasabi.Fluent.ViewModels.Wallets.Advanced.WalletCoinsViewModel..ctor(UiContext uiContext, IWalletModel wallet) in WalletWasabi.Fluent\WalletWasabi.Fluent.Generators\WalletWasabi.Fluent.Generators.Generators.MainGenerator\WalletCoinsViewModel_UiContext.cs:line 8
at WalletWasabi.Fluent.ViewModels.Navigation.FluentNavigate.WalletCoins(IWalletModel wallet, NavigationTarget navigationTarget, NavigationMode navigationMode) in WalletWasabi.Fluent\WalletWasabi.Fluent.Generators\WalletWasabi.Fluent.Generators.Generators.MainGenerator\FluentNavigate.g.cs:line 390
at WalletWasabi.Fluent.ViewModels.Wallets.WalletViewModel.<.ctor>b__8_23() in WalletWasabi.Fluent\ViewModels\Wallets\WalletViewModel.cs:line 112
at ReactiveUI.ReactiveCommand.<>c__DisplayClass0_0.<Create>b__1(IObserver`1 observer) in /_/src/ReactiveUI/ReactiveCommand/ReactiveCommand.cs:line 105
at System.Reactive.Linq.QueryLanguage.CreateWithDisposableObservable`1.SubscribeCore(IObserver`1 observer)
at System.Reactive.ObservableBase`1.Subscribe(IObserver`1 observer)
The text was updated successfully, but these errors were encountered:
Debugged this issue, it is related to how the UI handles the models and how they are updated.
Discussed a possible solution with @ichthus1604, which will not just fix this issue, but also free up some resources when they are not needed.
When only one wallet is logged in at a time, it works in both.
(@SuperJMN Couldn't repro, so it must be related to a special case)
Exception:
The text was updated successfully, but these errors were encountered: