From 753d164d6e4be165d09e0a6f07ad515f3a5239a6 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Thu, 1 Apr 2021 21:08:11 +0300 Subject: [PATCH 1/2] CAKE-296 | removed xmr to xrp and xmr to xlm exchange pairs from ChangeNow pair list; disabled exchange button when pair is not exists --- .../changenow/changenow_exchange_provider.dart | 15 +++++++++++++-- lib/src/screens/exchange/exchange_page.dart | 1 + .../exchange/exchange_view_model.dart | 17 +++++++++++------ 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/lib/exchange/changenow/changenow_exchange_provider.dart b/lib/exchange/changenow/changenow_exchange_provider.dart index 69674131..b7abe4cc 100644 --- a/lib/exchange/changenow/changenow_exchange_provider.dart +++ b/lib/exchange/changenow/changenow_exchange_provider.dart @@ -17,12 +17,23 @@ import 'package:cake_wallet/exchange/trade_not_created_exeption.dart'; class ChangeNowExchangeProvider extends ExchangeProvider { ChangeNowExchangeProvider() : super( - pairList: CryptoCurrency.all + /*pairList: CryptoCurrency.all .map((i) => CryptoCurrency.all .map((k) => ExchangePair(from: i, to: k, reverse: true)) .where((c) => c != null)) .expand((i) => i) - .toList()); + .toList());*/ + pairList: CryptoCurrency.all + .map((i) => CryptoCurrency.all + .map((k) { + if ((i != CryptoCurrency.xmr)|| + ((k != CryptoCurrency.xrp)&&(k != CryptoCurrency.xlm))) { + return ExchangePair(from: i, to: k, reverse: true); + } + }) + .where((c) => c != null)) + .expand((i) => i) + .toList()); static const apiUri = 'https://changenow.io/api/v1'; static const apiKey = secrets.changeNowApiKey; diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index cfd11581..ab959c77 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -464,6 +464,7 @@ class ExchangePage extends BasePage { }, color: Theme.of(context).accentTextTheme.body2.color, textColor: Colors.white, + isDisabled: exchangeViewModel.isDisabledExchangeButton, isLoading: exchangeViewModel.tradeState is TradeIsCreating)), ]), diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index e708e93e..f02a5ca4 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -60,6 +60,7 @@ abstract class ExchangeViewModelBase with Store { _defineIsReceiveAmountEditable(); isFixedRateMode = false; isReceiveAmountEntered = false; + isDisabledExchangeButton = false; loadLimits(); } @@ -113,6 +114,9 @@ abstract class ExchangeViewModelBase with Store { @observable bool isFixedRateMode; + @observable + bool isDisabledExchangeButton; + @computed SyncStatus get status => wallet.syncStatus; @@ -369,19 +373,20 @@ 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) { + isDisabledExchangeButton = false; changeProvider(provider: provider); } + } else { + isDisabledExchangeButton = true; + depositAmount = ''; + receiveAmount = ''; + limitsState = LimitsLoadedFailure(error: 'Pair is not exists'); } - - _defineIsReceiveAmountEditable(); - depositAmount = ''; - receiveAmount = ''; - loadLimits(); } ExchangeProvider _providerForPair({CryptoCurrency from, CryptoCurrency to}) { From 68c12cbb79efa2573574e1ec49b7a1e64d3aafbe Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Tue, 6 Apr 2021 20:11:26 +0300 Subject: [PATCH 2/2] CAKE-296 | added receiveCurrencies (list of crypto currencies without xlm and xrp) to exchange_view_model.dart; applied receiveCurrencies to receive card in the exchange_page.dart --- .../changenow/changenow_exchange_provider.dart | 15 ++------------- lib/src/screens/exchange/exchange_page.dart | 4 ++-- lib/view_model/exchange/exchange_view_model.dart | 12 +++++------- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/lib/exchange/changenow/changenow_exchange_provider.dart b/lib/exchange/changenow/changenow_exchange_provider.dart index b7abe4cc..69674131 100644 --- a/lib/exchange/changenow/changenow_exchange_provider.dart +++ b/lib/exchange/changenow/changenow_exchange_provider.dart @@ -17,23 +17,12 @@ import 'package:cake_wallet/exchange/trade_not_created_exeption.dart'; class ChangeNowExchangeProvider extends ExchangeProvider { ChangeNowExchangeProvider() : super( - /*pairList: CryptoCurrency.all + pairList: CryptoCurrency.all .map((i) => CryptoCurrency.all .map((k) => ExchangePair(from: i, to: k, reverse: true)) .where((c) => c != null)) .expand((i) => i) - .toList());*/ - pairList: CryptoCurrency.all - .map((i) => CryptoCurrency.all - .map((k) { - if ((i != CryptoCurrency.xmr)|| - ((k != CryptoCurrency.xrp)&&(k != CryptoCurrency.xlm))) { - return ExchangePair(from: i, to: k, reverse: true); - } - }) - .where((c) => c != null)) - .expand((i) => i) - .toList()); + .toList()); static const apiUri = 'https://changenow.io/api/v1'; static const apiKey = secrets.changeNowApiKey; diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index ab959c77..82d7dd80 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( @@ -464,7 +465,6 @@ class ExchangePage extends BasePage { }, color: Theme.of(context).accentTextTheme.body2.color, textColor: Colors.white, - isDisabled: exchangeViewModel.isDisabledExchangeButton, isLoading: exchangeViewModel.tradeState is TradeIsCreating)), ]), diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index f02a5ca4..fc860e01 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -57,10 +57,12 @@ abstract class ExchangeViewModelBase with Store { _onPairChange(); } }); + receiveCurrencies = CryptoCurrency.all.where((cryptoCurrency) => + (cryptoCurrency != CryptoCurrency.xlm)&& + (cryptoCurrency != CryptoCurrency.xrp)).toList(); _defineIsReceiveAmountEditable(); isFixedRateMode = false; isReceiveAmountEntered = false; - isDisabledExchangeButton = false; loadLimits(); } @@ -114,9 +116,6 @@ abstract class ExchangeViewModelBase with Store { @observable bool isFixedRateMode; - @observable - bool isDisabledExchangeButton; - @computed SyncStatus get status => wallet.syncStatus; @@ -127,6 +126,8 @@ abstract class ExchangeViewModelBase with Store { bool get hasAllAmount => wallet.type == WalletType.bitcoin && depositCurrency == wallet.currency; + List receiveCurrencies; + Limits limits; NumberFormat _cryptoNumberFormat; @@ -378,14 +379,11 @@ abstract class ExchangeViewModelBase with Store { _providerForPair(from: depositCurrency, to: receiveCurrency); if (provider != null) { - isDisabledExchangeButton = false; changeProvider(provider: provider); } } else { - isDisabledExchangeButton = true; depositAmount = ''; receiveAmount = ''; - limitsState = LimitsLoadedFailure(error: 'Pair is not exists'); } }