commit 11b736d9630c417dd43238a29cf56d0ba4e52c50
parent 73d015f8c3ca83cf2af3bb34ad7e51aac8dd1ca0
Author: Marc Stibane <marc@taler.net>
Date: Fri, 21 Aug 2026 16:25:58 +0200
MIGRATE_DB, log nativeDB ? 20 : 50
Diffstat:
4 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/TalerWallet1/Backend/WalletCore.swift b/TalerWallet1/Backend/WalletCore.swift
@@ -33,6 +33,7 @@ class WalletCore: QuickjsMessageHandler {
var delegate: WalletBackendDelegate?
var versionInfo: VersionInfo? // shown in SettingsView
+ var nativeDB: Bool
var isObserving: Int
var isLogging: Bool
var logTransactions: Bool
@@ -93,6 +94,7 @@ class WalletCore: QuickjsMessageHandler {
}
init() throws {
+ nativeDB = false
isObserving = 0
isLogging = false
logTransactions = false
@@ -600,11 +602,13 @@ extension WalletCore {
let timeUsed = Date.now - timeSent
let millisecs = timeUsed.milliseconds
if let error {
- logger.error("Request \"id\":\(requestId, privacy: .public) failed after \(millisecs, privacy: .public) ms")
+ logger.error("Request \"id\":\(requestId, privacy: .public) failed after \(millisecs, privacy: .public) ms, error: \(error.code, privacy: .public)")
} else {
- if millisecs > 50 {
+#if DEBUG
+ if millisecs > (nativeDB ? 20 : 50) {
logger.info("Request \"id\":\(requestId, privacy: .public) took \(millisecs, privacy: .public) ms")
}
+#endif
}
var err: Error? = nil
if let json = result, error == nil {
diff --git a/TalerWallet1/Controllers/Controller.swift b/TalerWallet1/Controllers/Controller.swift
@@ -545,12 +545,9 @@ class Controller: ObservableObject {
backendState = .initing
do {
let walletCore = WalletCore.shared
-#if TALER_NIGHTLY
- let versionInfo = try await model.initWalletCore(setTesting: setTesting, migrateNativeDb: true)
-#else
- let versionInfo = try await model.initWalletCore(setTesting: setTesting, migrateNativeDb: false)
-#endif
- walletCore.versionInfo = versionInfo
+ let response = try await model.initWalletCore(setTesting: setTesting, migrateNativeDb: MIGRATE_DB)
+ walletCore.versionInfo = response.versionInfo
+ walletCore.nativeDB = (response.databaseBackend == "sqlite")
if developerMode {
// best-effort dev-mode setup: a network hiccup here must not abort
// wallet-core startup (see the force `try!` at the call site)
diff --git a/TalerWallet1/Controllers/PublicConstants.swift b/TalerWallet1/Controllers/PublicConstants.swift
@@ -9,10 +9,13 @@ import Foundation
#if TALER_WALLET
let TALER_LOGO = "taler-logo-2023-blue"
+let MIGRATE_DB = false
#elseif TALER_NIGHTLY
let TALER_LOGO = "taler-logo-2023-black"
+let MIGRATE_DB = true
#else // GNU_TALER
let TALER_LOGO = "taler-logo-2023-red"
+let MIGRATE_DB = false
#endif
let TALER_LOGO_FULL = "taler-logo-full"
let TALER_LOGO_QR = "taler-logo-qr"
diff --git a/TalerWallet1/Model/WalletModel.swift b/TalerWallet1/Model/WalletModel.swift
@@ -406,6 +406,10 @@ extension WalletModel {
}
}
// MARK: -
+struct InitResponse: Decodable {
+ var versionInfo: VersionInfo
+ var databaseBackend: String?
+}
/// A request to initialize Wallet-core
fileprivate struct InitRequest: WalletBackendFormattedRequest {
var persistentStoragePath: String
@@ -432,19 +436,17 @@ fileprivate struct InitRequest: WalletBackendFormattedRequest {
var config: Config
var useNativeLogging: Bool
}
- struct Response: Decodable {
- var versionInfo: VersionInfo
- }
+ typealias Response = InitResponse
}
extension WalletModel {
/// initalize Wallet-Core. Might do networking
- nonisolated func initWalletCore(setTesting: Bool, migrateNativeDb: Bool, viewHandles: Bool = false) async throws -> VersionInfo {
+ nonisolated func initWalletCore(setTesting: Bool, migrateNativeDb: Bool, viewHandles: Bool = false) async throws -> InitResponse {
let dbPath = try dbPath()
// logger.debug("dbPath: \(dbPath)")
let request = InitRequest(persistentStoragePath: dbPath, setTesting: setTesting, migrateNativeDb: migrateNativeDb)
let response = try await sendRequest(request, viewHandles: viewHandles) // no Delay
- return response.versionInfo
+ return response
}
private func dbUrl(_ folder: URL) -> URL {