From f00c935e3f31e2df38909ab0401f0a3843a0e74e Mon Sep 17 00:00:00 2001 From: Elizaveta Semenova Date: Mon, 8 Jan 2024 18:55:23 +0300 Subject: [PATCH] [ETH-674] Get exchange rates from moonpay service instead of keyapp service --- p2p_wallet/Scenes/Main/Buy/BuyViewModel.swift | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/p2p_wallet/Scenes/Main/Buy/BuyViewModel.swift b/p2p_wallet/Scenes/Main/Buy/BuyViewModel.swift index 30c7b10d33..a5b1e7599e 100644 --- a/p2p_wallet/Scenes/Main/Buy/BuyViewModel.swift +++ b/p2p_wallet/Scenes/Main/Buy/BuyViewModel.swift @@ -182,15 +182,14 @@ final class BuyViewModel: ObservableObject { Task { for fiat in BuyViewModel.fiats { - self.tokenPrices[fiat] = try Dictionary( - await pricesService.getPrices( - tokens: BuyViewModel.tokens, - fiat: fiat.rawValue - ) - .map { token, price in - (token.address, price.doubleValue) - } - ) { lhs, _ in lhs } + guard let fiatCurrency = fiat.buyFiatCurrency() else { continue } + var tokenPrice: [String: Double] = [:] + for token in BuyViewModel.tokens { + guard let cryptoCurrency = token.buyCryptoCurrency() else { continue } + let rate = try await exchangeService.getExchangeRate(from: fiatCurrency, to: cryptoCurrency) + tokenPrice[token.mintAddress] = rate.amount + } + self.tokenPrices[fiat] = tokenPrice } let banks = try await exchangeService.isBankTransferEnabled()