From 56cd6c26ed8a811fdc2b39b0f1685385e50ffff6 Mon Sep 17 00:00:00 2001 From: M Date: Tue, 8 Feb 2022 10:57:02 +0200 Subject: [PATCH] Fixes for network based pairs for changenow. Fixes for address validation for ustd address. --- lib/core/address_validator.dart | 2 +- .../changenow_exchange_provider.dart | 42 ++++++++++++++++--- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 65c89d589..0401c2921 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -78,7 +78,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.trx: return [34]; case CryptoCurrency.usdt: - return [42]; + return [34]; case CryptoCurrency.usdterc20: return [42]; case CryptoCurrency.xlm: diff --git a/lib/exchange/changenow/changenow_exchange_provider.dart b/lib/exchange/changenow/changenow_exchange_provider.dart index 53523b6a7..ba5c18bdc 100644 --- a/lib/exchange/changenow/changenow_exchange_provider.dart +++ b/lib/exchange/changenow/changenow_exchange_provider.dart @@ -60,6 +60,8 @@ class ChangeNowExchangeProvider extends ExchangeProvider { final params = { 'fromCurrency': normalizedFrom, 'toCurrency': normalizedTo, + 'fromNetwork': networkFor(from), + 'toNetwork': networkFor(to), 'flow': flow}; final uri = Uri.https(apiAuthority, rangePath, params); final response = await get(uri, headers: headers); @@ -90,7 +92,9 @@ class ChangeNowExchangeProvider extends ExchangeProvider { final flow = getFlow(isFixedRateMode); final body = { 'fromCurrency': normalizeCryptoCurrency(_request.from), - 'toCurrency': normalizeCryptoCurrency(_request.to), + 'toCurrency': normalizeCryptoCurrency(_request.to), + 'fromNetwork': networkFor(_request.from), + 'toNetwork': networkFor(_request.to), 'fromAmount': _request.fromAmount, 'toAmount': _request.toAmount, 'address': _request.address, @@ -205,7 +209,9 @@ class ChangeNowExchangeProvider extends ExchangeProvider { final flow = getFlow(isFixedRateMode); final params = { 'fromCurrency': isReverse ? normalizeCryptoCurrency(to) : normalizeCryptoCurrency(from), - 'toCurrency': isReverse ? normalizeCryptoCurrency(from) : normalizeCryptoCurrency(to) , + 'toCurrency': isReverse ? normalizeCryptoCurrency(from) : normalizeCryptoCurrency(to), + 'fromNetwork': isReverse ? networkFor(to) : networkFor(from), + 'toNetwork': isReverse ? networkFor(from) : networkFor(to), 'type': type, 'flow': flow}; @@ -232,11 +238,35 @@ class ChangeNowExchangeProvider extends ExchangeProvider { return 0.0; } } + + String networkFor(CryptoCurrency currency) { + const bnbTitle = 'bnb'; + + switch (currency) { + case CryptoCurrency.usdt: + return CryptoCurrency.btc.title.toLowerCase(); + case CryptoCurrency.usdterc20: + return CryptoCurrency.eth.title.toLowerCase(); + case CryptoCurrency.bnb: + return bnbTitle; + case CryptoCurrency.dai: + return CryptoCurrency.eth.title.toLowerCase(); + default: + return currency.title.toLowerCase(); + } + } static String normalizeCryptoCurrency(CryptoCurrency currency) { - const bnbTitle = 'bnbmainnet'; - final currencyTitle = currency == CryptoCurrency.bnb - ? bnbTitle : currency.title.toLowerCase(); - return currencyTitle; + const bnbTitle = 'bnb'; + + switch(currency) { + case CryptoCurrency.bnb: + return bnbTitle; + case CryptoCurrency.usdterc20: + return CryptoCurrency.usdt.title.toLowerCase(); + default: + return currency.title.toLowerCase(); + } + } }