diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index cfd115811..82d7dd80e 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -248,7 +248,8 @@ class ExchangePage extends BasePage { exchangeViewModel .isReceiveAddressEnabled, isAmountEstimated: true, - currencies: CryptoCurrency.all, + currencies: + exchangeViewModel.receiveCurrencies, onCurrencySelected: (currency) => exchangeViewModel .changeReceiveCurrency( diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index e708e93e9..fc860e011 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -57,6 +57,9 @@ abstract class ExchangeViewModelBase with Store { _onPairChange(); } }); + receiveCurrencies = CryptoCurrency.all.where((cryptoCurrency) => + (cryptoCurrency != CryptoCurrency.xlm)&& + (cryptoCurrency != CryptoCurrency.xrp)).toList(); _defineIsReceiveAmountEditable(); isFixedRateMode = false; isReceiveAmountEntered = false; @@ -123,6 +126,8 @@ abstract class ExchangeViewModelBase with Store { bool get hasAllAmount => wallet.type == WalletType.bitcoin && depositCurrency == wallet.currency; + List receiveCurrencies; + Limits limits; NumberFormat _cryptoNumberFormat; @@ -369,19 +374,17 @@ abstract class ExchangeViewModelBase with Store { pair.from == depositCurrency && pair.to == receiveCurrency) .isNotEmpty; - if (!isPairExist) { + if (isPairExist) { final provider = _providerForPair(from: depositCurrency, to: receiveCurrency); if (provider != null) { changeProvider(provider: provider); } + } else { + depositAmount = ''; + receiveAmount = ''; } - - _defineIsReceiveAmountEditable(); - depositAmount = ''; - receiveAmount = ''; - loadLimits(); } ExchangeProvider _providerForPair({CryptoCurrency from, CryptoCurrency to}) {