From ed5a139490a733107faae03857de6480f378bc87 Mon Sep 17 00:00:00 2001 From: fosse Date: Mon, 18 Sep 2023 14:57:57 -0400 Subject: [PATCH 01/20] save --- lib/src/screens/send/send_page.dart | 119 ++++++++++++---------------- 1 file changed, 49 insertions(+), 70 deletions(-) diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 961cf4ba5..6b35158e3 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -66,9 +66,8 @@ class SendPage extends BasePage { color: titleColor(context), size: 16, ); - final _closeButton = currentTheme.type == ThemeType.dark - ? closeButtonImageDarkTheme - : closeButtonImage; + final _closeButton = + currentTheme.type == ThemeType.dark ? closeButtonImageDarkTheme : closeButtonImage; bool isMobileView = ResponsiveLayoutUtil.instance.isMobile; @@ -79,13 +78,10 @@ class SendPage extends BasePage { child: ButtonTheme( minWidth: double.minPositive, child: Semantics( - label: !isMobileView - ? S.of(context).close - : S.of(context).seed_alert_back, + label: !isMobileView ? S.of(context).close : S.of(context).seed_alert_back, child: TextButton( style: ButtonStyle( - overlayColor: MaterialStateColor.resolveWith( - (states) => Colors.transparent), + overlayColor: MaterialStateColor.resolveWith((states) => Colors.transparent), ), onPressed: () => onClose(context), child: !isMobileView ? _closeButton : _backButton, @@ -123,8 +119,7 @@ class SendPage extends BasePage { Padding( padding: const EdgeInsets.only(right: 8.0), child: Observer( - builder: (_) => - SyncIndicatorIcon(isSynced: sendViewModel.isReadyForSend), + builder: (_) => SyncIndicatorIcon(isSynced: sendViewModel.isReadyForSend), ), ), if (supMiddle != null) supMiddle @@ -158,10 +153,10 @@ class SendPage extends BasePage { _setEffects(context); return GestureDetector( - onLongPress: () => sendViewModel.balanceViewModel.isReversing = - !sendViewModel.balanceViewModel.isReversing, - onLongPressUp: () => sendViewModel.balanceViewModel.isReversing = - !sendViewModel.balanceViewModel.isReversing, + onLongPress: () => + sendViewModel.balanceViewModel.isReversing = !sendViewModel.balanceViewModel.isReversing, + onLongPressUp: () => + sendViewModel.balanceViewModel.isReversing = !sendViewModel.balanceViewModel.isReversing, child: Form( key: _formKey, child: ScrollableWithBottomSection( @@ -191,8 +186,7 @@ class SendPage extends BasePage { }, )), Padding( - padding: EdgeInsets.only( - top: 10, left: 24, right: 24, bottom: 10), + padding: EdgeInsets.only(top: 10, left: 24, right: 24, bottom: 10), child: Container( height: 10, child: Observer( @@ -208,8 +202,12 @@ class SendPage extends BasePage { radius: 6.0, dotWidth: 6.0, dotHeight: 6.0, - dotColor: Theme.of(context).extension()!.indicatorDotColor, - activeDotColor: Theme.of(context).extension()!.templateBackgroundColor), + dotColor: Theme.of(context) + .extension()! + .indicatorDotColor, + activeDotColor: Theme.of(context) + .extension()! + .templateBackgroundColor), ) : Offstage(); }, @@ -230,8 +228,7 @@ class SendPage extends BasePage { return Row( children: [ AddTemplateButton( - onTap: () => Navigator.of(context) - .pushNamed(Routes.sendTemplate), + onTap: () => Navigator.of(context).pushNamed(Routes.sendTemplate), currentTemplatesLength: templates.length, ), ListView.builder( @@ -244,9 +241,8 @@ class SendPage extends BasePage { return TemplateTile( key: UniqueKey(), to: template.name, - hasMultipleRecipients: - template.additionalRecipients != null && - template.additionalRecipients!.length > 1, + hasMultipleRecipients: template.additionalRecipients != null && + template.additionalRecipients!.length > 1, amount: template.isCurrencySelected ? template.amount : template.amountFiat, @@ -257,7 +253,9 @@ class SendPage extends BasePage { if (template.additionalRecipients?.isNotEmpty ?? false) { sendViewModel.clearOutputs(); - for (int i = 0;i < template.additionalRecipients!.length;i++) { + for (int i = 0; + i < template.additionalRecipients!.length; + i++) { Output output; try { output = sendViewModel.outputs[i]; @@ -286,26 +284,17 @@ class SendPage extends BasePage { context: context, builder: (dialogContext) { return AlertWithTwoActions( - alertTitle: - S.of(context).template, - alertContent: S - .of(context) - .confirm_delete_template, - rightButtonText: - S.of(context).delete, - leftButtonText: - S.of(context).cancel, + alertTitle: S.of(context).template, + alertContent: S.of(context).confirm_delete_template, + rightButtonText: S.of(context).delete, + leftButtonText: S.of(context).cancel, actionRightButton: () { - Navigator.of(dialogContext) - .pop(); - sendViewModel - .sendTemplateViewModel - .removeTemplate( - template: template); + Navigator.of(dialogContext).pop(); + sendViewModel.sendTemplateViewModel + .removeTemplate(template: template); }, actionLeftButton: () => - Navigator.of(dialogContext) - .pop()); + Navigator.of(dialogContext).pop()); }, ); }, @@ -321,8 +310,7 @@ class SendPage extends BasePage { ], ), ), - bottomSectionPadding: - EdgeInsets.only(left: 24, right: 24, bottom: 24), + bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), bottomSection: Column( children: [ if (sendViewModel.hasCurrecyChanger) @@ -331,10 +319,10 @@ class SendPage extends BasePage { padding: EdgeInsets.only(bottom: 12), child: PrimaryButton( onPressed: () => presentCurrencyPicker(context), - text: - 'Change your asset (${sendViewModel.selectedCryptoCurrency})', + text: 'Change your asset (${sendViewModel.selectedCryptoCurrency})', color: Colors.transparent, - textColor: Theme.of(context).extension()!.hintTextColor, + textColor: + Theme.of(context).extension()!.hintTextColor, ))), if (sendViewModel.sendTemplateViewModel.hasMultiRecipient) Padding( @@ -343,22 +331,21 @@ class SendPage extends BasePage { onPressed: () { sendViewModel.addOutput(); Future.delayed(const Duration(milliseconds: 250), () { - controller - .jumpToPage(sendViewModel.outputs.length - 1); + controller.jumpToPage(sendViewModel.outputs.length - 1); }); }, text: S.of(context).add_receiver, color: Colors.transparent, textColor: Theme.of(context).extension()!.hintTextColor, isDottedBorder: true, - borderColor: Theme.of(context).extension()!.templateDottedBorderColor, + borderColor: + Theme.of(context).extension()!.templateDottedBorderColor, )), Observer( builder: (_) { return LoadingPrimaryButton( onPressed: () async { - if (_formKey.currentState != null && - !_formKey.currentState!.validate()) { + if (_formKey.currentState != null && !_formKey.currentState!.validate()) { if (sendViewModel.outputs.length > 1) { showErrorValidationAlert(context); } @@ -367,9 +354,7 @@ class SendPage extends BasePage { } final notValidItems = sendViewModel.outputs - .where((item) => - item.address.isEmpty || - item.cryptoAmount.isEmpty) + .where((item) => item.address.isEmpty || item.cryptoAmount.isEmpty) .toList(); if (notValidItems.isNotEmpty) { @@ -389,8 +374,7 @@ class SendPage extends BasePage { ); }, text: S.of(context).send, - color: - Theme.of(context).primaryColor, + color: Theme.of(context).primaryColor, textColor: Colors.white, isLoading: sendViewModel.state is IsExecutingState || sendViewModel.state is TransactionCommitting, @@ -433,14 +417,11 @@ class SendPage extends BasePage { return ConfirmSendingAlert( alertTitle: S.of(context).confirm_sending, amount: S.of(context).send_amount, - amountValue: - sendViewModel.pendingTransaction!.amountFormatted, - fiatAmountValue: - sendViewModel.pendingTransactionFiatAmountFormatted, + amountValue: sendViewModel.pendingTransaction!.amountFormatted, + fiatAmountValue: sendViewModel.pendingTransactionFiatAmountFormatted, fee: S.of(context).send_fee, feeValue: sendViewModel.pendingTransaction!.feeFormatted, - feeFiatAmount: sendViewModel - .pendingTransactionFeeFiatAmountFormatted, + feeFiatAmount: sendViewModel.pendingTransactionFeeFiatAmountFormatted, outputs: sendViewModel.outputs, rightButtonText: S.of(context).ok, leftButtonText: S.of(context).cancel, @@ -461,8 +442,7 @@ class SendPage extends BasePage { return AlertWithOneAction( alertTitle: '', alertContent: S.of(context).send_success( - sendViewModel.selectedCryptoCurrency - .toString()), + sendViewModel.selectedCryptoCurrency.toString()), buttonText: S.of(context).ok, buttonAction: () { Navigator.of(context).pop(); @@ -492,8 +472,8 @@ class SendPage extends BasePage { Future _setInputsFromTemplate(BuildContext context, {required Output output, required Template template}) async { - final fiatFromTemplate = FiatCurrency.all - .singleWhere((element) => element.title == template.fiatCurrency); + final fiatFromTemplate = + FiatCurrency.all.singleWhere((element) => element.title == template.fiatCurrency); output.address = template.address; @@ -534,12 +514,11 @@ class SendPage extends BasePage { builder: (_) => Picker( items: sendViewModel.currencies, displayItem: (Object item) => item.toString(), - selectedAtIndex: sendViewModel.currencies - .indexOf(sendViewModel.selectedCryptoCurrency), + selectedAtIndex: + sendViewModel.currencies.indexOf(sendViewModel.selectedCryptoCurrency), title: S.of(context).please_select, mainAxisAlignment: MainAxisAlignment.center, - onItemSelected: (CryptoCurrency cur) => - sendViewModel.selectedCryptoCurrency = cur, + onItemSelected: (CryptoCurrency cur) => sendViewModel.selectedCryptoCurrency = cur, ), context: context); } From 6b1c7e832d500c6cbdd3491a6a41d8ee084b81ea Mon Sep 17 00:00:00 2001 From: fosse Date: Tue, 19 Sep 2023 12:09:13 -0400 Subject: [PATCH 02/20] ens changes --- cw_ethereum/lib/ethereum_client.dart | 16 ++++++++++++++++ cw_ethereum/pubspec.yaml | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/cw_ethereum/lib/ethereum_client.dart b/cw_ethereum/lib/ethereum_client.dart index e10e79f1e..0ef8ad54a 100644 --- a/cw_ethereum/lib/ethereum_client.dart +++ b/cw_ethereum/lib/ethereum_client.dart @@ -6,6 +6,7 @@ import 'package:cw_ethereum/erc20_balance.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_ethereum/ethereum_transaction_model.dart'; import 'package:cw_ethereum/pending_ethereum_transaction.dart'; +import 'package:ens_dart/ens_dart.dart'; import 'package:flutter/services.dart'; import 'package:http/http.dart'; import 'package:web3dart/web3dart.dart'; @@ -210,6 +211,21 @@ I/flutter ( 4474): Gas Used: 53000 } } + Future checkEnsName(String ensName) async { + if (_client == null) { + return null; + } + try { + final ens = Ens(client: _client!); + + final addr = await ens.withName(ensName).getAddress(); + return addr.hex; + } catch (e) { + print(e); + return null; + } + } + // Future _getDecimalPlacesForContract(DeployedContract contract) async { // final String abi = await rootBundle.loadString("assets/abi_json/erc20_abi.json"); // final contractAbi = ContractAbi.fromJson(abi, "ERC20"); diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 5d19589f3..895098658 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -21,6 +21,7 @@ dependencies: hex: ^0.2.0 http: ^1.1.0 shared_preferences: ^2.0.15 + ens_dart: ^1.0.0 cw_core: path: ../cw_core @@ -31,6 +32,9 @@ dev_dependencies: mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 +dependency_overrides: + http: 1.1.0 + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From d8d2335a5fadbac519dd8400f94d11d379b55641 Mon Sep 17 00:00:00 2001 From: fosse Date: Tue, 19 Sep 2023 12:21:51 -0400 Subject: [PATCH 03/20] version fix --- cw_ethereum/pubspec.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 895098658..7e3572e80 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -21,7 +21,10 @@ dependencies: hex: ^0.2.0 http: ^1.1.0 shared_preferences: ^2.0.15 - ens_dart: ^1.0.0 + ens_dart: + git: + url: https://github.com/cake-tech/ens_dart.git + ref: main cw_core: path: ../cw_core @@ -32,9 +35,6 @@ dev_dependencies: mobx_codegen: ^2.0.7 hive_generator: ^1.1.3 -dependency_overrides: - http: 1.1.0 - # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From a52c7b053e4f153b945f723d2a7e9270caf82f9d Mon Sep 17 00:00:00 2001 From: fosse Date: Thu, 21 Sep 2023 10:16:27 -0400 Subject: [PATCH 04/20] ens working --- cw_ethereum/lib/ethereum_client.dart | 6 +- cw_ethereum/lib/ethereum_wallet.dart | 4 + lib/core/address_validator.dart | 2 +- lib/entities/parse_address_from_domain.dart | 13 ++++ lib/entities/parsed_address.dart | 11 ++- lib/ethereum/cw_ethereum.dart | 5 ++ .../widgets/extract_address_from_parsed.dart | 5 ++ res/values/strings_ar.arb | 3 +- res/values/strings_bg.arb | 3 +- res/values/strings_cs.arb | 3 +- res/values/strings_de.arb | 3 +- res/values/strings_en.arb | 3 +- res/values/strings_es.arb | 3 +- res/values/strings_fr.arb | 3 +- res/values/strings_ha.arb | 3 +- res/values/strings_hi.arb | 3 +- res/values/strings_hr.arb | 3 +- res/values/strings_id.arb | 3 +- res/values/strings_it.arb | 3 +- res/values/strings_ja.arb | 3 +- res/values/strings_ko.arb | 3 +- res/values/strings_my.arb | 3 +- res/values/strings_nl.arb | 3 +- res/values/strings_pl.arb | 3 +- res/values/strings_pt.arb | 3 +- res/values/strings_ru.arb | 3 +- res/values/strings_th.arb | 3 +- res/values/strings_tr.arb | 3 +- res/values/strings_uk.arb | 3 +- res/values/strings_ur.arb | 3 +- res/values/strings_yo.arb | 3 +- res/values/strings_zh.arb | 3 +- tool/configure.dart | 75 +++++++++++-------- 33 files changed, 133 insertions(+), 63 deletions(-) diff --git a/cw_ethereum/lib/ethereum_client.dart b/cw_ethereum/lib/ethereum_client.dart index 0ef8ad54a..4c74f1ec0 100644 --- a/cw_ethereum/lib/ethereum_client.dart +++ b/cw_ethereum/lib/ethereum_client.dart @@ -211,9 +211,9 @@ I/flutter ( 4474): Gas Used: 53000 } } - Future checkEnsName(String ensName) async { + Future checkEnsName(String ensName) async { if (_client == null) { - return null; + return ""; } try { final ens = Ens(client: _client!); @@ -222,7 +222,7 @@ I/flutter ( 4474): Gas Used: 53000 return addr.hex; } catch (e) { print(e); - return null; + return ""; } } diff --git a/cw_ethereum/lib/ethereum_wallet.dart b/cw_ethereum/lib/ethereum_wallet.dart index 012b33a4b..b0712d059 100644 --- a/cw_ethereum/lib/ethereum_wallet.dart +++ b/cw_ethereum/lib/ethereum_wallet.dart @@ -508,4 +508,8 @@ abstract class EthereumWalletBase @override String signMessage(String message, {String? address = null}) => bytesToHex(_ethPrivateKey.signPersonalMessageToUint8List(ascii.encode(message))); + + Future fetchEnsAddress(String name) async { + return await _client.checkEnsName(name); + } } diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index f2a235363..abafea0d5 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -267,4 +267,4 @@ class AddressValidator extends TextValidator { return null; } } -} +} \ No newline at end of file diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index c0eab6d65..f36629df3 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -1,13 +1,17 @@ import 'package:cake_wallet/core/address_validator.dart'; import 'package:cake_wallet/core/yat_service.dart'; +import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/entities/openalias_record.dart'; import 'package:cake_wallet/entities/parsed_address.dart'; import 'package:cake_wallet/entities/unstoppable_domain_address.dart'; import 'package:cake_wallet/entities/emoji_string_extension.dart'; +import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/twitter/twitter_api.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/entities/fio_address_provider.dart'; +import 'package:cw_ethereum/ethereum_wallet.dart'; class AddressResolver { AddressResolver({required this.yatService, required this.walletType}); @@ -104,6 +108,15 @@ class AddressResolver { return ParsedAddress.fetchOpenAliasAddress(record: record, name: text); } } + if (text.contains(".")) { + var wallet = getIt.get().wallet!; + if (wallet.type == WalletType.ethereum) { + final address = await ethereum!.fetchEnsAddress(wallet, text); + if (address.isNotEmpty) { + return ParsedAddress.fetchEnsAddress(name: text, address: address); + } + } + } } catch (e) { print(e.toString()); } diff --git a/lib/entities/parsed_address.dart b/lib/entities/parsed_address.dart index 67caebcb5..b8c0a81d5 100644 --- a/lib/entities/parsed_address.dart +++ b/lib/entities/parsed_address.dart @@ -1,7 +1,7 @@ import 'package:cake_wallet/entities/openalias_record.dart'; import 'package:cake_wallet/entities/yat_record.dart'; -enum ParseFrom { unstoppableDomains, openAlias, yatRecord, fio, notParsed, twitter, contact } +enum ParseFrom { unstoppableDomains, openAlias, yatRecord, fio, notParsed, twitter, ens, contact } class ParsedAddress { ParsedAddress({ @@ -77,8 +77,17 @@ class ParsedAddress { ); } + factory ParsedAddress.fetchEnsAddress({required String address, required String name}) { + return ParsedAddress( + addresses: [address], + name: name, + parseFrom: ParseFrom.ens, + ); + } + final List addresses; final String name; final String description; final ParseFrom parseFrom; + } diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index f2db7741e..d3a8862de 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -131,4 +131,9 @@ class CWEthereum extends Ethereum { void updateEtherscanUsageState(WalletBase wallet, bool isEnabled) { (wallet as EthereumWallet).updateEtherscanUsageState(isEnabled); } + + @override + Future fetchEnsAddress(WalletBase wallet, String name) async { + return (wallet as EthereumWallet).fetchEnsAddress(name); + } } diff --git a/lib/src/screens/send/widgets/extract_address_from_parsed.dart b/lib/src/screens/send/widgets/extract_address_from_parsed.dart index d7e0e3d7f..86274f29b 100644 --- a/lib/src/screens/send/widgets/extract_address_from_parsed.dart +++ b/lib/src/screens/send/widgets/extract_address_from_parsed.dart @@ -18,6 +18,11 @@ Future extractAddressFromParsed( content = S.of(context).address_from_domain(parsedAddress.name); address = parsedAddress.addresses.first; break; + case ParseFrom.ens: + title = S.of(context).address_detected; + content = S.of(context).address_from_ens(parsedAddress.name); + address = parsedAddress.addresses.first; + break; case ParseFrom.openAlias: title = S.of(context).address_detected; content = S.of(context).extracted_address_content('${parsedAddress.name} (OpenAlias)'); diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 7c7b0535b..9924dcbc9 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -688,5 +688,6 @@ "onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.", "default_buy_provider": "مزود شراء الافتراضي", "ask_each_time": "اسأل في كل مرة", - "buy_provider_unavailable": "مزود حاليا غير متوفر." + "buy_provider_unavailable": "مزود حاليا غير متوفر.", + "address_from_ens": "هذا ${domain} العنوان من ON ENS" } \ No newline at end of file diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 9f4c21c44..cb848d87e 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -684,5 +684,6 @@ "onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.", "default_buy_provider": "Доставчик по подразбиране купува", "ask_each_time": "Питайте всеки път", - "buy_provider_unavailable": "Понастоящем доставчик не е наличен." + "buy_provider_unavailable": "Понастоящем доставчик не е наличен.", + "address_from_ens": "Този адрес ${domain} е от on ens" } \ No newline at end of file diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 82d0fd9ed..b53a56a3a 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -684,5 +684,6 @@ "onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.", "default_buy_provider": "Výchozí poskytovatel nákupu", "ask_each_time": "Zeptejte se pokaždé", - "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný." + "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.", + "address_from_ens": "Tato adresa je z ${domain} On On ENS" } \ No newline at end of file diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index e5bb7ce51..1776ea68e 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.", "default_buy_provider": "Standard-Kaufanbieter", "ask_each_time": "Jedes Mal fragen", - "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar." + "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.", + "address_from_ens": "Diese Adresse ${domain} stammt von one" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 8cf6e2acb..c26dc260e 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -693,5 +693,6 @@ "default_buy_provider": "Default Buy Provider", "ask_each_time": "Ask each time", "robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.", - "buy_provider_unavailable": "Provider currently unavailable." + "buy_provider_unavailable": "Provider currently unavailable.", + "address_from_ens": "This address is from ${domain} on ENS" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index d84b21b94..1a7a04adf 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.", "default_buy_provider": "Proveedor de compra predeterminado", "ask_each_time": "Pregunta cada vez", - "buy_provider_unavailable": "Proveedor actualmente no disponible." + "buy_provider_unavailable": "Proveedor actualmente no disponible.", + "address_from_ens": "Esta dirección ${domain} es de en ENS" } \ No newline at end of file diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 2daea4733..85e80ab40 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Achetez rapidement la crypto avec de nombreux méthodes de paiement. Disponible dans la plupart des pays. Les écarts et les frais varient.", "default_buy_provider": "Fournisseur d'achat par défaut", "ask_each_time": "Demandez à chaque fois", - "buy_provider_unavailable": "Fournisseur actuellement indisponible." + "buy_provider_unavailable": "Fournisseur actuellement indisponible.", + "address_from_ens": "Cette adresse ${domain} est d'où" } \ No newline at end of file diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 666664ec2..fff3dbbc4 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -670,5 +670,6 @@ "onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.", "default_buy_provider": "Tsohuwar Siyarwa", "ask_each_time": "Tambaya kowane lokaci", - "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu." + "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.", + "address_from_ens": "Wannan adireshin ${domain} yana fitowa ne" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 9504baf36..af444215c 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -692,5 +692,6 @@ "onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।", "default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता", "ask_each_time": "हर बार पूछें", - "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।" + "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।", + "address_from_ens": "यह पता ${domain} ENS से ​​है" } \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 08549439a..106a82dae 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.", "default_buy_provider": "Zadani davatelj kupnje", "ask_each_time": "Pitajte svaki put", - "buy_provider_unavailable": "Davatelj trenutno nije dostupan." + "buy_provider_unavailable": "Davatelj trenutno nije dostupan.", + "address_from_ens": "Ova adresa je ${domain} iz ENS -a" } \ No newline at end of file diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 031777aea..9d3ba7c1c 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -680,5 +680,6 @@ "onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.", "default_buy_provider": "Penyedia beli default", "ask_each_time": "Tanyakan setiap kali", - "buy_provider_unavailable": "Penyedia saat ini tidak tersedia." + "buy_provider_unavailable": "Penyedia saat ini tidak tersedia.", + "address_from_ens": "Alamat ini ${domain} berasal dari ENS" } \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index b14531b75..c74443868 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.", "default_buy_provider": "Provider di acquisto predefinito", "ask_each_time": "Chiedi ogni volta", - "buy_provider_unavailable": "Provider attualmente non disponibile." + "buy_provider_unavailable": "Provider attualmente non disponibile.", + "address_from_ens": "Questo indirizzo ${domain} è da On ENS" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index baf9b8a6d..53931137e 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -692,5 +692,6 @@ "onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。", "default_buy_provider": "デフォルトの購入プロバイダー", "ask_each_time": "毎回尋ねてください", - "buy_provider_unavailable": "現在、プロバイダーは利用できません。" + "buy_provider_unavailable": "現在、プロバイダーは利用できません。", + "address_from_ens": "このアドレスは ${domain} onsからです" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 3b9ed1e74..e023221d9 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -692,5 +692,6 @@ "onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.", "default_buy_provider": "기본 구매 제공자", "ask_each_time": "매번 물어보십시오", - "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다." + "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.", + "address_from_ens": "이 주소는 ${domain} ON ENS에서 나온 것입니다" } \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 04d2f58ef..7868de431 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -690,5 +690,6 @@ "onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။", "default_buy_provider": "Default Provider ကိုဝယ်ပါ", "ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ", - "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။" + "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။", + "address_from_ens": "ဒီလိပ်စာ ${domain} ens ကနေဖြစ်ပါတယ်" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 676653dcd..109caf470 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.", "default_buy_provider": "Standaard Koopprovider", "ask_each_time": "Vraag het elke keer", - "buy_provider_unavailable": "Provider momenteel niet beschikbaar." + "buy_provider_unavailable": "Provider momenteel niet beschikbaar.", + "address_from_ens": "Dit adres ${domain} is van ON ENS" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index cae3d0075..0cd53df66 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.", "default_buy_provider": "Domyślny dostawca zakupu", "ask_each_time": "Zapytaj za każdym razem", - "buy_provider_unavailable": "Dostawca obecnie niedostępny." + "buy_provider_unavailable": "Dostawca obecnie niedostępny.", + "address_from_ens": "Ten adres ${domain} pochodzi z end" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 46c62c590..293afbcef 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -691,5 +691,6 @@ "onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.", "default_buy_provider": "Provedor de compra padrão", "ask_each_time": "Pergunte cada vez", - "buy_provider_unavailable": "Provedor atualmente indisponível." + "buy_provider_unavailable": "Provedor atualmente indisponível.", + "address_from_ens": "Este endereço ${domain} é de ON ENS" } \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 523b4c77e..92f688ef5 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.", "default_buy_provider": "По умолчанию поставщик покупки", "ask_each_time": "Спросите каждый раз", - "buy_provider_unavailable": "Поставщик в настоящее время недоступен." + "buy_provider_unavailable": "Поставщик в настоящее время недоступен.", + "address_from_ens": "Этот адрес ${domain} с On ons" } \ No newline at end of file diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 68c13dd2d..1e70d2dfd 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -690,5 +690,6 @@ "onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป", "default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น", "ask_each_time": "ถามทุกครั้ง", - "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน" + "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน", + "address_from_ens": "ที่อยู่นี้มาจาก ${domain} ENS" } \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 2694bb1bc..ae3d2fddd 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -690,5 +690,6 @@ "onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.", "default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı", "ask_each_time": "Her seferinde sor", - "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor." + "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.", + "address_from_ens": "Bu adres ${domain} ON ENS'ten" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 38fe226b1..b27076932 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.", "default_buy_provider": "Постачальник покупки за замовчуванням", "ask_each_time": "Запитайте кожен раз", - "buy_provider_unavailable": "В даний час постачальник недоступний." + "buy_provider_unavailable": "В даний час постачальник недоступний.", + "address_from_ens": "Ця адреса ${domain} з ENS" } \ No newline at end of file diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 1ecdb5c0e..ca2ccbb85 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -684,5 +684,6 @@ "onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔", "default_buy_provider": "پہلے سے طے شدہ خریدنے والا", "ask_each_time": "ہر بار پوچھیں", - "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔" + "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔", + "address_from_ens": "یہ پتہ آن ${domain}پر ہے" } \ No newline at end of file diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 62909f128..3df81d158 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -686,5 +686,6 @@ "onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.", "default_buy_provider": "Aiyipada Ra Olupese", "ask_each_time": "Beere lọwọ kọọkan", - "buy_provider_unavailable": "Olupese lọwọlọwọ ko si." + "buy_provider_unavailable": "Olupese lọwọlọwọ ko si.", + "address_from_ens": "Adirẹsi yii ti ${domain} wa ni ens" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 24295e0ca..4d76bd838 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -691,5 +691,6 @@ "onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。", "default_buy_provider": "默认购买提供商", "ask_each_time": "每次问", - "buy_provider_unavailable": "提供者目前不可用。" + "buy_provider_unavailable": "提供者目前不可用。", + "address_from_ens": "此地址${domain}来自ENS" } \ No newline at end of file diff --git a/tool/configure.dart b/tool/configure.dart index 5172f4244..19e8ef327 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -18,8 +18,10 @@ Future main(List args) async { await generateMonero(hasMonero); await generateHaven(hasHaven); await generateEthereum(hasEthereum); - await generatePubspec(hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum); - await generateWalletTypes(hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum); + await generatePubspec( + hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum); + await generateWalletTypes( + hasMonero: hasMonero, hasBitcoin: hasBitcoin, hasHaven: hasHaven, hasEthereum: hasEthereum); } Future generateBitcoin(bool hasImplementation) async { @@ -88,12 +90,12 @@ abstract class Bitcoin { const bitcoinEmptyDefinition = 'Bitcoin? bitcoin;\n'; const bitcoinCWDefinition = 'Bitcoin? bitcoin = CWBitcoin();\n'; - final output = '$bitcoinCommonHeaders\n' - + (hasImplementation ? '$bitcoinCWHeaders\n' : '\n') - + (hasImplementation ? '$bitcoinCwPart\n\n' : '\n') - + (hasImplementation ? bitcoinCWDefinition : bitcoinEmptyDefinition) - + '\n' - + bitcoinContent; + final output = '$bitcoinCommonHeaders\n' + + (hasImplementation ? '$bitcoinCWHeaders\n' : '\n') + + (hasImplementation ? '$bitcoinCwPart\n\n' : '\n') + + (hasImplementation ? bitcoinCWDefinition : bitcoinEmptyDefinition) + + '\n' + + bitcoinContent; if (outputFile.existsSync()) { await outputFile.delete(); @@ -268,12 +270,12 @@ abstract class MoneroAccountList { const moneroEmptyDefinition = 'Monero? monero;\n'; const moneroCWDefinition = 'Monero? monero = CWMonero();\n'; - final output = '$moneroCommonHeaders\n' - + (hasImplementation ? '$moneroCWHeaders\n' : '\n') - + (hasImplementation ? '$moneroCwPart\n\n' : '\n') - + (hasImplementation ? moneroCWDefinition : moneroEmptyDefinition) - + '\n' - + moneroContent; + final output = '$moneroCommonHeaders\n' + + (hasImplementation ? '$moneroCWHeaders\n' : '\n') + + (hasImplementation ? '$moneroCwPart\n\n' : '\n') + + (hasImplementation ? moneroCWDefinition : moneroEmptyDefinition) + + '\n' + + moneroContent; if (outputFile.existsSync()) { await outputFile.delete(); @@ -283,7 +285,6 @@ abstract class MoneroAccountList { } Future generateHaven(bool hasImplementation) async { - final outputFile = File(havenOutputPath); const havenCommonHeaders = """ import 'package:mobx/mobx.dart'; @@ -448,12 +449,12 @@ abstract class HavenAccountList { const havenEmptyDefinition = 'Haven? haven;\n'; const havenCWDefinition = 'Haven? haven = CWHaven();\n'; - final output = '$havenCommonHeaders\n' - + (hasImplementation ? '$havenCWHeaders\n' : '\n') - + (hasImplementation ? '$havenCwPart\n\n' : '\n') - + (hasImplementation ? havenCWDefinition : havenEmptyDefinition) - + '\n' - + havenContent; + final output = '$havenCommonHeaders\n' + + (hasImplementation ? '$havenCWHeaders\n' : '\n') + + (hasImplementation ? '$havenCwPart\n\n' : '\n') + + (hasImplementation ? havenCWDefinition : havenEmptyDefinition) + + '\n' + + havenContent; if (outputFile.existsSync()) { await outputFile.delete(); @@ -463,7 +464,6 @@ abstract class HavenAccountList { } Future generateEthereum(bool hasImplementation) async { - final outputFile = File(ethereumOutputPath); const ethereumCommonHeaders = """ import 'package:cake_wallet/view_model/send/output.dart'; @@ -525,18 +525,19 @@ abstract class Ethereum { CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); void updateEtherscanUsageState(WalletBase wallet, bool isEnabled); + Future fetchEnsAddress(WalletBase wallet, String name); } """; const ethereumEmptyDefinition = 'Ethereum? ethereum;\n'; const ethereumCWDefinition = 'Ethereum? ethereum = CWEthereum();\n'; - final output = '$ethereumCommonHeaders\n' - + (hasImplementation ? '$ethereumCWHeaders\n' : '\n') - + (hasImplementation ? '$ethereumCwPart\n\n' : '\n') - + (hasImplementation ? ethereumCWDefinition : ethereumEmptyDefinition) - + '\n' - + ethereumContent; + final output = '$ethereumCommonHeaders\n' + + (hasImplementation ? '$ethereumCWHeaders\n' : '\n') + + (hasImplementation ? '$ethereumCwPart\n\n' : '\n') + + (hasImplementation ? ethereumCWDefinition : ethereumEmptyDefinition) + + '\n' + + ethereumContent; if (outputFile.existsSync()) { await outputFile.delete(); @@ -545,8 +546,12 @@ abstract class Ethereum { await outputFile.writeAsString(output); } -Future generatePubspec({required bool hasMonero, required bool hasBitcoin, required bool hasHaven, required bool hasEthereum}) async { - const cwCore = """ +Future generatePubspec( + {required bool hasMonero, + required bool hasBitcoin, + required bool hasHaven, + required bool hasEthereum}) async { + const cwCore = """ cw_core: path: ./cw_core """; @@ -598,7 +603,7 @@ Future generatePubspec({required bool hasMonero, required bool hasBitcoin, inputLines.insertAll(dependenciesIndex + 1, outputLines); final outputContent = inputLines.join('\n'); final outputFile = File(pubspecOutputPath); - + if (outputFile.existsSync()) { await outputFile.delete(); } @@ -606,9 +611,13 @@ Future generatePubspec({required bool hasMonero, required bool hasBitcoin, await outputFile.writeAsString(outputContent); } -Future generateWalletTypes({required bool hasMonero, required bool hasBitcoin, required bool hasHaven, required bool hasEthereum}) async { +Future generateWalletTypes( + {required bool hasMonero, + required bool hasBitcoin, + required bool hasHaven, + required bool hasEthereum}) async { final walletTypesFile = File(walletTypesPath); - + if (walletTypesFile.existsSync()) { await walletTypesFile.delete(); } From 147abc620390de6d4477b3cd48b5235fd292ecc0 Mon Sep 17 00:00:00 2001 From: fosse Date: Thu, 21 Sep 2023 10:16:57 -0400 Subject: [PATCH 05/20] small fix --- lib/entities/parse_address_from_domain.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index f36629df3..f2c2f5b3e 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -11,7 +11,6 @@ import 'package:cake_wallet/twitter/twitter_api.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/entities/fio_address_provider.dart'; -import 'package:cw_ethereum/ethereum_wallet.dart'; class AddressResolver { AddressResolver({required this.yatService, required this.walletType}); From f8cb8657f6c59bc1e9860d46fe462ac2171ee218 Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 22 Sep 2023 09:50:09 -0400 Subject: [PATCH 06/20] remove bad translations --- res/values/strings_ar.arb | 3 +-- res/values/strings_bg.arb | 3 +-- res/values/strings_cs.arb | 3 +-- res/values/strings_de.arb | 3 +-- res/values/strings_en.arb | 3 +-- res/values/strings_es.arb | 3 +-- res/values/strings_fr.arb | 3 +-- res/values/strings_ha.arb | 3 +-- res/values/strings_hi.arb | 3 +-- res/values/strings_hr.arb | 3 +-- res/values/strings_id.arb | 3 +-- res/values/strings_it.arb | 3 +-- res/values/strings_ja.arb | 3 +-- res/values/strings_ko.arb | 3 +-- res/values/strings_my.arb | 3 +-- res/values/strings_nl.arb | 3 +-- res/values/strings_pl.arb | 3 +-- res/values/strings_pt.arb | 3 +-- res/values/strings_ru.arb | 3 +-- res/values/strings_th.arb | 3 +-- res/values/strings_tr.arb | 3 +-- res/values/strings_uk.arb | 3 +-- res/values/strings_ur.arb | 3 +-- res/values/strings_yo.arb | 3 +-- res/values/strings_zh.arb | 3 +-- 25 files changed, 25 insertions(+), 50 deletions(-) diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 9924dcbc9..7c7b0535b 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -688,6 +688,5 @@ "onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.", "default_buy_provider": "مزود شراء الافتراضي", "ask_each_time": "اسأل في كل مرة", - "buy_provider_unavailable": "مزود حاليا غير متوفر.", - "address_from_ens": "هذا ${domain} العنوان من ON ENS" + "buy_provider_unavailable": "مزود حاليا غير متوفر." } \ No newline at end of file diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index cb848d87e..9f4c21c44 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -684,6 +684,5 @@ "onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.", "default_buy_provider": "Доставчик по подразбиране купува", "ask_each_time": "Питайте всеки път", - "buy_provider_unavailable": "Понастоящем доставчик не е наличен.", - "address_from_ens": "Този адрес ${domain} е от on ens" + "buy_provider_unavailable": "Понастоящем доставчик не е наличен." } \ No newline at end of file diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index b53a56a3a..82d0fd9ed 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -684,6 +684,5 @@ "onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.", "default_buy_provider": "Výchozí poskytovatel nákupu", "ask_each_time": "Zeptejte se pokaždé", - "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.", - "address_from_ens": "Tato adresa je z ${domain} On On ENS" + "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný." } \ No newline at end of file diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 1776ea68e..e5bb7ce51 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.", "default_buy_provider": "Standard-Kaufanbieter", "ask_each_time": "Jedes Mal fragen", - "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.", - "address_from_ens": "Diese Adresse ${domain} stammt von one" + "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar." } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index c26dc260e..8cf6e2acb 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -693,6 +693,5 @@ "default_buy_provider": "Default Buy Provider", "ask_each_time": "Ask each time", "robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.", - "buy_provider_unavailable": "Provider currently unavailable.", - "address_from_ens": "This address is from ${domain} on ENS" + "buy_provider_unavailable": "Provider currently unavailable." } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 1a7a04adf..d84b21b94 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.", "default_buy_provider": "Proveedor de compra predeterminado", "ask_each_time": "Pregunta cada vez", - "buy_provider_unavailable": "Proveedor actualmente no disponible.", - "address_from_ens": "Esta dirección ${domain} es de en ENS" + "buy_provider_unavailable": "Proveedor actualmente no disponible." } \ No newline at end of file diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 85e80ab40..2daea4733 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Achetez rapidement la crypto avec de nombreux méthodes de paiement. Disponible dans la plupart des pays. Les écarts et les frais varient.", "default_buy_provider": "Fournisseur d'achat par défaut", "ask_each_time": "Demandez à chaque fois", - "buy_provider_unavailable": "Fournisseur actuellement indisponible.", - "address_from_ens": "Cette adresse ${domain} est d'où" + "buy_provider_unavailable": "Fournisseur actuellement indisponible." } \ No newline at end of file diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index fff3dbbc4..666664ec2 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -670,6 +670,5 @@ "onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.", "default_buy_provider": "Tsohuwar Siyarwa", "ask_each_time": "Tambaya kowane lokaci", - "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.", - "address_from_ens": "Wannan adireshin ${domain} yana fitowa ne" + "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu." } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index af444215c..9504baf36 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -692,6 +692,5 @@ "onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।", "default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता", "ask_each_time": "हर बार पूछें", - "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।", - "address_from_ens": "यह पता ${domain} ENS से ​​है" + "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।" } \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 106a82dae..08549439a 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.", "default_buy_provider": "Zadani davatelj kupnje", "ask_each_time": "Pitajte svaki put", - "buy_provider_unavailable": "Davatelj trenutno nije dostupan.", - "address_from_ens": "Ova adresa je ${domain} iz ENS -a" + "buy_provider_unavailable": "Davatelj trenutno nije dostupan." } \ No newline at end of file diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 9d3ba7c1c..031777aea 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -680,6 +680,5 @@ "onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.", "default_buy_provider": "Penyedia beli default", "ask_each_time": "Tanyakan setiap kali", - "buy_provider_unavailable": "Penyedia saat ini tidak tersedia.", - "address_from_ens": "Alamat ini ${domain} berasal dari ENS" + "buy_provider_unavailable": "Penyedia saat ini tidak tersedia." } \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index c74443868..b14531b75 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.", "default_buy_provider": "Provider di acquisto predefinito", "ask_each_time": "Chiedi ogni volta", - "buy_provider_unavailable": "Provider attualmente non disponibile.", - "address_from_ens": "Questo indirizzo ${domain} è da On ENS" + "buy_provider_unavailable": "Provider attualmente non disponibile." } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 53931137e..baf9b8a6d 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -692,6 +692,5 @@ "onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。", "default_buy_provider": "デフォルトの購入プロバイダー", "ask_each_time": "毎回尋ねてください", - "buy_provider_unavailable": "現在、プロバイダーは利用できません。", - "address_from_ens": "このアドレスは ${domain} onsからです" + "buy_provider_unavailable": "現在、プロバイダーは利用できません。" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index e023221d9..3b9ed1e74 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -692,6 +692,5 @@ "onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.", "default_buy_provider": "기본 구매 제공자", "ask_each_time": "매번 물어보십시오", - "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.", - "address_from_ens": "이 주소는 ${domain} ON ENS에서 나온 것입니다" + "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다." } \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 7868de431..04d2f58ef 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -690,6 +690,5 @@ "onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။", "default_buy_provider": "Default Provider ကိုဝယ်ပါ", "ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ", - "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။", - "address_from_ens": "ဒီလိပ်စာ ${domain} ens ကနေဖြစ်ပါတယ်" + "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 109caf470..676653dcd 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.", "default_buy_provider": "Standaard Koopprovider", "ask_each_time": "Vraag het elke keer", - "buy_provider_unavailable": "Provider momenteel niet beschikbaar.", - "address_from_ens": "Dit adres ${domain} is van ON ENS" + "buy_provider_unavailable": "Provider momenteel niet beschikbaar." } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 0cd53df66..cae3d0075 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.", "default_buy_provider": "Domyślny dostawca zakupu", "ask_each_time": "Zapytaj za każdym razem", - "buy_provider_unavailable": "Dostawca obecnie niedostępny.", - "address_from_ens": "Ten adres ${domain} pochodzi z end" + "buy_provider_unavailable": "Dostawca obecnie niedostępny." } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 293afbcef..46c62c590 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -691,6 +691,5 @@ "onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.", "default_buy_provider": "Provedor de compra padrão", "ask_each_time": "Pergunte cada vez", - "buy_provider_unavailable": "Provedor atualmente indisponível.", - "address_from_ens": "Este endereço ${domain} é de ON ENS" + "buy_provider_unavailable": "Provedor atualmente indisponível." } \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 92f688ef5..523b4c77e 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.", "default_buy_provider": "По умолчанию поставщик покупки", "ask_each_time": "Спросите каждый раз", - "buy_provider_unavailable": "Поставщик в настоящее время недоступен.", - "address_from_ens": "Этот адрес ${domain} с On ons" + "buy_provider_unavailable": "Поставщик в настоящее время недоступен." } \ No newline at end of file diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 1e70d2dfd..68c13dd2d 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -690,6 +690,5 @@ "onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป", "default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น", "ask_each_time": "ถามทุกครั้ง", - "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน", - "address_from_ens": "ที่อยู่นี้มาจาก ${domain} ENS" + "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน" } \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index ae3d2fddd..2694bb1bc 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -690,6 +690,5 @@ "onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.", "default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı", "ask_each_time": "Her seferinde sor", - "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.", - "address_from_ens": "Bu adres ${domain} ON ENS'ten" + "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor." } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index b27076932..38fe226b1 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -692,6 +692,5 @@ "onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.", "default_buy_provider": "Постачальник покупки за замовчуванням", "ask_each_time": "Запитайте кожен раз", - "buy_provider_unavailable": "В даний час постачальник недоступний.", - "address_from_ens": "Ця адреса ${domain} з ENS" + "buy_provider_unavailable": "В даний час постачальник недоступний." } \ No newline at end of file diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index ca2ccbb85..1ecdb5c0e 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -684,6 +684,5 @@ "onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔", "default_buy_provider": "پہلے سے طے شدہ خریدنے والا", "ask_each_time": "ہر بار پوچھیں", - "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔", - "address_from_ens": "یہ پتہ آن ${domain}پر ہے" + "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔" } \ No newline at end of file diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 3df81d158..62909f128 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -686,6 +686,5 @@ "onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.", "default_buy_provider": "Aiyipada Ra Olupese", "ask_each_time": "Beere lọwọ kọọkan", - "buy_provider_unavailable": "Olupese lọwọlọwọ ko si.", - "address_from_ens": "Adirẹsi yii ti ${domain} wa ni ens" + "buy_provider_unavailable": "Olupese lọwọlọwọ ko si." } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 4d76bd838..24295e0ca 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -691,6 +691,5 @@ "onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。", "default_buy_provider": "默认购买提供商", "ask_each_time": "每次问", - "buy_provider_unavailable": "提供者目前不可用。", - "address_from_ens": "此地址${domain}来自ENS" + "buy_provider_unavailable": "提供者目前不可用。" } \ No newline at end of file From 14d3401137e44c34bcc93e323c1c2d55899e4373 Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 22 Sep 2023 09:56:50 -0400 Subject: [PATCH 07/20] translation fixes --- res/values/strings_ar.arb | 3 ++- res/values/strings_bg.arb | 3 ++- res/values/strings_cs.arb | 3 ++- res/values/strings_de.arb | 3 ++- res/values/strings_en.arb | 3 ++- res/values/strings_es.arb | 3 ++- res/values/strings_fr.arb | 3 ++- res/values/strings_ha.arb | 3 ++- res/values/strings_hi.arb | 3 ++- res/values/strings_hr.arb | 3 ++- res/values/strings_id.arb | 3 ++- res/values/strings_it.arb | 3 ++- res/values/strings_ja.arb | 3 ++- res/values/strings_ko.arb | 3 ++- res/values/strings_my.arb | 3 ++- res/values/strings_nl.arb | 3 ++- res/values/strings_pl.arb | 3 ++- res/values/strings_pt.arb | 3 ++- res/values/strings_ru.arb | 3 ++- res/values/strings_th.arb | 3 ++- res/values/strings_tl.arb | 3 ++- res/values/strings_tr.arb | 3 ++- res/values/strings_uk.arb | 3 ++- res/values/strings_ur.arb | 3 ++- res/values/strings_yo.arb | 3 ++- res/values/strings_zh.arb | 3 ++- tool/utils/translation/translation_constants.dart | 2 +- 27 files changed, 53 insertions(+), 27 deletions(-) diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 7c7b0535b..505ceaf41 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -688,5 +688,6 @@ "onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.", "default_buy_provider": "مزود شراء الافتراضي", "ask_each_time": "اسأل في كل مرة", - "buy_provider_unavailable": "مزود حاليا غير متوفر." + "buy_provider_unavailable": "مزود حاليا غير متوفر.", + "address_from_ens": "هذا العنوان من ${domain} على ENS" } \ No newline at end of file diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 9f4c21c44..b30333d26 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -684,5 +684,6 @@ "onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.", "default_buy_provider": "Доставчик по подразбиране купува", "ask_each_time": "Питайте всеки път", - "buy_provider_unavailable": "Понастоящем доставчик не е наличен." + "buy_provider_unavailable": "Понастоящем доставчик не е наличен.", + "address_from_ens": "Този адрес е от ${domain} на ENS" } \ No newline at end of file diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 82d0fd9ed..0c9c94300 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -684,5 +684,6 @@ "onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.", "default_buy_provider": "Výchozí poskytovatel nákupu", "ask_each_time": "Zeptejte se pokaždé", - "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný." + "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.", + "address_from_ens": "Tato adresa pochází z ${domain} na ENS" } \ No newline at end of file diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index e5bb7ce51..802dd7d97 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.", "default_buy_provider": "Standard-Kaufanbieter", "ask_each_time": "Jedes Mal fragen", - "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar." + "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.", + "address_from_ens": "Diese Adresse stammt von ${domain} auf Ens" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 8cf6e2acb..c26dc260e 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -693,5 +693,6 @@ "default_buy_provider": "Default Buy Provider", "ask_each_time": "Ask each time", "robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.", - "buy_provider_unavailable": "Provider currently unavailable." + "buy_provider_unavailable": "Provider currently unavailable.", + "address_from_ens": "This address is from ${domain} on ENS" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index d84b21b94..91e9838b9 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.", "default_buy_provider": "Proveedor de compra predeterminado", "ask_each_time": "Pregunta cada vez", - "buy_provider_unavailable": "Proveedor actualmente no disponible." + "buy_provider_unavailable": "Proveedor actualmente no disponible.", + "address_from_ens": "Esta dirección es de ${domain} en ENS" } \ No newline at end of file diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 2daea4733..b3d0cae81 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Achetez rapidement la crypto avec de nombreux méthodes de paiement. Disponible dans la plupart des pays. Les écarts et les frais varient.", "default_buy_provider": "Fournisseur d'achat par défaut", "ask_each_time": "Demandez à chaque fois", - "buy_provider_unavailable": "Fournisseur actuellement indisponible." + "buy_provider_unavailable": "Fournisseur actuellement indisponible.", + "address_from_ens": "Cette adresse provient de ${domain} sur ENS" } \ No newline at end of file diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 666664ec2..25ffad55f 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -670,5 +670,6 @@ "onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.", "default_buy_provider": "Tsohuwar Siyarwa", "ask_each_time": "Tambaya kowane lokaci", - "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu." + "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.", + "address_from_ens": "Wannan adireshin daga ${domain} Don tabbatarwa" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 9504baf36..cd8f83224 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -692,5 +692,6 @@ "onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।", "default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता", "ask_each_time": "हर बार पूछें", - "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।" + "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।", + "address_from_ens": "यह पता ENS पर ${domain} से है" } \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 08549439a..da9b0d561 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.", "default_buy_provider": "Zadani davatelj kupnje", "ask_each_time": "Pitajte svaki put", - "buy_provider_unavailable": "Davatelj trenutno nije dostupan." + "buy_provider_unavailable": "Davatelj trenutno nije dostupan.", + "address_from_ens": "Ova je adresa od ${domain} na ens" } \ No newline at end of file diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 031777aea..c15773e29 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -680,5 +680,6 @@ "onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.", "default_buy_provider": "Penyedia beli default", "ask_each_time": "Tanyakan setiap kali", - "buy_provider_unavailable": "Penyedia saat ini tidak tersedia." + "buy_provider_unavailable": "Penyedia saat ini tidak tersedia.", + "address_from_ens": "Alamat ini dari ${domain} di ENS" } \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index b14531b75..9ad4ad963 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.", "default_buy_provider": "Provider di acquisto predefinito", "ask_each_time": "Chiedi ogni volta", - "buy_provider_unavailable": "Provider attualmente non disponibile." + "buy_provider_unavailable": "Provider attualmente non disponibile.", + "address_from_ens": "Questo indirizzo è da ${domain} su ENS" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index baf9b8a6d..8190801f8 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -692,5 +692,6 @@ "onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。", "default_buy_provider": "デフォルトの購入プロバイダー", "ask_each_time": "毎回尋ねてください", - "buy_provider_unavailable": "現在、プロバイダーは利用できません。" + "buy_provider_unavailable": "現在、プロバイダーは利用できません。", + "address_from_ens": "このアドレスはENSの${domain}からです" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 3b9ed1e74..940a2ad7a 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -692,5 +692,6 @@ "onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.", "default_buy_provider": "기본 구매 제공자", "ask_each_time": "매번 물어보십시오", - "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다." + "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.", + "address_from_ens": "이 주소는 ens의 ${domain}에서입니다." } \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 04d2f58ef..a78a5bc0b 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -690,5 +690,6 @@ "onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။", "default_buy_provider": "Default Provider ကိုဝယ်ပါ", "ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ", - "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။" + "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။", + "address_from_ens": "ဒီလိပ်စာက ens အပေါ် {domain} မှဖြစ်ပါတယ်" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 676653dcd..efe307d25 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.", "default_buy_provider": "Standaard Koopprovider", "ask_each_time": "Vraag het elke keer", - "buy_provider_unavailable": "Provider momenteel niet beschikbaar." + "buy_provider_unavailable": "Provider momenteel niet beschikbaar.", + "address_from_ens": "Dit adres is van ${domain} op ENS" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index cae3d0075..f80ff9bfe 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.", "default_buy_provider": "Domyślny dostawca zakupu", "ask_each_time": "Zapytaj za każdym razem", - "buy_provider_unavailable": "Dostawca obecnie niedostępny." + "buy_provider_unavailable": "Dostawca obecnie niedostępny.", + "address_from_ens": "Ten adres pochodzi od ${domain} na ens" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 46c62c590..cdb8d607b 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -691,5 +691,6 @@ "onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.", "default_buy_provider": "Provedor de compra padrão", "ask_each_time": "Pergunte cada vez", - "buy_provider_unavailable": "Provedor atualmente indisponível." + "buy_provider_unavailable": "Provedor atualmente indisponível.", + "address_from_ens": "Este endereço é de ${domain} no ENS" } \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 523b4c77e..31be7e764 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.", "default_buy_provider": "По умолчанию поставщик покупки", "ask_each_time": "Спросите каждый раз", - "buy_provider_unavailable": "Поставщик в настоящее время недоступен." + "buy_provider_unavailable": "Поставщик в настоящее время недоступен.", + "address_from_ens": "Этот адрес от ${domain} на ENS" } \ No newline at end of file diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 68c13dd2d..97905648a 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -690,5 +690,6 @@ "onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป", "default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น", "ask_each_time": "ถามทุกครั้ง", - "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน" + "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน", + "address_from_ens": "ที่อยู่นี้มาจาก ${domain} บน Ens" } \ No newline at end of file diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index d65e36609..23983cac9 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -687,5 +687,6 @@ "support_title_other_links": "Iba pang mga link sa suporta", "support_description_other_links": "Sumali sa aming mga komunidad o maabot sa amin ang aming mga kasosyo sa pamamagitan ng iba pang mga pamamaraan", "select_destination": "Mangyaring piliin ang patutunguhan para sa backup file.", - "save_to_downloads": "I -save sa mga pag -download" + "save_to_downloads": "I -save sa mga pag -download", + "address_from_ens": "Ang address na ito ay mula sa ${domain} sa ens" } \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 2694bb1bc..caa7bf130 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -690,5 +690,6 @@ "onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.", "default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı", "ask_each_time": "Her seferinde sor", - "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor." + "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.", + "address_from_ens": "Bu adres ens'deki ${domain} 'den" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 38fe226b1..8b565ee65 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -692,5 +692,6 @@ "onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.", "default_buy_provider": "Постачальник покупки за замовчуванням", "ask_each_time": "Запитайте кожен раз", - "buy_provider_unavailable": "В даний час постачальник недоступний." + "buy_provider_unavailable": "В даний час постачальник недоступний.", + "address_from_ens": "Ця адреса від ${domain} на ENS" } \ No newline at end of file diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 1ecdb5c0e..41fb0ad9f 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -684,5 +684,6 @@ "onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔", "default_buy_provider": "پہلے سے طے شدہ خریدنے والا", "ask_each_time": "ہر بار پوچھیں", - "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔" + "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔", + "address_from_ens": "یہ پتہ ENS پر ${domain} سے ہے" } \ No newline at end of file diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 62909f128..485f5ed5c 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -686,5 +686,6 @@ "onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.", "default_buy_provider": "Aiyipada Ra Olupese", "ask_each_time": "Beere lọwọ kọọkan", - "buy_provider_unavailable": "Olupese lọwọlọwọ ko si." + "buy_provider_unavailable": "Olupese lọwọlọwọ ko si.", + "address_from_ens": "Adirẹsi yii ni lati ${domain} Lori ens" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 24295e0ca..458b864d4 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -691,5 +691,6 @@ "onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。", "default_buy_provider": "默认购买提供商", "ask_each_time": "每次问", - "buy_provider_unavailable": "提供者目前不可用。" + "buy_provider_unavailable": "提供者目前不可用。", + "address_from_ens": "此地址来自ENS上的${domain}" } \ No newline at end of file diff --git a/tool/utils/translation/translation_constants.dart b/tool/utils/translation/translation_constants.dart index 6563feb32..3a472d8c4 100644 --- a/tool/utils/translation/translation_constants.dart +++ b/tool/utils/translation/translation_constants.dart @@ -1,6 +1,6 @@ const defaultLang = "en"; const langs = [ "ar", "bg", "cs", "de", "en", "es", "fr", "ha", "hi", "hr", "id", "it", - "ja", "ko", "my", "nl", "pl", "pt", "ru", "th", "tr", "uk", "ur", "yo", + "ja", "ko", "my", "nl", "pl", "pt", "ru", "th", "tl", "tr", "uk", "ur", "yo", "zh-cn" // zh, but Google Translate uses zh-cn for Chinese (Simplified) ]; From b5852509f30bae9061e98ff996e22cc90b66871a Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 22 Sep 2023 10:24:16 -0400 Subject: [PATCH 08/20] fix --- res/values/strings_my.arb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index a78a5bc0b..928b9eca6 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -691,5 +691,5 @@ "default_buy_provider": "Default Provider ကိုဝယ်ပါ", "ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ", "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။", - "address_from_ens": "ဒီလိပ်စာက ens အပေါ် {domain} မှဖြစ်ပါတယ်" + "address_from_ens": "ဒီလိပ်စာက ens အပေါ် ${domain} မှဖြစ်ပါတယ်" } \ No newline at end of file From 8b2b3bda16c008cbb0d08b832f6b20c569d7ee42 Mon Sep 17 00:00:00 2001 From: fosse Date: Mon, 25 Sep 2023 09:47:39 -0400 Subject: [PATCH 09/20] ens review fixes --- cw_ethereum/lib/ethereum_client.dart | 4 +++ cw_ethereum/lib/ethereum_wallet.dart | 4 +-- cw_ethereum/pubspec.yaml | 4 --- lib/entities/ens_record.dart | 30 +++++++++++++++++++++ lib/entities/parse_address_from_domain.dart | 20 +++++++------- lib/ethereum/cw_ethereum.dart | 4 +-- pubspec_base.yaml | 4 +++ tool/configure.dart | 2 +- 8 files changed, 52 insertions(+), 20 deletions(-) create mode 100644 lib/entities/ens_record.dart diff --git a/cw_ethereum/lib/ethereum_client.dart b/cw_ethereum/lib/ethereum_client.dart index 4c74f1ec0..d1b3c819c 100644 --- a/cw_ethereum/lib/ethereum_client.dart +++ b/cw_ethereum/lib/ethereum_client.dart @@ -226,6 +226,10 @@ I/flutter ( 4474): Gas Used: 53000 } } + dynamic getWeb3Client() { + return _client; + } + // Future _getDecimalPlacesForContract(DeployedContract contract) async { // final String abi = await rootBundle.loadString("assets/abi_json/erc20_abi.json"); // final contractAbi = ContractAbi.fromJson(abi, "ERC20"); diff --git a/cw_ethereum/lib/ethereum_wallet.dart b/cw_ethereum/lib/ethereum_wallet.dart index b0712d059..db2f60242 100644 --- a/cw_ethereum/lib/ethereum_wallet.dart +++ b/cw_ethereum/lib/ethereum_wallet.dart @@ -509,7 +509,5 @@ abstract class EthereumWalletBase String signMessage(String message, {String? address = null}) => bytesToHex(_ethPrivateKey.signPersonalMessageToUint8List(ascii.encode(message))); - Future fetchEnsAddress(String name) async { - return await _client.checkEnsName(name); - } + dynamic getWeb3Client() => _client; } diff --git a/cw_ethereum/pubspec.yaml b/cw_ethereum/pubspec.yaml index 7e3572e80..5d19589f3 100644 --- a/cw_ethereum/pubspec.yaml +++ b/cw_ethereum/pubspec.yaml @@ -21,10 +21,6 @@ dependencies: hex: ^0.2.0 http: ^1.1.0 shared_preferences: ^2.0.15 - ens_dart: - git: - url: https://github.com/cake-tech/ens_dart.git - ref: main cw_core: path: ../cw_core diff --git a/lib/entities/ens_record.dart b/lib/entities/ens_record.dart new file mode 100644 index 000000000..4ca2bba6f --- /dev/null +++ b/lib/entities/ens_record.dart @@ -0,0 +1,30 @@ +import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:ens_dart/ens_dart.dart'; +import 'package:http/http.dart'; +import 'package:web3dart/web3dart.dart'; + +class EnsRecord { + static Future fetchEnsAddress(String name, {WalletBase? wallet}) async { + Web3Client? _client; + + if (wallet != null && wallet.type == WalletType.ethereum) { + _client = ethereum!.getWeb3Client(wallet) as Web3Client?; + } + + if (_client == null) { + _client = Web3Client("ethereum.publicnode.com", Client()); + } + + try { + final ens = Ens(client: _client); + + final addr = await ens.withName(name).getAddress(); + return addr.hex; + } catch (e) { + print(e); + return ""; + } + } +} diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index f2c2f5b3e..7ea673995 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/core/address_validator.dart'; import 'package:cake_wallet/core/yat_service.dart'; import 'package:cake_wallet/di.dart'; +import 'package:cake_wallet/entities/ens_record.dart'; import 'package:cake_wallet/entities/openalias_record.dart'; import 'package:cake_wallet/entities/parsed_address.dart'; import 'package:cake_wallet/entities/unstoppable_domain_address.dart'; @@ -66,7 +67,7 @@ class AddressResolver { }); final userTweetsText = subString.toString(); final addressFromPinnedTweet = - extractAddressByType(raw: userTweetsText, type: CryptoCurrency.fromString(ticker)); + extractAddressByType(raw: userTweetsText, type: CryptoCurrency.fromString(ticker)); if (addressFromPinnedTweet != null) { return ParsedAddress.fetchTwitterAddress(address: addressFromPinnedTweet, name: text); @@ -99,6 +100,14 @@ class AddressResolver { return ParsedAddress.fetchUnstoppableDomainAddress(address: address, name: text); } + if (text.contains(".")) { + var wallet = getIt.get().wallet!; + final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet); + if (address.isNotEmpty) { + return ParsedAddress.fetchEnsAddress(name: text, address: address); + } + } + if (formattedName.contains(".")) { final txtRecord = await OpenaliasRecord.lookupOpenAliasRecord(formattedName); if (txtRecord != null) { @@ -107,15 +116,6 @@ class AddressResolver { return ParsedAddress.fetchOpenAliasAddress(record: record, name: text); } } - if (text.contains(".")) { - var wallet = getIt.get().wallet!; - if (wallet.type == WalletType.ethereum) { - final address = await ethereum!.fetchEnsAddress(wallet, text); - if (address.isNotEmpty) { - return ParsedAddress.fetchEnsAddress(name: text, address: address); - } - } - } } catch (e) { print(e.toString()); } diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index d3a8862de..23d9287c9 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -133,7 +133,7 @@ class CWEthereum extends Ethereum { } @override - Future fetchEnsAddress(WalletBase wallet, String name) async { - return (wallet as EthereumWallet).fetchEnsAddress(name); + dynamic getWeb3Client(WalletBase wallet) async { + return (wallet as EthereumWallet).getWeb3Client(); } } diff --git a/pubspec_base.yaml b/pubspec_base.yaml index da79a5076..c95a7b5bc 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -82,6 +82,10 @@ dependencies: shared_preferences_android: 2.0.17 url_launcher_android: 6.0.24 sensitive_clipboard: ^1.0.0 + ens_dart: + git: + url: https://github.com/cake-tech/ens_dart.git + ref: main bitcoin_flutter: git: url: https://github.com/cake-tech/bitcoin_flutter.git diff --git a/tool/configure.dart b/tool/configure.dart index 19e8ef327..1f9ddf1c6 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -525,7 +525,7 @@ abstract class Ethereum { CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); void updateEtherscanUsageState(WalletBase wallet, bool isEnabled); - Future fetchEnsAddress(WalletBase wallet, String name); + dynamic getWeb3Client(WalletBase wallet); } """; From 1521a67c0304b70b1f3c8961380b23d09266b02c Mon Sep 17 00:00:00 2001 From: fosse Date: Mon, 25 Sep 2023 09:56:34 -0400 Subject: [PATCH 10/20] fixes for other coin types --- lib/entities/ens_record.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/entities/ens_record.dart b/lib/entities/ens_record.dart index 4ca2bba6f..59ae6b9a4 100644 --- a/lib/entities/ens_record.dart +++ b/lib/entities/ens_record.dart @@ -20,6 +20,24 @@ class EnsRecord { try { final ens = Ens(client: _client); + dynamic res; + + if (wallet != null) { + switch (wallet.type) { + case WalletType.monero: + return await ens.withName(name).getCoinAddress(CoinType.XMR); + case WalletType.bitcoin: + return await ens.withName(name).getCoinAddress(CoinType.BTC); + case WalletType.litecoin: + return await ens.withName(name).getCoinAddress(CoinType.LTC); + case WalletType.haven: + return await ens.withName(name).getCoinAddress(CoinType.XHV); + case WalletType.ethereum: + default: + return (await ens.withName(name).getAddress()).hex; + } + } + final addr = await ens.withName(name).getAddress(); return addr.hex; } catch (e) { From 51bbaf02a5cde449071188d810483acdae0ecf0e Mon Sep 17 00:00:00 2001 From: fosse Date: Mon, 25 Sep 2023 10:01:45 -0400 Subject: [PATCH 11/20] fixes --- cw_ethereum/lib/ethereum_wallet.dart | 2 +- lib/ethereum/cw_ethereum.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cw_ethereum/lib/ethereum_wallet.dart b/cw_ethereum/lib/ethereum_wallet.dart index db2f60242..5f4f669d0 100644 --- a/cw_ethereum/lib/ethereum_wallet.dart +++ b/cw_ethereum/lib/ethereum_wallet.dart @@ -509,5 +509,5 @@ abstract class EthereumWalletBase String signMessage(String message, {String? address = null}) => bytesToHex(_ethPrivateKey.signPersonalMessageToUint8List(ascii.encode(message))); - dynamic getWeb3Client() => _client; + dynamic getWeb3Client() => _client.getWeb3Client(); } diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index 23d9287c9..eab6c26d3 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -133,7 +133,7 @@ class CWEthereum extends Ethereum { } @override - dynamic getWeb3Client(WalletBase wallet) async { + dynamic getWeb3Client(WalletBase wallet) { return (wallet as EthereumWallet).getWeb3Client(); } } From dff1ee2148f5752bb942a7396a8291be143d176e Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 29 Sep 2023 11:24:07 -0400 Subject: [PATCH 12/20] fix default eth node for ens --- lib/entities/ens_record.dart | 2 +- lib/entities/parse_address_from_domain.dart | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/entities/ens_record.dart b/lib/entities/ens_record.dart index 59ae6b9a4..ec5804425 100644 --- a/lib/entities/ens_record.dart +++ b/lib/entities/ens_record.dart @@ -14,7 +14,7 @@ class EnsRecord { } if (_client == null) { - _client = Web3Client("ethereum.publicnode.com", Client()); + _client = Web3Client("https://ethereum.publicnode.com", Client()); } try { diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index 7ea673995..86efec5a7 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -103,6 +103,7 @@ class AddressResolver { if (text.contains(".")) { var wallet = getIt.get().wallet!; final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet); + print(address); if (address.isNotEmpty) { return ParsedAddress.fetchEnsAddress(name: text, address: address); } From 2775e1d9f8b8eb63f81c239c8f4e9f01d674bef9 Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 29 Sep 2023 11:25:10 -0400 Subject: [PATCH 13/20] remove print statement --- lib/entities/parse_address_from_domain.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index 86efec5a7..7ea673995 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -103,7 +103,6 @@ class AddressResolver { if (text.contains(".")) { var wallet = getIt.get().wallet!; final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet); - print(address); if (address.isNotEmpty) { return ParsedAddress.fetchEnsAddress(name: text, address: address); } From c71e4b46891f223357b3062e4c3ed527bc5bbd9d Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 29 Sep 2023 11:28:23 -0400 Subject: [PATCH 14/20] prevent fillint empty addresses --- lib/entities/parse_address_from_domain.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index 7ea673995..b6f92c84b 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -103,7 +103,7 @@ class AddressResolver { if (text.contains(".")) { var wallet = getIt.get().wallet!; final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet); - if (address.isNotEmpty) { + if (address.isNotEmpty && address != "0x0000000000000000000000000000000000000000") { return ParsedAddress.fetchEnsAddress(name: text, address: address); } } From 183d0be20bd12e2c112219aa81832f405ec7e5d9 Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 29 Sep 2023 11:58:19 -0400 Subject: [PATCH 15/20] limit ens to just .eth domains --- lib/entities/parse_address_from_domain.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index b6f92c84b..589063e7b 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -100,7 +100,7 @@ class AddressResolver { return ParsedAddress.fetchUnstoppableDomainAddress(address: address, name: text); } - if (text.contains(".")) { + if (text.endsWith(".eth")) { var wallet = getIt.get().wallet!; final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet); if (address.isNotEmpty && address != "0x0000000000000000000000000000000000000000") { From 2e9b937a6ddf30ad15aaf46aa48cf374882ac7a1 Mon Sep 17 00:00:00 2001 From: fosse Date: Fri, 29 Sep 2023 13:08:02 -0400 Subject: [PATCH 16/20] updated ens message to be consistent with others --- lib/src/screens/send/widgets/extract_address_from_parsed.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/screens/send/widgets/extract_address_from_parsed.dart b/lib/src/screens/send/widgets/extract_address_from_parsed.dart index 86274f29b..2d0847158 100644 --- a/lib/src/screens/send/widgets/extract_address_from_parsed.dart +++ b/lib/src/screens/send/widgets/extract_address_from_parsed.dart @@ -20,7 +20,7 @@ Future extractAddressFromParsed( break; case ParseFrom.ens: title = S.of(context).address_detected; - content = S.of(context).address_from_ens(parsedAddress.name); + content = S.of(context).extracted_address_content('${parsedAddress.name} (ENS)'); address = parsedAddress.addresses.first; break; case ParseFrom.openAlias: From e83063535eb9791e967dfe0e02dcc8a44bdc1b33 Mon Sep 17 00:00:00 2001 From: Justin Ehrenhofer Date: Fri, 29 Sep 2023 12:32:48 -0500 Subject: [PATCH 17/20] clean-up: remove address_from_ens --- res/values/strings_ar.arb | 1 - res/values/strings_bg.arb | 1 - res/values/strings_cs.arb | 1 - res/values/strings_de.arb | 1 - res/values/strings_en.arb | 1 - res/values/strings_es.arb | 1 - res/values/strings_fr.arb | 1 - res/values/strings_ha.arb | 1 - res/values/strings_hi.arb | 1 - res/values/strings_hr.arb | 1 - res/values/strings_id.arb | 1 - res/values/strings_it.arb | 1 - res/values/strings_ja.arb | 1 - res/values/strings_ko.arb | 1 - res/values/strings_my.arb | 1 - res/values/strings_nl.arb | 1 - res/values/strings_pl.arb | 1 - res/values/strings_pt.arb | 1 - res/values/strings_ru.arb | 1 - res/values/strings_th.arb | 1 - res/values/strings_tl.arb | 1 - res/values/strings_tr.arb | 1 - res/values/strings_uk.arb | 1 - res/values/strings_ur.arb | 1 - res/values/strings_yo.arb | 1 - res/values/strings_zh.arb | 1 - 26 files changed, 26 deletions(-) diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 25352ccaa..46a454758 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -689,7 +689,6 @@ "default_buy_provider": "مزود شراء الافتراضي", "ask_each_time": "اسأل في كل مرة", "buy_provider_unavailable": "مزود حاليا غير متوفر.", - "address_from_ens": "هذا العنوان من ${domain} على ENS", "do_not_have_enough_gas_asset": "ليس لديك ما يكفي من ${currency} لإجراء معاملة وفقًا لشروط شبكة blockchain الحالية. أنت بحاجة إلى المزيد من ${currency} لدفع رسوم شبكة blockchain، حتى لو كنت ترسل أصلًا مختلفًا.", "totp_auth_url": " TOTP ﺔﻗﺩﺎﺼﻤﻟ URL ﻥﺍﻮﻨﻋ" } diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index ddb5378c5..39ce6196b 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -685,7 +685,6 @@ "default_buy_provider": "Доставчик по подразбиране купува", "ask_each_time": "Питайте всеки път", "buy_provider_unavailable": "Понастоящем доставчик не е наличен.", - "address_from_ens": "Този адрес е от ${domain} на ENS", "do_not_have_enough_gas_asset": "Нямате достатъчно ${currency}, за да извършите транзакция с текущите условия на блокчейн мрежата. Имате нужда от повече ${currency}, за да платите таксите за блокчейн мрежа, дори ако изпращате различен актив.", "totp_auth_url": "TOTP AUTH URL" } diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index a047a29d7..0c063f0c9 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -685,7 +685,6 @@ "default_buy_provider": "Výchozí poskytovatel nákupu", "ask_each_time": "Zeptejte se pokaždé", "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.", - "address_from_ens": "Tato adresa pochází z ${domain} na ENS", "do_not_have_enough_gas_asset": "Nemáte dostatek ${currency} k provedení transakce s aktuálními podmínkami blockchainové sítě. K placení poplatků za blockchainovou síť potřebujete více ${currency}, i když posíláte jiné aktivum.", "totp_auth_url": "URL AUTH TOTP" } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index a7192d90f..4b2cba6d4 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Standard-Kaufanbieter", "ask_each_time": "Jedes Mal fragen", "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.", - "address_from_ens": "Diese Adresse stammt von ${domain} auf Ens", "do_not_have_enough_gas_asset": "Sie verfügen nicht über genügend ${currency}, um eine Transaktion unter den aktuellen Bedingungen des Blockchain-Netzwerks durchzuführen. Sie benötigen mehr ${currency}, um die Gebühren für das Blockchain-Netzwerk zu bezahlen, auch wenn Sie einen anderen Vermögenswert senden.", "totp_auth_url": "TOTP-Auth-URL" } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 97464efef..7e3b1b55d 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -694,7 +694,6 @@ "ask_each_time": "Ask each time", "robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.", "buy_provider_unavailable": "Provider currently unavailable.", - "address_from_ens": "This address is from ${domain} on ENS", "do_not_have_enough_gas_asset": "You do not have enough ${currency} to make a transaction with the current blockchain network conditions. You need more ${currency} to pay blockchain network fees, even if you are sending a different asset.", "totp_auth_url": "TOTP AUTH URL" } diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 3480ef558..f2b0729f3 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Proveedor de compra predeterminado", "ask_each_time": "Pregunta cada vez", "buy_provider_unavailable": "Proveedor actualmente no disponible.", - "address_from_ens": "Esta dirección es de ${domain} en ENS", "do_not_have_enough_gas_asset": "No tienes suficiente ${currency} para realizar una transacción con las condiciones actuales de la red blockchain. Necesita más ${currency} para pagar las tarifas de la red blockchain, incluso si envía un activo diferente.", "totp_auth_url": "URL de autenticación TOTP" } diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index f5f556c8f..a081727fb 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Fournisseur d'achat par défaut", "ask_each_time": "Demandez à chaque fois", "buy_provider_unavailable": "Fournisseur actuellement indisponible.", - "address_from_ens": "Cette adresse provient de ${domain} sur ENS", "do_not_have_enough_gas_asset": "Vous n'avez pas assez de ${currency} pour effectuer une transaction avec les conditions actuelles du réseau blockchain. Vous avez besoin de plus de ${currency} pour payer les frais du réseau blockchain, même si vous envoyez un actif différent.", "totp_auth_url": "URL D'AUTORISATION TOTP" } diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index c714038d3..68051b5d9 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -671,7 +671,6 @@ "default_buy_provider": "Tsohuwar Siyarwa", "ask_each_time": "Tambaya kowane lokaci", "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.", - "address_from_ens": "Wannan adireshin daga ${domain} Don tabbatarwa", "do_not_have_enough_gas_asset": "Ba ku da isassun ${currency} don yin ma'amala tare da yanayin cibiyar sadarwar blockchain na yanzu. Kuna buƙatar ƙarin ${currency} don biyan kuɗaɗen cibiyar sadarwar blockchain, koda kuwa kuna aika wata kadara daban.", "totp_auth_url": "TOTP AUTH URL" } diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index c3a5cd57d..9f531bb29 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -693,7 +693,6 @@ "default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता", "ask_each_time": "हर बार पूछें", "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।", - "address_from_ens": "यह पता ENS पर ${domain} से है", "do_not_have_enough_gas_asset": "वर्तमान ब्लॉकचेन नेटवर्क स्थितियों में लेनदेन करने के लिए आपके पास पर्याप्त ${currency} नहीं है। ब्लॉकचेन नेटवर्क शुल्क का भुगतान करने के लिए आपको अधिक ${currency} की आवश्यकता है, भले ही आप एक अलग संपत्ति भेज रहे हों।", "totp_auth_url": "TOTP प्रामाणिक यूआरएल" } diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index c8d86f778..4b56ef344 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Zadani davatelj kupnje", "ask_each_time": "Pitajte svaki put", "buy_provider_unavailable": "Davatelj trenutno nije dostupan.", - "address_from_ens": "Ova je adresa od ${domain} na ens", "do_not_have_enough_gas_asset": "Nemate dovoljno ${currency} da izvršite transakciju s trenutačnim uvjetima blockchain mreže. Trebate više ${currency} da platite naknade za blockchain mrežu, čak i ako šaljete drugu imovinu.", "totp_auth_url": "TOTP AUTH URL" } \ No newline at end of file diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index f7f955e8d..6200559e3 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -681,7 +681,6 @@ "default_buy_provider": "Penyedia beli default", "ask_each_time": "Tanyakan setiap kali", "buy_provider_unavailable": "Penyedia saat ini tidak tersedia.", - "address_from_ens": "Alamat ini dari ${domain} di ENS", "do_not_have_enough_gas_asset": "Anda tidak memiliki cukup ${currency} untuk melakukan transaksi dengan kondisi jaringan blockchain saat ini. Anda memerlukan lebih banyak ${currency} untuk membayar biaya jaringan blockchain, meskipun Anda mengirimkan aset yang berbeda.", "totp_auth_url": "URL Otentikasi TOTP" } \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 325a7af23..e3fd1b94b 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Provider di acquisto predefinito", "ask_each_time": "Chiedi ogni volta", "buy_provider_unavailable": "Provider attualmente non disponibile.", - "address_from_ens": "Questo indirizzo è da ${domain} su ENS", "do_not_have_enough_gas_asset": "Non hai abbastanza ${currency} per effettuare una transazione con le attuali condizioni della rete blockchain. Hai bisogno di più ${currency} per pagare le commissioni della rete blockchain, anche se stai inviando una risorsa diversa.", "totp_auth_url": "URL DI AUT. TOTP" } diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 6ae012197..8dbf429c5 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -693,7 +693,6 @@ "default_buy_provider": "デフォルトの購入プロバイダー", "ask_each_time": "毎回尋ねてください", "buy_provider_unavailable": "現在、プロバイダーは利用できません。", - "address_from_ens": "このアドレスはENSの${domain}からです", "do_not_have_enough_gas_asset": "現在のブロックチェーン ネットワークの状況では、トランザクションを行うのに十分な ${currency} がありません。別のアセットを送信する場合でも、ブロックチェーン ネットワーク料金を支払うにはさらに ${currency} が必要です。", "totp_auth_url": "TOTP認証URL" } diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 2264bc778..da9b99c2b 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -693,7 +693,6 @@ "default_buy_provider": "기본 구매 제공자", "ask_each_time": "매번 물어보십시오", "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.", - "address_from_ens": "이 주소는 ens의 ${domain}에서입니다.", "do_not_have_enough_gas_asset": "현재 블록체인 네트워크 조건으로 거래를 하기에는 ${currency}이(가) 충분하지 않습니다. 다른 자산을 보내더라도 블록체인 네트워크 수수료를 지불하려면 ${currency}가 더 필요합니다.", "totp_auth_url": "TOTP 인증 URL" } diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 62edd91ed..043484feb 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -691,7 +691,6 @@ "default_buy_provider": "Default Provider ကိုဝယ်ပါ", "ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ", "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။", - "address_from_ens": "ဒီလိပ်စာက ens အပေါ် ${domain} မှဖြစ်ပါတယ်", "do_not_have_enough_gas_asset": "လက်ရှိ blockchain ကွန်ရက်အခြေအနေများနှင့် အရောင်းအဝယ်ပြုလုပ်ရန် သင့်တွင် ${currency} လုံလောက်မှုမရှိပါ။ သင်သည် မတူညီသော ပိုင်ဆိုင်မှုတစ်ခုကို ပေးပို့နေသော်လည်း blockchain ကွန်ရက်အခကြေးငွေကို ပေးဆောင်ရန် သင်သည် နောက်ထပ် ${currency} လိုအပ်ပါသည်။", "totp_auth_url": "TOTP AUTH URL" } diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 5f5a5496b..2d9f3655e 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Standaard Koopprovider", "ask_each_time": "Vraag het elke keer", "buy_provider_unavailable": "Provider momenteel niet beschikbaar.", - "address_from_ens": "Dit adres is van ${domain} op ENS", "do_not_have_enough_gas_asset": "U heeft niet genoeg ${currency} om een transactie uit te voeren met de huidige blockchain-netwerkomstandigheden. U heeft meer ${currency} nodig om blockchain-netwerkkosten te betalen, zelfs als u een ander item verzendt.", "totp_auth_url": "TOTP AUTH-URL" } diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 84beb2ff1..6f3a41d0b 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Domyślny dostawca zakupu", "ask_each_time": "Zapytaj za każdym razem", "buy_provider_unavailable": "Dostawca obecnie niedostępny.", - "address_from_ens": "Ten adres pochodzi od ${domain} na ens", "do_not_have_enough_gas_asset": "Nie masz wystarczającej ilości ${currency}, aby dokonać transakcji przy bieżących warunkach sieci blockchain. Potrzebujesz więcej ${currency}, aby uiścić opłaty za sieć blockchain, nawet jeśli wysyłasz inny zasób.", "totp_auth_url": "Adres URL TOTP AUTH" } diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index dd6d0c297..ea442420f 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -692,7 +692,6 @@ "default_buy_provider": "Provedor de compra padrão", "ask_each_time": "Pergunte cada vez", "buy_provider_unavailable": "Provedor atualmente indisponível.", - "address_from_ens": "Este endereço é de ${domain} no ENS", "do_not_have_enough_gas_asset": "Você não tem ${currency} suficiente para fazer uma transação com as condições atuais da rede blockchain. Você precisa de mais ${currency} para pagar as taxas da rede blockchain, mesmo se estiver enviando um ativo diferente.", "totp_auth_url": "URL de autenticação TOTP" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 5678da6a2..5e70bc544 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -693,7 +693,6 @@ "default_buy_provider": "По умолчанию поставщик покупки", "ask_each_time": "Спросите каждый раз", "buy_provider_unavailable": "Поставщик в настоящее время недоступен.", - "address_from_ens": "Этот адрес от ${domain} на ENS", "do_not_have_enough_gas_asset": "У вас недостаточно ${currency} для совершения транзакции при текущих условиях сети блокчейн. Вам нужно больше ${currency} для оплаты комиссий за сеть блокчейна, даже если вы отправляете другой актив.", "totp_auth_url": "URL-адрес TOTP-АВТОРИЗАЦИИ" } diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 1c540c2f8..8778802a9 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -691,7 +691,6 @@ "default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น", "ask_each_time": "ถามทุกครั้ง", "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน", - "address_from_ens": "ที่อยู่นี้มาจาก ${domain} บน Ens", "do_not_have_enough_gas_asset": "คุณมี ${currency} ไม่เพียงพอที่จะทำธุรกรรมกับเงื่อนไขเครือข่ายบล็อคเชนในปัจจุบัน คุณต้องมี ${currency} เพิ่มขึ้นเพื่อชำระค่าธรรมเนียมเครือข่ายบล็อคเชน แม้ว่าคุณจะส่งสินทรัพย์อื่นก็ตาม", "totp_auth_url": "URL การตรวจสอบสิทธิ์ TOTP" } diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 344203165..18c52aa83 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -688,7 +688,6 @@ "support_description_other_links": "Sumali sa aming mga komunidad o maabot sa amin ang aming mga kasosyo sa pamamagitan ng iba pang mga pamamaraan", "select_destination": "Mangyaring piliin ang patutunguhan para sa backup file.", "save_to_downloads": "I -save sa mga pag -download", - "address_from_ens": "Ang address na ito ay mula sa ${domain} sa ens", "do_not_have_enough_gas_asset": "Wala kang sapat na ${currency} para gumawa ng transaksyon sa kasalukuyang kundisyon ng network ng blockchain. Kailangan mo ng higit pang ${currency} upang magbayad ng mga bayarin sa network ng blockchain, kahit na nagpapadala ka ng ibang asset.", "totp_auth_url": "TOTP AUTH URL" } \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 573c54d9f..fa4568e93 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -691,7 +691,6 @@ "default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı", "ask_each_time": "Her seferinde sor", "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.", - "address_from_ens": "Bu adres ens'deki ${domain} 'den", "do_not_have_enough_gas_asset": "Mevcut blockchain ağ koşullarıyla işlem yapmak için yeterli ${currency} paranız yok. Farklı bir varlık gönderiyor olsanız bile blockchain ağ ücretlerini ödemek için daha fazla ${currency} miktarına ihtiyacınız var.", "totp_auth_url": "TOTP YETKİ URL'si" } diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index cc88fce30..7b739e201 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -693,7 +693,6 @@ "default_buy_provider": "Постачальник покупки за замовчуванням", "ask_each_time": "Запитайте кожен раз", "buy_provider_unavailable": "В даний час постачальник недоступний.", - "address_from_ens": "Ця адреса від ${domain} на ENS", "do_not_have_enough_gas_asset": "У вас недостатньо ${currency}, щоб здійснити трансакцію з поточними умовами мережі блокчейн. Вам потрібно більше ${currency}, щоб сплатити комісію мережі блокчейн, навіть якщо ви надсилаєте інший актив.", "totp_auth_url": "TOTP AUTH URL" } diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index aff30aec4..e53784923 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -685,7 +685,6 @@ "default_buy_provider": "پہلے سے طے شدہ خریدنے والا", "ask_each_time": "ہر بار پوچھیں", "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔", - "address_from_ens": "یہ پتہ ENS پر ${domain} سے ہے", "do_not_have_enough_gas_asset": "آپ کے پاس موجودہ بلاکچین نیٹ ورک کی شرائط کے ساتھ لین دین کرنے کے لیے کافی ${currency} نہیں ہے۔ آپ کو بلاکچین نیٹ ورک کی فیس ادا کرنے کے لیے مزید ${currency} کی ضرورت ہے، چاہے آپ کوئی مختلف اثاثہ بھیج رہے ہوں۔", "totp_auth_url": "TOTP AUTH URL" } diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 4719793d5..0532ae2eb 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -687,7 +687,6 @@ "default_buy_provider": "Aiyipada Ra Olupese", "ask_each_time": "Beere lọwọ kọọkan", "buy_provider_unavailable": "Olupese lọwọlọwọ ko si.", - "address_from_ens": "Adirẹsi yii ni lati ${domain} Lori ens", "do_not_have_enough_gas_asset": "O ko ni to ${currency} lati ṣe idunadura kan pẹlu awọn ipo nẹtiwọki blockchain lọwọlọwọ. O nilo diẹ sii ${currency} lati san awọn owo nẹtiwọọki blockchain, paapaa ti o ba nfi dukia miiran ranṣẹ.", "totp_auth_url": "TOTP AUTH URL" } diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 28958c7f2..7c947847e 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -692,7 +692,6 @@ "default_buy_provider": "默认购买提供商", "ask_each_time": "每次问", "buy_provider_unavailable": "提供者目前不可用。", - "address_from_ens": "此地址来自ENS上的${domain}", "do_not_have_enough_gas_asset": "您没有足够的 ${currency} 来在当前的区块链网络条件下进行交易。即使您发送的是不同的资产,您也需要更多的 ${currency} 来支付区块链网络费用。", "totp_auth_url": "TOTP 授权 URL" } From cb48d73ae0c979e96df2cdc31360572a87f92df2 Mon Sep 17 00:00:00 2001 From: fosse Date: Tue, 3 Oct 2023 10:29:56 -0400 Subject: [PATCH 18/20] review fixes --- cw_ethereum/lib/ethereum_client.dart | 17 +---------------- cw_ethereum/lib/ethereum_wallet.dart | 2 +- lib/entities/ens_record.dart | 2 -- 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/cw_ethereum/lib/ethereum_client.dart b/cw_ethereum/lib/ethereum_client.dart index e5498bf7d..cb09f8f89 100644 --- a/cw_ethereum/lib/ethereum_client.dart +++ b/cw_ethereum/lib/ethereum_client.dart @@ -209,22 +209,7 @@ I/flutter ( 4474): Gas Used: 53000 } } - Future checkEnsName(String ensName) async { - if (_client == null) { - return ""; - } - try { - final ens = Ens(client: _client!); - - final addr = await ens.withName(ensName).getAddress(); - return addr.hex; - } catch (e) { - print(e); - return ""; - } - } - - dynamic getWeb3Client() { + Web3Client? getWeb3Client() { return _client; } diff --git a/cw_ethereum/lib/ethereum_wallet.dart b/cw_ethereum/lib/ethereum_wallet.dart index 5f4f669d0..50b30c5ae 100644 --- a/cw_ethereum/lib/ethereum_wallet.dart +++ b/cw_ethereum/lib/ethereum_wallet.dart @@ -509,5 +509,5 @@ abstract class EthereumWalletBase String signMessage(String message, {String? address = null}) => bytesToHex(_ethPrivateKey.signPersonalMessageToUint8List(ascii.encode(message))); - dynamic getWeb3Client() => _client.getWeb3Client(); + Web3Client? getWeb3Client() => _client.getWeb3Client(); } diff --git a/lib/entities/ens_record.dart b/lib/entities/ens_record.dart index ec5804425..28a129f1b 100644 --- a/lib/entities/ens_record.dart +++ b/lib/entities/ens_record.dart @@ -20,8 +20,6 @@ class EnsRecord { try { final ens = Ens(client: _client); - dynamic res; - if (wallet != null) { switch (wallet.type) { case WalletType.monero: From 431a17ab08e6735571349204772a21b92fcda610 Mon Sep 17 00:00:00 2001 From: fosse Date: Tue, 3 Oct 2023 10:55:38 -0400 Subject: [PATCH 19/20] should've been nullable --- lib/entities/parse_address_from_domain.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index 589063e7b..dcaee5815 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -10,6 +10,7 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/twitter/twitter_api.dart'; import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/entities/fio_address_provider.dart'; @@ -101,7 +102,7 @@ class AddressResolver { } if (text.endsWith(".eth")) { - var wallet = getIt.get().wallet!; + WalletBase? wallet = getIt.get().wallet!; final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet); if (address.isNotEmpty && address != "0x0000000000000000000000000000000000000000") { return ParsedAddress.fetchEnsAddress(name: text, address: address); From a5150766966213af2cbb80bd806d292efd46ed34 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Tue, 3 Oct 2023 20:07:05 +0300 Subject: [PATCH 20/20] Code Enhancements --- cw_ethereum/lib/ethereum_client.dart | 1 - lib/di.dart | 2 +- lib/entities/ens_record.dart | 2 +- lib/entities/parse_address_from_domain.dart | 7 ++----- lib/ethereum/cw_ethereum.dart | 2 +- tool/configure.dart | 4 ++-- 6 files changed, 7 insertions(+), 11 deletions(-) diff --git a/cw_ethereum/lib/ethereum_client.dart b/cw_ethereum/lib/ethereum_client.dart index cb09f8f89..532eb2b99 100644 --- a/cw_ethereum/lib/ethereum_client.dart +++ b/cw_ethereum/lib/ethereum_client.dart @@ -6,7 +6,6 @@ import 'package:cw_ethereum/erc20_balance.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_ethereum/ethereum_transaction_model.dart'; import 'package:cw_ethereum/pending_ethereum_transaction.dart'; -import 'package:ens_dart/ens_dart.dart'; import 'package:flutter/services.dart'; import 'package:http/http.dart'; import 'package:web3dart/web3dart.dart'; diff --git a/lib/di.dart b/lib/di.dart index 97dd392c5..e069a966b 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -883,7 +883,7 @@ Future setup({ getIt.registerFactory(() => YatService()); getIt.registerFactory(() => AddressResolver( - yatService: getIt.get(), walletType: getIt.get().wallet!.type)); + yatService: getIt.get(), wallet: getIt.get().wallet!)); getIt.registerFactoryParam( (QrViewData viewData, _) => FullscreenQRPage(qrViewData: viewData)); diff --git a/lib/entities/ens_record.dart b/lib/entities/ens_record.dart index 28a129f1b..8cf62d79b 100644 --- a/lib/entities/ens_record.dart +++ b/lib/entities/ens_record.dart @@ -10,7 +10,7 @@ class EnsRecord { Web3Client? _client; if (wallet != null && wallet.type == WalletType.ethereum) { - _client = ethereum!.getWeb3Client(wallet) as Web3Client?; + _client = ethereum!.getWeb3Client(wallet); } if (_client == null) { diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index dcaee5815..515b9a2df 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -1,13 +1,10 @@ import 'package:cake_wallet/core/address_validator.dart'; import 'package:cake_wallet/core/yat_service.dart'; -import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/entities/ens_record.dart'; import 'package:cake_wallet/entities/openalias_record.dart'; import 'package:cake_wallet/entities/parsed_address.dart'; import 'package:cake_wallet/entities/unstoppable_domain_address.dart'; import 'package:cake_wallet/entities/emoji_string_extension.dart'; -import 'package:cake_wallet/ethereum/ethereum.dart'; -import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/twitter/twitter_api.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/wallet_base.dart'; @@ -15,10 +12,11 @@ import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/entities/fio_address_provider.dart'; class AddressResolver { - AddressResolver({required this.yatService, required this.walletType}); + AddressResolver({required this.yatService, required this.wallet}) : walletType = wallet.type; final YatService yatService; final WalletType walletType; + final WalletBase wallet; static const unstoppableDomains = [ 'crypto', @@ -102,7 +100,6 @@ class AddressResolver { } if (text.endsWith(".eth")) { - WalletBase? wallet = getIt.get().wallet!; final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet); if (address.isNotEmpty && address != "0x0000000000000000000000000000000000000000") { return ParsedAddress.fetchEnsAddress(name: text, address: address); diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index eab6c26d3..74a298bf9 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -133,7 +133,7 @@ class CWEthereum extends Ethereum { } @override - dynamic getWeb3Client(WalletBase wallet) { + Web3Client? getWeb3Client(WalletBase wallet) { return (wallet as EthereumWallet).getWeb3Client(); } } diff --git a/tool/configure.dart b/tool/configure.dart index 1f9ddf1c6..e3a2efe35 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -467,7 +467,6 @@ Future generateEthereum(bool hasImplementation) async { final outputFile = File(ethereumOutputPath); const ethereumCommonHeaders = """ import 'package:cake_wallet/view_model/send/output.dart'; -import 'package:cw_core/crypto_amount_format.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/output_info.dart'; @@ -478,6 +477,7 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:hive/hive.dart'; +import 'package:web3dart/web3dart.dart'; """; const ethereumCWHeaders = """ import 'package:cw_ethereum/ethereum_formatter.dart'; @@ -525,7 +525,7 @@ abstract class Ethereum { CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); void updateEtherscanUsageState(WalletBase wallet, bool isEnabled); - dynamic getWeb3Client(WalletBase wallet); + Web3Client? getWeb3Client(WalletBase wallet); } """;