anchor.diff:  begin
     // event registrations
     FNodeNotifyEvents := TNodeNotifyEvents.Create(self);
  +  FNodeNotifyEvents.WatchKeys := AutoDispose( TOrderedAccountKeysList.Create(TUserInterface.Node.Bank.SafeBox, false) ) as TOrderedAccountKeysList;
  +  FNodeNotifyEvents.OnKeyActivity:= OnUserAccountsChanged;
     FNodeNotifyEvents.OnBlocksChanged := OnNodeBlocksChanged;
     FNodeNotifyEvents.OnOperationsChanged := OnNodeNewOperation;
     TWallet.Keys.OnChanged.Add(OnPrivateKeysChanged);
   
     // fields
  -  FAccountsDataSource := TFastAccountsDataSource.Create(Self);
  -  FAccountsDataSource.Summary:= @FUserData;
  +  FAccountsDataSource := TAccountsDataSource.Create(Self);
     FOperationsDataSource := TAccountsOperationsDataSource.Create(Self);
     FOperationsHistory := woh7Days;
     FOperationsMode:= womAllAccounts;
  
positive.code:   RefreshMyAccountsCombo;
  end;
  
  procedure TCTRLWallet.OnNodeBlocksChanged(Sender: TObject);
  var changed : TArray<TAccount>;
  begin
    if NOT TUserInterface.Node.HasBestKnownBlockchainTip then
      exit; // node syncing
  
negative.code: begin
    FetchUserData;
    RefreshTotals;
    SetAccountsMode(wamMyAccounts);
    SetOperationsMode(womAllAccounts);
  end;
  
  procedure TCTRLWallet.FetchUserData;
  