taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit fcd76d6d71fd261dea51a1487250ba3049d903ca
parent 5eb9e9225c85dba6222f24224bce6ffa85eb85ce
Author: Marc Stibane <marc@taler.net>
Date:   Mon, 18 Nov 2024 15:54:35 +0100

addGlobalCurrency

Diffstat:
MTalerWallet1/Model/Model+Exchange.swift | 43+++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+), 0 deletions(-)

diff --git a/TalerWallet1/Model/Model+Exchange.swift b/TalerWallet1/Model/Model+Exchange.swift @@ -170,6 +170,37 @@ fileprivate struct GetCurrencySpecification: WalletBackendFormattedRequest { let currencySpecification: CurrencySpecification } } +/// A request to make a currency "global" +fileprivate struct AddGlobalCurrency: WalletBackendFormattedRequest { + func operation() -> String { "addGlobalCurrencyExchange" } + func args() -> Args { Args(currency: currency, + exchangeBaseUrl: baseUrl, + exchangeMasterPub: masterPub) } + var currency: String + var baseUrl: String + var masterPub: String + struct Args: Encodable { + var currency: String + var exchangeBaseUrl: String + var exchangeMasterPub: String + } + struct Response: Decodable {} // no result - getting no error back means success +} +fileprivate struct RmvGlobalCurrency: WalletBackendFormattedRequest { + func operation() -> String { "removeGlobalCurrencyExchange" } + func args() -> Args { Args(currency: currency, + exchangeBaseUrl: baseUrl, + exchangeMasterPub: masterPub) } + var currency: String + var baseUrl: String + var masterPub: String + struct Args: Encodable { + var currency: String + var exchangeBaseUrl: String + var exchangeMasterPub: String + } + struct Response: Decodable {} // no result - getting no error back means success +} // MARK: - extension WalletModel { /// ask wallet-core for its list of known exchanges @@ -229,4 +260,16 @@ extension WalletModel { formatter: CurrencyFormatter.formatter(currency: scope.currency, specs: response.currencySpecification)) } + + nonisolated func addGlobalCurrencyExchange(currency: String, baseUrl: String, masterPub: String, viewHandles: Bool = false) + async throws { + let request = AddGlobalCurrency(currency: currency, baseUrl: baseUrl, masterPub: masterPub) + _ = try await sendRequest(request, viewHandles: viewHandles) + } + + nonisolated func rmvGlobalCurrencyExchange(currency: String, baseUrl: String, masterPub: String, viewHandles: Bool = false) + async throws { + let request = RmvGlobalCurrency(currency: currency, baseUrl: baseUrl, masterPub: masterPub) + _ = try await sendRequest(request, viewHandles: viewHandles) + } }