Files
hash-wallet/lib/view_model/settings/silent_payments_settings_view_model.dart
T
4dc5be7640 sp debugging (#2426)
* feat(sp): debug logging feature

* fix(sp): Receiver

* feat(sp): handle and log failures and early returns

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-08-06 16:26:19 +03:00

49 lines
1.5 KiB
Dart

import 'dart:io';
import 'package:cake_wallet/bitcoin/bitcoin.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cw_core/wallet_base.dart';
import 'package:mobx/mobx.dart';
import 'package:path_provider/path_provider.dart';
part 'silent_payments_settings_view_model.g.dart';
class SilentPaymentsSettingsViewModel = SilentPaymentsSettingsViewModelBase
with _$SilentPaymentsSettingsViewModel;
abstract class SilentPaymentsSettingsViewModelBase with Store {
SilentPaymentsSettingsViewModelBase(this._settingsStore, this._wallet);
final SettingsStore _settingsStore;
final WalletBase _wallet;
@computed
bool get silentPaymentsCardDisplay => _settingsStore.silentPaymentsCardDisplay;
@computed
bool get silentPaymentsAlwaysScan => bitcoin!.getIsAlwaysScanningSP(_wallet);
@action
void setSilentPaymentsCardDisplay(bool value) {
_settingsStore.silentPaymentsCardDisplay = value;
}
@action
void setSilentPaymentsAlwaysScan(bool value) {
bitcoin!.setIsAlwaysScanningSP(_wallet, value);
if (value) bitcoin!.setScanningActive(_wallet, true);
}
Future<String> getAbbreviatedLogs() async {
final appSupportPath = (await getApplicationSupportDirectory()).path;
final logsFile = File("$appSupportPath/logs/debug.log");
if (!logsFile.existsSync()) {
return "";
}
final logs = logsFile.readAsStringSync();
// return last 10000 characters:
return logs.substring(logs.length > 10000 ? logs.length - 10000 : 0);
}
}