Enable exchange for haven wallets.

This commit is contained in:
M 2022-09-01 19:44:10 +01:00
parent 0931696fa1
commit e85d6bfb25
5 changed files with 14 additions and 23 deletions

View file

@ -19,7 +19,9 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
: _lastUsedRateId = '',
super(
pairList: CryptoCurrency.all
.where((i) => i != CryptoCurrency.xhv)
.map((i) => CryptoCurrency.all
.where((i) => i != CryptoCurrency.xhv)
.map((k) => ExchangePair(from: i, to: k, reverse: true))
.where((c) => c != null))
.expand((i) => i)

View file

@ -19,7 +19,9 @@ class SideShiftExchangeProvider extends ExchangeProvider {
SideShiftExchangeProvider()
: super(
pairList: CryptoCurrency.all
.where((i) => i != CryptoCurrency.xhv)
.map((i) => CryptoCurrency.all
.where((i) => i != CryptoCurrency.xhv)
.map((k) => ExchangePair(from: i, to: k, reverse: true))
.where((c) => c != null))
.expand((i) => i)

View file

@ -314,22 +314,6 @@ class DashboardPage extends BasePage {
}
Future<void> _onClickExchangeButton(BuildContext context) async {
final walletType = walletViewModel.type;
switch (walletType) {
case WalletType.haven:
await showPopUp<void>(
context: context,
builder: (BuildContext context) {
return AlertWithOneAction(
alertTitle: 'Exchange',
alertContent: 'Exchange for this asset is not supported yet.',
buttonText: S.of(context).ok,
buttonAction: () => Navigator.of(context).pop());
});
break;
default:
await Navigator.of(context).pushNamed(Routes.exchange);
}
await Navigator.of(context).pushNamed(Routes.exchange);
}
}

View file

@ -337,7 +337,7 @@ abstract class DashboardViewModelBase with Store {
}
void updateActions() {
isEnabledExchangeAction = wallet.type != WalletType.haven;
isEnabledExchangeAction = true;
hasExchangeAction = !isHaven;
isEnabledBuyAction = wallet.type != WalletType.haven
&& wallet.type != WalletType.monero;

View file

@ -40,10 +40,10 @@ class ExchangeViewModel = ExchangeViewModelBase with _$ExchangeViewModel;
abstract class ExchangeViewModelBase with Store {
ExchangeViewModelBase(this.wallet, this.trades, this._exchangeTemplateStore,
this.tradesStore, this._settingsStore, this.sharedPreferences) {
const excludeDepositCurrencies = [CryptoCurrency.xhv];
const excludeReceiveCurrencies = [CryptoCurrency.xlm, CryptoCurrency.xrp, CryptoCurrency.bnb, CryptoCurrency.xhv];
const excludeDepositCurrencies = <CryptoCurrency>[];
const excludeReceiveCurrencies = [CryptoCurrency.xlm, CryptoCurrency.xrp, CryptoCurrency.bnb];
providerList = [ChangeNowExchangeProvider(), SideShiftExchangeProvider(), SimpleSwapExchangeProvider()];
_initialPairBasedOnWallet();
currentTradeAvailableProviders = SplayTreeMap<double, ExchangeProvider>();
final Map<String, dynamic> exchangeProvidersSelection = json
@ -51,13 +51,12 @@ abstract class ExchangeViewModelBase with Store {
/// if the provider is not in the user settings (user's first time or newly added provider)
/// then use its default value decided by us
selectedProviders = ObservableList.of(providerList.where(
selectedProviders = ObservableList.of(providersForCurrentPair().where(
(element) => exchangeProvidersSelection[element.title] == null
? element.isEnabled
: (exchangeProvidersSelection[element.title] as bool))
.toList());
_initialPairBasedOnWallet();
isDepositAddressEnabled = !(depositCurrency == wallet.currency);
isReceiveAddressEnabled = !(receiveCurrency == wallet.currency);
depositAmount = '';
@ -532,6 +531,10 @@ abstract class ExchangeViewModelBase with Store {
depositCurrency = CryptoCurrency.ltc;
receiveCurrency = CryptoCurrency.xmr;
break;
case WalletType.haven:
depositCurrency = CryptoCurrency.xhv;
receiveCurrency = CryptoCurrency.btc;
break;
default:
break;
}