mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-11-17 01:37:40 +00:00
CAKE-28 | created information page, exchange trade view model, exchange trade item; added trade property to trades store; changed filtered method (trade filter store); added tradesStore property to exchange view model; applied information page to exchange trade page
This commit is contained in:
parent
ecf7a5ba78
commit
76cde0530d
28 changed files with 344 additions and 111 deletions
22
lib/di.dart
22
lib/di.dart
|
@ -4,6 +4,8 @@ import 'package:cake_wallet/src/domain/common/node.dart';
|
||||||
import 'package:cake_wallet/src/domain/exchange/trade.dart';
|
import 'package:cake_wallet/src/domain/exchange/trade.dart';
|
||||||
import 'package:cake_wallet/src/screens/contact/contact_list_page.dart';
|
import 'package:cake_wallet/src/screens/contact/contact_list_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/contact/contact_page.dart';
|
import 'package:cake_wallet/src/screens/contact/contact_page.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart';
|
import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/nodes/nodes_list_page.dart';
|
import 'package:cake_wallet/src/screens/nodes/nodes_list_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart';
|
import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart';
|
||||||
|
@ -32,6 +34,7 @@ import 'package:cake_wallet/store/wallet_list_store.dart';
|
||||||
import 'package:cake_wallet/theme_changer.dart';
|
import 'package:cake_wallet/theme_changer.dart';
|
||||||
import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart';
|
import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart';
|
||||||
import 'package:cake_wallet/view_model/contact_list/contact_view_model.dart';
|
import 'package:cake_wallet/view_model/contact_list/contact_view_model.dart';
|
||||||
|
import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart';
|
||||||
import 'package:cake_wallet/view_model/node_list/node_list_view_model.dart';
|
import 'package:cake_wallet/view_model/node_list/node_list_view_model.dart';
|
||||||
import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart';
|
import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart';
|
||||||
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart';
|
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart';
|
||||||
|
@ -118,8 +121,7 @@ Future setup(
|
||||||
getIt.registerSingleton<TradesStore>(TradesStore(
|
getIt.registerSingleton<TradesStore>(TradesStore(
|
||||||
tradesSource: tradesSource,
|
tradesSource: tradesSource,
|
||||||
settingsStore: getIt.get<SettingsStore>()));
|
settingsStore: getIt.get<SettingsStore>()));
|
||||||
getIt.registerSingleton<TradeFilterStore>(
|
getIt.registerSingleton<TradeFilterStore>(TradeFilterStore());
|
||||||
TradeFilterStore(wallet: getIt.get<AppStore>().wallet));
|
|
||||||
getIt.registerSingleton<TransactionFilterStore>(TransactionFilterStore());
|
getIt.registerSingleton<TransactionFilterStore>(TransactionFilterStore());
|
||||||
getIt.registerSingleton<FiatConvertationStore>(FiatConvertationStore());
|
getIt.registerSingleton<FiatConvertationStore>(FiatConvertationStore());
|
||||||
getIt.registerSingleton<SendTemplateStore>(
|
getIt.registerSingleton<SendTemplateStore>(
|
||||||
|
@ -311,12 +313,26 @@ Future setup(
|
||||||
ExchangeViewModel(
|
ExchangeViewModel(
|
||||||
wallet: getIt.get<AppStore>().wallet,
|
wallet: getIt.get<AppStore>().wallet,
|
||||||
exchangeTemplateStore: getIt.get<ExchangeTemplateStore>(),
|
exchangeTemplateStore: getIt.get<ExchangeTemplateStore>(),
|
||||||
trades: tradesSource
|
trades: tradesSource,
|
||||||
|
tradesStore: getIt.get<TradesStore>()
|
||||||
|
));
|
||||||
|
|
||||||
|
getIt.registerFactory(() =>
|
||||||
|
ExchangeTradeViewModel(
|
||||||
|
wallet: getIt.get<AppStore>().wallet,
|
||||||
|
trades: tradesSource,
|
||||||
|
tradesStore: getIt.get<TradesStore>()
|
||||||
));
|
));
|
||||||
|
|
||||||
getIt.registerFactory(() =>
|
getIt.registerFactory(() =>
|
||||||
ExchangePage(getIt.get<ExchangeViewModel>()));
|
ExchangePage(getIt.get<ExchangeViewModel>()));
|
||||||
|
|
||||||
|
getIt.registerFactory(() =>
|
||||||
|
ExchangeConfirmPage(tradesStore: getIt.get<TradesStore>()));
|
||||||
|
|
||||||
|
getIt.registerFactory(() =>
|
||||||
|
ExchangeTradePage(exchangeTradeViewModel: getIt.get<ExchangeTradeViewModel>()));
|
||||||
|
|
||||||
getIt.registerFactory(() =>
|
getIt.registerFactory(() =>
|
||||||
ExchangeTemplatePage(getIt.get<ExchangeViewModel>()));
|
ExchangeTemplatePage(getIt.get<ExchangeViewModel>()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -312,8 +312,8 @@ class S implements WidgetsLocalizations {
|
||||||
String error_text_limits_loading_failed(String provider) => "Trade for ${provider} is not created. Limits loading failed";
|
String error_text_limits_loading_failed(String provider) => "Trade for ${provider} is not created. Limits loading failed";
|
||||||
String error_text_maximum_limit(String provider, String max, String currency) => "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}";
|
String error_text_maximum_limit(String provider, String max, String currency) => "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}";
|
||||||
String error_text_minimal_limit(String provider, String min, String currency) => "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}";
|
String error_text_minimal_limit(String provider, String min, String currency) => "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}";
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.";
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Please send ${fetchingLabel} ${from} to the address shown above.\n\n";
|
String exchange_result_description(String fetchingLabel, String from) => "Please send ${fetchingLabel} ${from} to the address shown above.";
|
||||||
String failed_authentication(String state_error) => "Failed authentication. ${state_error}";
|
String failed_authentication(String state_error) => "Failed authentication. ${state_error}";
|
||||||
String max_value(String value, String currency) => "Max: ${value} ${currency}";
|
String max_value(String value, String currency) => "Max: ${value} ${currency}";
|
||||||
String min_value(String value, String currency) => "Min: ${value} ${currency}";
|
String min_value(String value, String currency) => "Min: ${value} ${currency}";
|
||||||
|
@ -948,11 +948,11 @@ class $de extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} Verbleibende Blöcke";
|
String Blocks_remaining(String status) => "${status} Verbleibende Blöcke";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen";
|
String error_text_limits_loading_failed(String provider) => "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.'";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "Transaktion festschreiben\nMenge: ${amount}\nGebühr: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "Transaktion festschreiben\nMenge: ${amount}\nGebühr: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -1580,11 +1580,11 @@ class $hi extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} शेष रहते हैं";
|
String Blocks_remaining(String status) => "${status} शेष रहते हैं";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "व्यापार ${provider} के लिए नहीं बनाया गया है। लोडिंग की सीमाएं विफल रहीं";
|
String error_text_limits_loading_failed(String provider) => "व्यापार ${provider} के लिए नहीं बनाया गया है। लोडिंग की सीमाएं विफल रहीं";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -2212,11 +2212,11 @@ class $ru extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} Осталось блоков";
|
String Blocks_remaining(String status) => "${status} Осталось блоков";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "Сделка для ${provider} не создана. Ошибка загрузки лимитов";
|
String error_text_limits_loading_failed(String provider) => "Сделка для ${provider} не создана. Ошибка загрузки лимитов";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -2844,11 +2844,11 @@ class $ko extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} 남은 블록";
|
String Blocks_remaining(String status) => "${status} 남은 블록";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "거래 ${provider} 가 생성되지 않습니다. 로딩 실패";
|
String error_text_limits_loading_failed(String provider) => "거래 ${provider} 가 생성되지 않습니다. 로딩 실패";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "커밋 거래\n양: ${amount}\n보수: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "커밋 거래\n양: ${amount}\n보수: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -3476,11 +3476,11 @@ class $pt extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} blocos restantes";
|
String Blocks_remaining(String status) => "${status} blocos restantes";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "A troca por ${provider} não é criada. Falha no carregamento dos limites";
|
String error_text_limits_loading_failed(String provider) => "A troca por ${provider} não é criada. Falha no carregamento dos limites";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -4108,11 +4108,11 @@ class $uk extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} Залишилось блоків";
|
String Blocks_remaining(String status) => "${status} Залишилось блоків";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "Операція для ${provider} не створена. Помилка завантаження лімітів";
|
String error_text_limits_loading_failed(String provider) => "Операція для ${provider} не створена. Помилка завантаження лімітів";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -4740,11 +4740,11 @@ class $ja extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} 残りのブロック";
|
String Blocks_remaining(String status) => "${status} 残りのブロック";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "${provider} の取引は作成されません。 制限の読み込みに失敗しました";
|
String error_text_limits_loading_failed(String provider) => "${provider} の取引は作成されません。 制限の読み込みに失敗しました";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "送信してください ${fetchingLabel} ${from} 上記のアドレスへ.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "送信してください ${fetchingLabel} ${from} 上記のアドレスへ.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "トランザクションをコミット\n量: ${amount}\n費用: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "トランザクションをコミット\n量: ${amount}\n費用: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -5376,11 +5376,11 @@ class $pl extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} Bloki pozostałe";
|
String Blocks_remaining(String status) => "${status} Bloki pozostałe";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się";
|
String error_text_limits_loading_failed(String provider) => "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -6008,11 +6008,11 @@ class $es extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} Bloques restantes";
|
String Blocks_remaining(String status) => "${status} Bloques restantes";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba. O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba. O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "El comercio por ${provider} no se crea. Límites de carga fallidos";
|
String error_text_limits_loading_failed(String provider) => "El comercio por ${provider} no se crea. Límites de carga fallidos";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -6640,11 +6640,11 @@ class $nl extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} Resterende blokken";
|
String Blocks_remaining(String status) => "${status} Resterende blokken";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt";
|
String error_text_limits_loading_failed(String provider) => "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
@ -7272,11 +7272,11 @@ class $zh extends S {
|
||||||
@override
|
@override
|
||||||
String Blocks_remaining(String status) => "${status} 剩余的块";
|
String Blocks_remaining(String status) => "${status} 剩余的块";
|
||||||
@override
|
@override
|
||||||
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额\n\n";
|
String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额";
|
||||||
@override
|
@override
|
||||||
String error_text_limits_loading_failed(String provider) => "未創建 ${provider} 交易。 限制加載失敗";
|
String error_text_limits_loading_failed(String provider) => "未創建 ${provider} 交易。 限制加載失敗";
|
||||||
@override
|
@override
|
||||||
String exchange_result_description(String fetchingLabel, String from) => "请发送 ${fetchingLabel} ${from} 到上面显示的地址.\n\n'";
|
String exchange_result_description(String fetchingLabel, String from) => "请发送 ${fetchingLabel} ${from} 到上面显示的地址.";
|
||||||
@override
|
@override
|
||||||
String commit_transaction_amount_fee(String amount, String fee) => "提交交易\n量: ${amount}\nFee: ${fee}";
|
String commit_transaction_amount_fee(String amount, String fee) => "提交交易\n量: ${amount}\nFee: ${fee}";
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -11,7 +11,7 @@ class Palette {
|
||||||
static const Color lightBlueGrey = Color.fromRGBO(118, 131, 169, 1.0);
|
static const Color lightBlueGrey = Color.fromRGBO(118, 131, 169, 1.0);
|
||||||
static const Color periwinkle = Color.fromRGBO(197, 208, 230, 1.0);
|
static const Color periwinkle = Color.fromRGBO(197, 208, 230, 1.0);
|
||||||
static const Color blue = Color.fromRGBO(88, 143, 252, 1.0);
|
static const Color blue = Color.fromRGBO(88, 143, 252, 1.0);
|
||||||
static const Color darkLavender = Color.fromRGBO(225, 238, 250, 1.0);
|
static const Color darkLavender = Color.fromRGBO(229, 238, 250, 1.0);
|
||||||
static const Color nightBlue = Color.fromRGBO(46, 57, 96, 1.0);
|
static const Color nightBlue = Color.fromRGBO(46, 57, 96, 1.0);
|
||||||
|
|
||||||
// NEW DESIGN
|
// NEW DESIGN
|
||||||
|
|
|
@ -358,7 +358,9 @@ class Router {
|
||||||
|
|
||||||
case Routes.exchangeTrade:
|
case Routes.exchangeTrade:
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
builder: (_) => MultiProvider(
|
builder: (_) => getIt.get<ExchangeTradePage>());
|
||||||
|
|
||||||
|
/*MultiProvider(
|
||||||
providers: [
|
providers: [
|
||||||
ProxyProvider<SettingsStore, ExchangeTradeStore>(
|
ProxyProvider<SettingsStore, ExchangeTradeStore>(
|
||||||
update: (_, settingsStore, __) => ExchangeTradeStore(
|
update: (_, settingsStore, __) => ExchangeTradeStore(
|
||||||
|
@ -374,12 +376,13 @@ class Router {
|
||||||
priceStore: priceStore)),
|
priceStore: priceStore)),
|
||||||
],
|
],
|
||||||
child: ExchangeTradePage(),
|
child: ExchangeTradePage(),
|
||||||
));
|
));*/
|
||||||
|
|
||||||
case Routes.exchangeConfirm:
|
case Routes.exchangeConfirm:
|
||||||
return MaterialPageRoute<void>(
|
return MaterialPageRoute<void>(
|
||||||
builder: (_) =>
|
builder: (_) => getIt.get<ExchangeConfirmPage>());
|
||||||
ExchangeConfirmPage(trade: settings.arguments as Trade));
|
|
||||||
|
//ExchangeConfirmPage(trade: settings.arguments as Trade));
|
||||||
|
|
||||||
case Routes.tradeDetails:
|
case Routes.tradeDetails:
|
||||||
return MaterialPageRoute<void>(builder: (context) {
|
return MaterialPageRoute<void>(builder: (context) {
|
||||||
|
|
|
@ -486,7 +486,7 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
|
||||||
}
|
}
|
||||||
if (state is TradeIsCreatedSuccessfully) {
|
if (state is TradeIsCreatedSuccessfully) {
|
||||||
Navigator.of(context)
|
Navigator.of(context)
|
||||||
.pushNamed(Routes.exchangeConfirm, arguments: state.trade);
|
.pushNamed(Routes.exchangeConfirm);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:cake_wallet/store/dashboard/trades_store.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
@ -9,33 +10,14 @@ import 'package:cake_wallet/src/domain/exchange/trade.dart';
|
||||||
import 'package:cake_wallet/palette.dart';
|
import 'package:cake_wallet/palette.dart';
|
||||||
|
|
||||||
class ExchangeConfirmPage extends BasePage {
|
class ExchangeConfirmPage extends BasePage {
|
||||||
ExchangeConfirmPage({@required this.trade});
|
ExchangeConfirmPage({@required this.tradesStore}) : trade = tradesStore.trade;
|
||||||
|
|
||||||
|
final TradesStore tradesStore;
|
||||||
final Trade trade;
|
final Trade trade;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get title => S.current.copy_id;
|
String get title => S.current.copy_id;
|
||||||
|
|
||||||
@override
|
|
||||||
Widget trailing(BuildContext context) {
|
|
||||||
final questionImage = Image.asset('assets/images/question_mark.png',
|
|
||||||
color: Theme.of(context).primaryTextTheme.title.color);
|
|
||||||
|
|
||||||
return SizedBox(
|
|
||||||
height: 20.0,
|
|
||||||
width: 20.0,
|
|
||||||
child: ButtonTheme(
|
|
||||||
minWidth: double.minPositive,
|
|
||||||
child: FlatButton(
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
splashColor: Colors.transparent,
|
|
||||||
padding: EdgeInsets.all(0),
|
|
||||||
onPressed: () {},
|
|
||||||
child: questionImage),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget body(BuildContext context) {
|
Widget body(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
|
@ -131,7 +113,7 @@ class ExchangeConfirmPage extends BasePage {
|
||||||
),
|
),
|
||||||
PrimaryButton(
|
PrimaryButton(
|
||||||
onPressed: () => Navigator.of(context)
|
onPressed: () => Navigator.of(context)
|
||||||
.pushReplacementNamed(Routes.exchangeTrade, arguments: trade),
|
.pushReplacementNamed(Routes.exchangeTrade),
|
||||||
text: S.of(context).saved_the_trade_id,
|
text: S.of(context).saved_the_trade_id,
|
||||||
color: Palette.blueCraiola,
|
color: Palette.blueCraiola,
|
||||||
textColor: Colors.white)
|
textColor: Colors.white)
|
||||||
|
|
13
lib/src/screens/exchange_trade/exchange_trade_item.dart
Normal file
13
lib/src/screens/exchange_trade/exchange_trade_item.dart
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
||||||
|
class ExchangeTradeItem {
|
||||||
|
ExchangeTradeItem({
|
||||||
|
@required this.title,
|
||||||
|
@required this.data,
|
||||||
|
@required this.isCopied,
|
||||||
|
});
|
||||||
|
|
||||||
|
final String title;
|
||||||
|
final String data;
|
||||||
|
final bool isCopied;
|
||||||
|
}
|
|
@ -1,5 +1,9 @@
|
||||||
|
import 'package:cake_wallet/palette.dart';
|
||||||
import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
|
import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
|
||||||
import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart';
|
import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_item.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/exchange_trade/information_page.dart';
|
||||||
|
import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart';
|
||||||
import 'package:mobx/mobx.dart';
|
import 'package:mobx/mobx.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
|
@ -19,15 +23,62 @@ import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
|
||||||
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||||
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
||||||
|
|
||||||
|
void showInformation(ExchangeTradeViewModel exchangeTradeViewModel, BuildContext context) {
|
||||||
|
final fetchingLabel = S.current.fetching;
|
||||||
|
final trade = exchangeTradeViewModel.trade;
|
||||||
|
final walletName = exchangeTradeViewModel.wallet.name;
|
||||||
|
|
||||||
|
final information = exchangeTradeViewModel.isSendable
|
||||||
|
? S.current.exchange_result_confirm(
|
||||||
|
trade.amount ?? fetchingLabel,
|
||||||
|
trade.from.toString(),
|
||||||
|
walletName)
|
||||||
|
: S.current.exchange_result_description(
|
||||||
|
trade.amount ?? fetchingLabel, trade.from.toString());
|
||||||
|
|
||||||
|
showDialog<void>(
|
||||||
|
context: context,
|
||||||
|
builder: (_) => InformationPage(information: information)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
class ExchangeTradePage extends BasePage {
|
class ExchangeTradePage extends BasePage {
|
||||||
|
ExchangeTradePage({@required this.exchangeTradeViewModel});
|
||||||
|
|
||||||
|
final ExchangeTradeViewModel exchangeTradeViewModel;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get title => S.current.exchange;
|
String get title => S.current.exchange;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget body(BuildContext context) => ExchangeTradeForm();
|
Widget trailing(BuildContext context) {
|
||||||
|
final questionImage = Image.asset('assets/images/question_mark.png',
|
||||||
|
color: Theme.of(context).primaryTextTheme.title.color);
|
||||||
|
|
||||||
|
return SizedBox(
|
||||||
|
height: 20.0,
|
||||||
|
width: 20.0,
|
||||||
|
child: ButtonTheme(
|
||||||
|
minWidth: double.minPositive,
|
||||||
|
child: FlatButton(
|
||||||
|
highlightColor: Colors.transparent,
|
||||||
|
splashColor: Colors.transparent,
|
||||||
|
padding: EdgeInsets.all(0),
|
||||||
|
onPressed: () => showInformation(exchangeTradeViewModel, context),
|
||||||
|
child: questionImage),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget body(BuildContext context) => ExchangeTradeForm(exchangeTradeViewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
class ExchangeTradeForm extends StatefulWidget {
|
class ExchangeTradeForm extends StatefulWidget {
|
||||||
|
ExchangeTradeForm(this.exchangeTradeViewModel);
|
||||||
|
|
||||||
|
final ExchangeTradeViewModel exchangeTradeViewModel;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
ExchangeTradeState createState() => ExchangeTradeState();
|
ExchangeTradeState createState() => ExchangeTradeState();
|
||||||
}
|
}
|
||||||
|
@ -35,23 +86,49 @@ class ExchangeTradeForm extends StatefulWidget {
|
||||||
class ExchangeTradeState extends State<ExchangeTradeForm> {
|
class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
final fetchingLabel = S.current.fetching;
|
final fetchingLabel = S.current.fetching;
|
||||||
String get title => S.current.exchange;
|
String get title => S.current.exchange;
|
||||||
|
List<ExchangeTradeItem> items;
|
||||||
|
|
||||||
bool _effectsInstalled = false;
|
bool _effectsInstalled = false;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
void initState() {
|
||||||
final tradeStore = Provider.of<ExchangeTradeStore>(context);
|
super.initState();
|
||||||
final sendStore = Provider.of<SendStore>(context);
|
WidgetsBinding.instance.addPostFrameCallback(afterLayout);
|
||||||
final walletStore = Provider.of<WalletStore>(context);
|
|
||||||
|
|
||||||
_setEffects(context);
|
items = [
|
||||||
|
ExchangeTradeItem(
|
||||||
|
title: S.current.id,
|
||||||
|
data: '${widget.exchangeTradeViewModel.trade.id ?? fetchingLabel}',
|
||||||
|
isCopied: true),
|
||||||
|
ExchangeTradeItem(
|
||||||
|
title: S.current.amount,
|
||||||
|
data: '${widget.exchangeTradeViewModel.trade.amount ?? fetchingLabel}',
|
||||||
|
isCopied: false),
|
||||||
|
ExchangeTradeItem(
|
||||||
|
title: S.current.status,
|
||||||
|
data: '${widget.exchangeTradeViewModel.trade.state ?? fetchingLabel}',
|
||||||
|
isCopied: false),
|
||||||
|
ExchangeTradeItem(
|
||||||
|
title: S.current.widgets_address,
|
||||||
|
data: widget.exchangeTradeViewModel.trade.inputAddress ?? fetchingLabel,
|
||||||
|
isCopied: true),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
void afterLayout(dynamic _) {
|
||||||
|
showInformation(widget.exchangeTradeViewModel, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
|
||||||
|
//_setEffects(context);
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
child: ScrollableWithBottomSection(
|
child: ScrollableWithBottomSection(
|
||||||
contentPadding: EdgeInsets.only(left: 24, right: 24, top: 24),
|
contentPadding: EdgeInsets.only(left: 24, right: 24, top: 24),
|
||||||
content: Observer(builder: (_) {
|
content: Observer(builder: (_) {
|
||||||
final trade = tradeStore.trade;
|
final trade = widget.exchangeTradeViewModel.trade;
|
||||||
final walletName = walletStore.name;
|
|
||||||
|
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
@ -268,10 +345,10 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
/*Container(
|
||||||
padding: EdgeInsets.only(top: 20),
|
padding: EdgeInsets.only(top: 20),
|
||||||
child: Text(
|
child: Text(
|
||||||
tradeStore.isSendable
|
widget.exchangeTradeViewModel.isSendable
|
||||||
? S.of(context).exchange_result_confirm(
|
? S.of(context).exchange_result_confirm(
|
||||||
trade.amount ?? fetchingLabel,
|
trade.amount ?? fetchingLabel,
|
||||||
trade.from.toString(),
|
trade.from.toString(),
|
||||||
|
@ -283,7 +360,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
fontSize: 13.0,
|
fontSize: 13.0,
|
||||||
color: Theme.of(context).primaryTextTheme.title.color),
|
color: Theme.of(context).primaryTextTheme.title.color),
|
||||||
),
|
),
|
||||||
),
|
),*/
|
||||||
Text(
|
Text(
|
||||||
S.of(context).exchange_result_write_down_ID,
|
S.of(context).exchange_result_write_down_ID,
|
||||||
textAlign: TextAlign.left,
|
textAlign: TextAlign.left,
|
||||||
|
@ -295,7 +372,13 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
bottomSectionPadding: EdgeInsets.all(24),
|
bottomSectionPadding: EdgeInsets.all(24),
|
||||||
bottomSection: Observer(
|
bottomSection: PrimaryButton(
|
||||||
|
onPressed: () {},
|
||||||
|
text: S.of(context).confirm,
|
||||||
|
color: Palette.blueCraiola,
|
||||||
|
textColor: Colors.white
|
||||||
|
)
|
||||||
|
/*Observer(
|
||||||
builder: (_) => tradeStore.trade.from == CryptoCurrency.xmr &&
|
builder: (_) => tradeStore.trade.from == CryptoCurrency.xmr &&
|
||||||
!(sendStore.state is TransactionCommitted)
|
!(sendStore.state is TransactionCommitted)
|
||||||
? LoadingPrimaryButton(
|
? LoadingPrimaryButton(
|
||||||
|
@ -312,7 +395,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
: S.of(context).send_xmr,
|
: S.of(context).send_xmr,
|
||||||
color: Colors.blue,
|
color: Colors.blue,
|
||||||
textColor: Colors.white)
|
textColor: Colors.white)
|
||||||
: Offstage()),
|
: Offstage()),*/
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -322,7 +405,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final sendStore = Provider.of<SendStore>(context);
|
/*final sendStore = Provider.of<SendStore>(context);
|
||||||
|
|
||||||
reaction((_) => sendStore.state, (SendingState state) {
|
reaction((_) => sendStore.state, (SendingState state) {
|
||||||
if (state is SendingFailed) {
|
if (state is SendingFailed) {
|
||||||
|
@ -376,7 +459,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});*/
|
||||||
|
|
||||||
_effectsInstalled = true;
|
_effectsInstalled = true;
|
||||||
}
|
}
|
||||||
|
|
57
lib/src/screens/exchange_trade/information_page.dart
Normal file
57
lib/src/screens/exchange_trade/information_page.dart
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
import 'dart:ui';
|
||||||
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/primary_button.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/alert_background.dart';
|
||||||
|
|
||||||
|
class InformationPage extends StatelessWidget {
|
||||||
|
InformationPage({@required this.information});
|
||||||
|
|
||||||
|
final String information;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AlertBackground(
|
||||||
|
child: Center(
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.only(
|
||||||
|
left: 24,
|
||||||
|
right: 24
|
||||||
|
),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(30)),
|
||||||
|
color: Theme.of(context).textTheme.body2.decorationColor
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.fromLTRB(24, 28, 24, 24),
|
||||||
|
child: Text(
|
||||||
|
information,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 14,
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
fontFamily: 'Poppins',
|
||||||
|
decoration: TextDecoration.none,
|
||||||
|
color: Theme.of(context).accentTextTheme.caption.decorationColor
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.fromLTRB(10, 0, 10, 10),
|
||||||
|
child: PrimaryButton(
|
||||||
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
|
text: S.of(context).send_got_it,
|
||||||
|
color: Theme.of(context).accentTextTheme.caption.backgroundColor,
|
||||||
|
textColor: Theme.of(context).primaryTextTheme.title.color
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class ExchangeTradeRow extends StatelessWidget {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container();
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,8 +11,7 @@ abstract class TradeFilterStoreBase with Store {
|
||||||
TradeFilterStoreBase(
|
TradeFilterStoreBase(
|
||||||
{this.displayXMRTO = true,
|
{this.displayXMRTO = true,
|
||||||
this.displayChangeNow = true,
|
this.displayChangeNow = true,
|
||||||
this.displayMorphToken = true,
|
this.displayMorphToken = true});
|
||||||
this.wallet});
|
|
||||||
|
|
||||||
@observable
|
@observable
|
||||||
bool displayXMRTO;
|
bool displayXMRTO;
|
||||||
|
@ -23,8 +22,6 @@ abstract class TradeFilterStoreBase with Store {
|
||||||
@observable
|
@observable
|
||||||
bool displayMorphToken;
|
bool displayMorphToken;
|
||||||
|
|
||||||
WalletBase wallet;
|
|
||||||
|
|
||||||
@action
|
@action
|
||||||
void toggleDisplayExchange(ExchangeProviderDescription provider) {
|
void toggleDisplayExchange(ExchangeProviderDescription provider) {
|
||||||
switch (provider) {
|
switch (provider) {
|
||||||
|
@ -40,7 +37,7 @@ abstract class TradeFilterStoreBase with Store {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<TradeListItem> filtered({List<TradeListItem> trades}) {
|
List<TradeListItem> filtered({List<TradeListItem> trades, WalletBase wallet}) {
|
||||||
final _trades =
|
final _trades =
|
||||||
trades.where((item) => item.trade.walletId == wallet.id).toList();
|
trades.where((item) => item.trade.walletId == wallet.id).toList();
|
||||||
final needToFilter = !displayChangeNow || !displayXMRTO || !displayMorphToken;
|
final needToFilter = !displayChangeNow || !displayXMRTO || !displayMorphToken;
|
||||||
|
|
|
@ -27,6 +27,12 @@ abstract class TradesStoreBase with Store {
|
||||||
@observable
|
@observable
|
||||||
List<TradeListItem> trades;
|
List<TradeListItem> trades;
|
||||||
|
|
||||||
|
@observable
|
||||||
|
Trade trade;
|
||||||
|
|
||||||
|
@action
|
||||||
|
void setTrade(Trade trade) => this.trade = trade;
|
||||||
|
|
||||||
@action
|
@action
|
||||||
Future updateTradeList() async => trades =
|
Future updateTradeList() async => trades =
|
||||||
tradesSource.values.map((trade) => TradeListItem(
|
tradesSource.values.map((trade) => TradeListItem(
|
||||||
|
|
|
@ -127,11 +127,7 @@ class Themes {
|
||||||
caption: TextStyle(
|
caption: TextStyle(
|
||||||
color: Palette.moderateLavender, // container (confirm exchange)
|
color: Palette.moderateLavender, // container (confirm exchange)
|
||||||
backgroundColor: Palette.moderateLavender, // button background (confirm exchange)
|
backgroundColor: Palette.moderateLavender, // button background (confirm exchange)
|
||||||
|
decorationColor: Palette.darkBlueCraiola, // text color (information page)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
decorationColor: Palette.lavender, // gradient end, wallet label
|
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
|
@ -283,10 +279,7 @@ class Themes {
|
||||||
caption: TextStyle(
|
caption: TextStyle(
|
||||||
color: PaletteDark.nightBlue, // container (confirm exchange)
|
color: PaletteDark.nightBlue, // container (confirm exchange)
|
||||||
backgroundColor: PaletteDark.deepVioletBlue, // button background (confirm exchange)
|
backgroundColor: PaletteDark.deepVioletBlue, // button background (confirm exchange)
|
||||||
|
decorationColor: Palette.darkLavender, // text color (information page)
|
||||||
|
|
||||||
|
|
||||||
decorationColor: PaletteDark.nightBlue, // gradient end, wallet label
|
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -108,8 +108,7 @@ abstract class DashboardViewModelBase with Store {
|
||||||
|
|
||||||
_items
|
_items
|
||||||
.addAll(transactionFilterStore.filtered(transactions: transactions));
|
.addAll(transactionFilterStore.filtered(transactions: transactions));
|
||||||
//_items.addAll(tradeFilterStore.filtered(trades: trades));
|
_items.addAll(tradeFilterStore.filtered(trades: trades, wallet: wallet));
|
||||||
_items.addAll(trades); // FIXME
|
|
||||||
|
|
||||||
return formattedItemsList(_items);
|
return formattedItemsList(_items);
|
||||||
}
|
}
|
||||||
|
|
68
lib/view_model/exchange/exchange_trade_view_model.dart
Normal file
68
lib/view_model/exchange/exchange_trade_view_model.dart
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
import 'dart:async';
|
||||||
|
import 'package:cake_wallet/core/wallet_base.dart';
|
||||||
|
import 'package:cake_wallet/src/domain/exchange/changenow/changenow_exchange_provider.dart';
|
||||||
|
import 'package:cake_wallet/src/domain/exchange/exchange_provider.dart';
|
||||||
|
import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart';
|
||||||
|
import 'package:cake_wallet/src/domain/exchange/morphtoken/morphtoken_exchange_provider.dart';
|
||||||
|
import 'package:cake_wallet/src/domain/exchange/trade.dart';
|
||||||
|
import 'package:cake_wallet/src/domain/exchange/xmrto/xmrto_exchange_provider.dart';
|
||||||
|
import 'package:cake_wallet/store/dashboard/trades_store.dart';
|
||||||
|
import 'package:hive/hive.dart';
|
||||||
|
import 'package:mobx/mobx.dart';
|
||||||
|
|
||||||
|
part 'exchange_trade_view_model.g.dart';
|
||||||
|
|
||||||
|
class ExchangeTradeViewModel = ExchangeTradeViewModelBase with _$ExchangeTradeViewModel;
|
||||||
|
|
||||||
|
abstract class ExchangeTradeViewModelBase with Store {
|
||||||
|
ExchangeTradeViewModelBase({this.wallet, this.trades, this.tradesStore}) {
|
||||||
|
trade = tradesStore.trade;
|
||||||
|
|
||||||
|
isSendable = trade.from == wallet.currency ||
|
||||||
|
trade.provider == ExchangeProviderDescription.xmrto;
|
||||||
|
|
||||||
|
switch (trade.provider) {
|
||||||
|
case ExchangeProviderDescription.xmrto:
|
||||||
|
_provider = XMRTOExchangeProvider();
|
||||||
|
break;
|
||||||
|
case ExchangeProviderDescription.changeNow:
|
||||||
|
_provider = ChangeNowExchangeProvider();
|
||||||
|
break;
|
||||||
|
case ExchangeProviderDescription.morphToken:
|
||||||
|
_provider = MorphTokenExchangeProvider(trades: trades);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_updateTrade();
|
||||||
|
_timer = Timer.periodic(Duration(seconds: 20), (_) async => _updateTrade());
|
||||||
|
}
|
||||||
|
|
||||||
|
final WalletBase wallet;
|
||||||
|
final Box<Trade> trades;
|
||||||
|
final TradesStore tradesStore;
|
||||||
|
|
||||||
|
@observable
|
||||||
|
Trade trade;
|
||||||
|
|
||||||
|
@observable
|
||||||
|
bool isSendable;
|
||||||
|
|
||||||
|
ExchangeProvider _provider;
|
||||||
|
|
||||||
|
Timer _timer;
|
||||||
|
|
||||||
|
@action
|
||||||
|
Future<void> _updateTrade() async {
|
||||||
|
try {
|
||||||
|
final updatedTrade = await _provider.findTradeById(id: trade.id);
|
||||||
|
|
||||||
|
if (updatedTrade.createdAt == null && trade.createdAt != null) {
|
||||||
|
updatedTrade.createdAt = trade.createdAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
trade = updatedTrade;
|
||||||
|
} catch (e) {
|
||||||
|
print(e.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import 'package:cake_wallet/src/domain/exchange/exchange_provider.dart';
|
||||||
import 'package:cake_wallet/src/domain/exchange/limits.dart';
|
import 'package:cake_wallet/src/domain/exchange/limits.dart';
|
||||||
import 'package:cake_wallet/src/domain/exchange/trade.dart';
|
import 'package:cake_wallet/src/domain/exchange/trade.dart';
|
||||||
import 'package:cake_wallet/src/stores/exchange/limits_state.dart';
|
import 'package:cake_wallet/src/stores/exchange/limits_state.dart';
|
||||||
|
import 'package:cake_wallet/store/dashboard/trades_store.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:mobx/mobx.dart';
|
import 'package:mobx/mobx.dart';
|
||||||
import 'package:cake_wallet/generated/i18n.dart';
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
|
@ -24,7 +25,12 @@ part 'exchange_view_model.g.dart';
|
||||||
class ExchangeViewModel = ExchangeViewModelBase with _$ExchangeViewModel;
|
class ExchangeViewModel = ExchangeViewModelBase with _$ExchangeViewModel;
|
||||||
|
|
||||||
abstract class ExchangeViewModelBase with Store {
|
abstract class ExchangeViewModelBase with Store {
|
||||||
ExchangeViewModelBase({this.wallet, this.trades, this.exchangeTemplateStore}) {
|
ExchangeViewModelBase({
|
||||||
|
this.wallet,
|
||||||
|
this.trades,
|
||||||
|
this.exchangeTemplateStore,
|
||||||
|
this.tradesStore}) {
|
||||||
|
|
||||||
providerList = [
|
providerList = [
|
||||||
XMRTOExchangeProvider(),
|
XMRTOExchangeProvider(),
|
||||||
ChangeNowExchangeProvider(),
|
ChangeNowExchangeProvider(),
|
||||||
|
@ -50,6 +56,7 @@ abstract class ExchangeViewModelBase with Store {
|
||||||
final WalletBase wallet;
|
final WalletBase wallet;
|
||||||
final Box<Trade> trades;
|
final Box<Trade> trades;
|
||||||
final ExchangeTemplateStore exchangeTemplateStore;
|
final ExchangeTemplateStore exchangeTemplateStore;
|
||||||
|
final TradesStore tradesStore;
|
||||||
|
|
||||||
@observable
|
@observable
|
||||||
ExchangeProvider provider;
|
ExchangeProvider provider;
|
||||||
|
@ -220,6 +227,7 @@ abstract class ExchangeViewModelBase with Store {
|
||||||
tradeState = TradeIsCreating();
|
tradeState = TradeIsCreating();
|
||||||
final trade = await provider.createTrade(request: request);
|
final trade = await provider.createTrade(request: request);
|
||||||
trade.walletId = wallet.id;
|
trade.walletId = wallet.id;
|
||||||
|
tradesStore.setTrade(trade);
|
||||||
await trades.add(trade);
|
await trades.add(trade);
|
||||||
tradeState = TradeIsCreatedSuccessfully(trade: trade);
|
tradeState = TradeIsCreatedSuccessfully(trade: trade);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "Angebot läuft ab in: ",
|
"offer_expires_in" : "Angebot läuft ab in: ",
|
||||||
"trade_is_powered_by" : "Dieser Handel wird betrieben von ${provider}",
|
"trade_is_powered_by" : "Dieser Handel wird betrieben von ${provider}",
|
||||||
"copy_address" : "Adresse kopieren",
|
"copy_address" : "Adresse kopieren",
|
||||||
"exchange_result_confirm" : "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns.\n\n",
|
"exchange_result_confirm" : "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns.",
|
||||||
"exchange_result_description" : "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.\n\n'",
|
"exchange_result_description" : "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.'",
|
||||||
"exchange_result_write_down_ID" : "*Bitte kopieren oder notieren Sie Ihren oben gezeigten Ausweis.",
|
"exchange_result_write_down_ID" : "*Bitte kopieren oder notieren Sie Ihren oben gezeigten Ausweis.",
|
||||||
"confirm" : "Bestätigen",
|
"confirm" : "Bestätigen",
|
||||||
"confirm_sending" : "Bestätigen Sie das Senden",
|
"confirm_sending" : "Bestätigen Sie das Senden",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "Offer expires in: ",
|
"offer_expires_in" : "Offer expires in: ",
|
||||||
"trade_is_powered_by" : "This trade is powered by ${provider}",
|
"trade_is_powered_by" : "This trade is powered by ${provider}",
|
||||||
"copy_address" : "Copy Address",
|
"copy_address" : "Copy Address",
|
||||||
"exchange_result_confirm" : "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.\n\n",
|
"exchange_result_confirm" : "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.",
|
||||||
"exchange_result_description" : "Please send ${fetchingLabel} ${from} to the address shown above.\n\n",
|
"exchange_result_description" : "Please send ${fetchingLabel} ${from} to the address shown above.",
|
||||||
"exchange_result_write_down_ID" : "*Please copy or write down your ID shown above.",
|
"exchange_result_write_down_ID" : "*Please copy or write down your ID shown above.",
|
||||||
"confirm" : "Confirm",
|
"confirm" : "Confirm",
|
||||||
"confirm_sending" : "Confirm sending",
|
"confirm_sending" : "Confirm sending",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "Oferta expira en: ",
|
"offer_expires_in" : "Oferta expira en: ",
|
||||||
"trade_is_powered_by" : "Este comercio es impulsado por ${provider}",
|
"trade_is_powered_by" : "Este comercio es impulsado por ${provider}",
|
||||||
"copy_address" : "Copiar dirección ",
|
"copy_address" : "Copiar dirección ",
|
||||||
"exchange_result_confirm" : "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba. O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.\n\n",
|
"exchange_result_confirm" : "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba. O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.",
|
||||||
"exchange_result_description" : "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba.\n\n'",
|
"exchange_result_description" : "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba.",
|
||||||
"exchange_result_write_down_ID" : "*Copie o escriba su identificación que se muestra arriba.",
|
"exchange_result_write_down_ID" : "*Copie o escriba su identificación que se muestra arriba.",
|
||||||
"confirm" : "Confirmar",
|
"confirm" : "Confirmar",
|
||||||
"confirm_sending" : "Confirmar envío",
|
"confirm_sending" : "Confirmar envío",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "में ऑफर समाप्त हो रहा है: ",
|
"offer_expires_in" : "में ऑफर समाप्त हो रहा है: ",
|
||||||
"trade_is_powered_by" : "यह व्यापार द्वारा संचालित है ${provider}",
|
"trade_is_powered_by" : "यह व्यापार द्वारा संचालित है ${provider}",
|
||||||
"copy_address" : "पता कॉपी करें",
|
"copy_address" : "पता कॉपी करें",
|
||||||
"exchange_result_confirm" : "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं.\n\n",
|
"exchange_result_confirm" : "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं.",
|
||||||
"exchange_result_description" : "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर\n\n'",
|
"exchange_result_description" : "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर",
|
||||||
"exchange_result_write_down_ID" : "*कृपया ऊपर दिखाए गए अपने ID को कॉपी या लिख लें.",
|
"exchange_result_write_down_ID" : "*कृपया ऊपर दिखाए गए अपने ID को कॉपी या लिख लें.",
|
||||||
"confirm" : "की पुष्टि करें",
|
"confirm" : "की पुष्टि करें",
|
||||||
"confirm_sending" : "भेजने की पुष्टि करें",
|
"confirm_sending" : "भेजने की पुष्टि करें",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "で有効期限が切れます: ",
|
"offer_expires_in" : "で有効期限が切れます: ",
|
||||||
"trade_is_powered_by" : "この取引は ${provider}",
|
"trade_is_powered_by" : "この取引は ${provider}",
|
||||||
"copy_address" : "住所をコピー",
|
"copy_address" : "住所をコピー",
|
||||||
"exchange_result_confirm" : "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください.\n\n",
|
"exchange_result_confirm" : "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください.",
|
||||||
"exchange_result_description" : "送信してください ${fetchingLabel} ${from} 上記のアドレスへ.\n\n'",
|
"exchange_result_description" : "送信してください ${fetchingLabel} ${from} 上記のアドレスへ.",
|
||||||
"exchange_result_write_down_ID" : "*上記のIDをコピーまたは書き留めてください.",
|
"exchange_result_write_down_ID" : "*上記のIDをコピーまたは書き留めてください.",
|
||||||
"confirm" : "確認する",
|
"confirm" : "確認する",
|
||||||
"confirm_sending" : "送信を確認",
|
"confirm_sending" : "送信を確認",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "쿠폰 만료일: ",
|
"offer_expires_in" : "쿠폰 만료일: ",
|
||||||
"trade_is_powered_by" : "이 거래는 ${provider}",
|
"trade_is_powered_by" : "이 거래는 ${provider}",
|
||||||
"copy_address" : "주소 복사",
|
"copy_address" : "주소 복사",
|
||||||
"exchange_result_confirm" : "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오.\n\n",
|
"exchange_result_confirm" : "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오.",
|
||||||
"exchange_result_description" : "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로.\n\n'",
|
"exchange_result_description" : "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로.",
|
||||||
"exchange_result_write_down_ID" : "*위에 표시된 ID를 복사하거나 적어 두십시오.",
|
"exchange_result_write_down_ID" : "*위에 표시된 ID를 복사하거나 적어 두십시오.",
|
||||||
"confirm" : "확인",
|
"confirm" : "확인",
|
||||||
"confirm_sending" : "전송 확인",
|
"confirm_sending" : "전송 확인",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "Aanbieding verloopt over: ",
|
"offer_expires_in" : "Aanbieding verloopt over: ",
|
||||||
"trade_is_powered_by" : "Deze transactie wordt mogelijk gemaakt door ${provider}",
|
"trade_is_powered_by" : "Deze transactie wordt mogelijk gemaakt door ${provider}",
|
||||||
"copy_address" : "Adres kopiëren",
|
"copy_address" : "Adres kopiëren",
|
||||||
"exchange_result_confirm" : "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.\n\n",
|
"exchange_result_confirm" : "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.",
|
||||||
"exchange_result_description" : "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres.\n\n'",
|
"exchange_result_description" : "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres.",
|
||||||
"exchange_result_write_down_ID" : "*Kopieer of noteer uw hierboven getoonde ID.",
|
"exchange_result_write_down_ID" : "*Kopieer of noteer uw hierboven getoonde ID.",
|
||||||
"confirm" : "Bevestigen",
|
"confirm" : "Bevestigen",
|
||||||
"confirm_sending" : "Bevestig verzending",
|
"confirm_sending" : "Bevestig verzending",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "Oferta wygasa za ",
|
"offer_expires_in" : "Oferta wygasa za ",
|
||||||
"trade_is_powered_by" : "Ten handel jest zasilany przez ${provider}",
|
"trade_is_powered_by" : "Ten handel jest zasilany przez ${provider}",
|
||||||
"copy_address" : "Skopiuj adress",
|
"copy_address" : "Skopiuj adress",
|
||||||
"exchange_result_confirm" : "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.\n\n",
|
"exchange_result_confirm" : "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.",
|
||||||
"exchange_result_description" : "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej.\n\n'",
|
"exchange_result_description" : "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej.",
|
||||||
"exchange_result_write_down_ID" : "*Skopiuj lub zanotuj swój identyfikator pokazany powyżej.",
|
"exchange_result_write_down_ID" : "*Skopiuj lub zanotuj swój identyfikator pokazany powyżej.",
|
||||||
"confirm" : "Potwierdzać",
|
"confirm" : "Potwierdzać",
|
||||||
"confirm_sending" : "Potwierdź wysłanie",
|
"confirm_sending" : "Potwierdź wysłanie",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "A oferta expira em: ",
|
"offer_expires_in" : "A oferta expira em: ",
|
||||||
"trade_is_powered_by" : "Troca realizada por ${provider}",
|
"trade_is_powered_by" : "Troca realizada por ${provider}",
|
||||||
"copy_address" : "Copiar endereço",
|
"copy_address" : "Copiar endereço",
|
||||||
"exchange_result_confirm" : "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.\n\n",
|
"exchange_result_confirm" : "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.",
|
||||||
"exchange_result_description" : "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima.\n\n'",
|
"exchange_result_description" : "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima.",
|
||||||
"exchange_result_write_down_ID" : "*Copie ou anote seu ID mostrado acima.",
|
"exchange_result_write_down_ID" : "*Copie ou anote seu ID mostrado acima.",
|
||||||
"confirm" : "Confirmar",
|
"confirm" : "Confirmar",
|
||||||
"confirm_sending" : "Confirmar o envio",
|
"confirm_sending" : "Confirmar o envio",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "Предложение истекает через: ",
|
"offer_expires_in" : "Предложение истекает через: ",
|
||||||
"trade_is_powered_by" : "Сделка выполнена через ${provider}",
|
"trade_is_powered_by" : "Сделка выполнена через ${provider}",
|
||||||
"copy_address" : "Cкопировать адрес",
|
"copy_address" : "Cкопировать адрес",
|
||||||
"exchange_result_confirm" : "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы.\n\n",
|
"exchange_result_confirm" : "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы.",
|
||||||
"exchange_result_description" : "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше.\n\n'",
|
"exchange_result_description" : "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше.",
|
||||||
"exchange_result_write_down_ID" : "*Пожалуйста, скопируйте или запишите ID, указанный выше.",
|
"exchange_result_write_down_ID" : "*Пожалуйста, скопируйте или запишите ID, указанный выше.",
|
||||||
"confirm" : "Подтвердить",
|
"confirm" : "Подтвердить",
|
||||||
"confirm_sending" : "Подтвердить отправку",
|
"confirm_sending" : "Подтвердить отправку",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "Пропозиція закінчиться через: ",
|
"offer_expires_in" : "Пропозиція закінчиться через: ",
|
||||||
"trade_is_powered_by" : "Операція виконана через ${provider}",
|
"trade_is_powered_by" : "Операція виконана через ${provider}",
|
||||||
"copy_address" : "Cкопіювати адресу",
|
"copy_address" : "Cкопіювати адресу",
|
||||||
"exchange_result_confirm" : "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму.\n\n",
|
"exchange_result_confirm" : "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму.",
|
||||||
"exchange_result_description" : "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище.\n\n'",
|
"exchange_result_description" : "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище.",
|
||||||
"exchange_result_write_down_ID" : "*Будь ласка, скопіюйте або запишіть ID, вказаний вище.",
|
"exchange_result_write_down_ID" : "*Будь ласка, скопіюйте або запишіть ID, вказаний вище.",
|
||||||
"confirm" : "Підтвердити",
|
"confirm" : "Підтвердити",
|
||||||
"confirm_sending" : "Підтвердити відправлення",
|
"confirm_sending" : "Підтвердити відправлення",
|
||||||
|
|
|
@ -88,8 +88,8 @@
|
||||||
"offer_expires_in" : "优惠有效期至 ",
|
"offer_expires_in" : "优惠有效期至 ",
|
||||||
"trade_is_powered_by" : "该交易由 ${provider}",
|
"trade_is_powered_by" : "该交易由 ${provider}",
|
||||||
"copy_address" : "复制地址",
|
"copy_address" : "复制地址",
|
||||||
"exchange_result_confirm" : "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额\n\n",
|
"exchange_result_confirm" : "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额",
|
||||||
"exchange_result_description" : "请发送 ${fetchingLabel} ${from} 到上面显示的地址.\n\n'",
|
"exchange_result_description" : "请发送 ${fetchingLabel} ${from} 到上面显示的地址.",
|
||||||
"exchange_result_write_down_ID" : "*请复制或写下您上面显示的ID.",
|
"exchange_result_write_down_ID" : "*请复制或写下您上面显示的ID.",
|
||||||
"confirm" : "确认",
|
"confirm" : "确认",
|
||||||
"confirm_sending" : "确认发送",
|
"confirm_sending" : "确认发送",
|
||||||
|
|
Loading…
Reference in a new issue