diff --git a/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawUriScan.swift b/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawUriScan.swift index 559dad2a..fa3ebc7a 100755 --- a/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawUriScan.swift +++ b/TalerWallet1/Views/Sheets/WithdrawBankIntegrated/WithdrawUriScan.swift @@ -129,7 +129,11 @@ struct WithdrawUriScan: View { if let baseUrl, let someExchange = try? await controller.checkCurrencyInfo(for: baseUrl) { symLog.log("Info(for: \(baseUrl.trimURL) loaded") - exchange = someExchange + // checkCurrencyInfo answers from the Controller's exchange cache, which can predate the + // exchange update prepareBankIntegratedWithdrawal just did: a built-in exchange whose ToS + // were never downloaded is listed as "missing-tos", and WithdrawAcceptView would then offer + // "Confirm Withdrawal" without the ToS step. Use wallet-core's current entry instead. + exchange = (try? await model.getExchangeByUrl(url: baseUrl, viewHandles: true)) ?? someExchange } else { exchangeError = true }