CW-475-Better-error-message-if-there-isnt-enough-network-fee-asset-available (#1092)
* Better error message * minor fixes * localization * Update strings_tl.arb * Update append_translation.sh
Serhii committed
Sep 25, 2023 at 15:20 UTC
d6c641242f3c2ead5ec64fe2c87fab7c188650ca
28 files changed
+46
-5
lib/view_model/send/send_view_model.dart
+13
-1
@@ -30,6 +30,7 @@ import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
30
import 'package:cake_wallet/entities/parsed_address.dart';
31
import 'package:cake_wallet/bitcoin/bitcoin.dart';
32
import 'package:cake_wallet/haven/haven.dart';
33
+import 'package:cake_wallet/generated/i18n.dart';
34
35
part 'send_view_model.g.dart';
36
@@ -325,7 +326,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
326
327
state = TransactionCommitted();
328
} catch (e) {
328
- state = FailureState(e.toString());
329
+ String translatedError = translateErrorMessage(e.toString(), wallet.type, wallet.currency);
330
+ state = FailureState(translatedError);
331
}
332
}
333
@@ -412,4 +414,14 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
414
selectedCryptoCurrency = wallet.currency;
415
}
416
}
417
+
418
+ String translateErrorMessage(String error, WalletType walletType, CryptoCurrency currency,) {
419
+ if (walletType == WalletType.ethereum || walletType == WalletType.haven) {
420
+ if (error.contains('gas required exceeds allowance (0)') || error.contains('insufficient funds for gas')) {
421
+ return S.current.do_not_have_enough_gas_asset(currency.toString());
422
+ }
423
+ }
424
+
425
+ return error;
426
+ }
427
}
res/values/strings_ar.arb
+3
@@ -689,5 +689,8 @@
689
"default_buy_provider": "مزود شراء الافتراضي",
690
"ask_each_time": "اسأل في كل مرة",
691
"buy_provider_unavailable": "مزود حاليا غير متوفر.",
692
+
693
+ "do_not_have_enough_gas_asset": "ليس لديك ما يكفي من ${currency} لإجراء معاملة وفقًا لشروط شبكة blockchain الحالية. أنت بحاجة إلى المزيد من ${currency} لدفع رسوم شبكة blockchain، حتى لو كنت ترسل أصلًا مختلفًا.",
694
"totp_auth_url": " TOTP ﺔﻗﺩﺎﺼﻤﻟ URL ﻥﺍﻮﻨﻋ"
695
}
696
+
res/values/strings_bg.arb
+1
@@ -685,5 +685,6 @@
685
"default_buy_provider": "Доставчик по подразбиране купува",
686
"ask_each_time": "Питайте всеки път",
687
"buy_provider_unavailable": "Понастоящем доставчик не е наличен.",
688
+ "do_not_have_enough_gas_asset": "Нямате достатъчно ${currency}, за да извършите транзакция с текущите условия на блокчейн мрежата. Имате нужда от повече ${currency}, за да платите таксите за блокчейн мрежа, дори ако изпращате различен актив.",
689
"totp_auth_url": "TOTP AUTH URL"
690
}
res/values/strings_cs.arb
+1
@@ -685,5 +685,6 @@
685
"default_buy_provider": "Výchozí poskytovatel nákupu",
686
"ask_each_time": "Zeptejte se pokaždé",
687
"buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.",
688
+ "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.",
689
"totp_auth_url": "URL AUTH TOTP"
690
}
res/values/strings_de.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Standard-Kaufanbieter",
694
"ask_each_time": "Jedes Mal fragen",
695
"buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.",
696
+ "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.",
697
"totp_auth_url": "TOTP-Auth-URL"
698
}
res/values/strings_en.arb
+1
@@ -694,5 +694,6 @@
694
"ask_each_time": "Ask each time",
695
"robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.",
696
"buy_provider_unavailable": "Provider currently unavailable.",
697
+ "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.",
698
"totp_auth_url": "TOTP AUTH URL"
699
}
res/values/strings_es.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Proveedor de compra predeterminado",
694
"ask_each_time": "Pregunta cada vez",
695
"buy_provider_unavailable": "Proveedor actualmente no disponible.",
696
+ "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.",
697
"totp_auth_url": "URL de autenticación TOTP"
698
}
res/values/strings_fr.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Fournisseur d'achat par défaut",
694
"ask_each_time": "Demandez à chaque fois",
695
"buy_provider_unavailable": "Fournisseur actuellement indisponible.",
696
+ "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.",
697
"totp_auth_url": "URL D'AUTORISATION TOTP"
698
}
res/values/strings_ha.arb
+1
@@ -671,5 +671,6 @@
671
"default_buy_provider": "Tsohuwar Siyarwa",
672
"ask_each_time": "Tambaya kowane lokaci",
673
"buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.",
674
+ "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.",
675
"totp_auth_url": "TOTP AUTH URL"
676
}
res/values/strings_hi.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता",
694
"ask_each_time": "हर बार पूछें",
695
"buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।",
696
+ "do_not_have_enough_gas_asset": "वर्तमान ब्लॉकचेन नेटवर्क स्थितियों में लेनदेन करने के लिए आपके पास पर्याप्त ${currency} नहीं है। ब्लॉकचेन नेटवर्क शुल्क का भुगतान करने के लिए आपको अधिक ${currency} की आवश्यकता है, भले ही आप एक अलग संपत्ति भेज रहे हों।",
697
"totp_auth_url": "TOTP प्रामाणिक यूआरएल"
698
}
res/values/strings_hr.arb
+2
-1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Zadani davatelj kupnje",
694
"ask_each_time": "Pitajte svaki put",
695
"buy_provider_unavailable": "Davatelj trenutno nije dostupan.",
696
+ "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.",
697
"totp_auth_url": "TOTP AUTH URL"
697
-}
698
+}
\ No newline at end of file
res/values/strings_id.arb
+2
-1
@@ -681,5 +681,6 @@
681
"default_buy_provider": "Penyedia beli default",
682
"ask_each_time": "Tanyakan setiap kali",
683
"buy_provider_unavailable": "Penyedia saat ini tidak tersedia.",
684
+ "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.",
685
"totp_auth_url": "URL Otentikasi TOTP"
685
-}
686
+}
\ No newline at end of file
res/values/strings_it.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Provider di acquisto predefinito",
694
"ask_each_time": "Chiedi ogni volta",
695
"buy_provider_unavailable": "Provider attualmente non disponibile.",
696
+ "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.",
697
"totp_auth_url": "URL DI AUT. TOTP"
698
}
res/values/strings_ja.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "デフォルトの購入プロバイダー",
694
"ask_each_time": "毎回尋ねてください",
695
"buy_provider_unavailable": "現在、プロバイダーは利用できません。",
696
+ "do_not_have_enough_gas_asset": "現在のブロックチェーン ネットワークの状況では、トランザクションを行うのに十分な ${currency} がありません。別のアセットを送信する場合でも、ブロックチェーン ネットワーク料金を支払うにはさらに ${currency} が必要です。",
697
"totp_auth_url": "TOTP認証URL"
698
}
res/values/strings_ko.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "기본 구매 제공자",
694
"ask_each_time": "매번 물어보십시오",
695
"buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.",
696
+ "do_not_have_enough_gas_asset": "현재 블록체인 네트워크 조건으로 거래를 하기에는 ${currency}이(가) 충분하지 않습니다. 다른 자산을 보내더라도 블록체인 네트워크 수수료를 지불하려면 ${currency}가 더 필요합니다.",
697
"totp_auth_url": "TOTP 인증 URL"
698
}
res/values/strings_my.arb
+1
@@ -691,5 +691,6 @@
691
"default_buy_provider": "Default Provider ကိုဝယ်ပါ",
692
"ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ",
693
"buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။",
694
+ "do_not_have_enough_gas_asset": "လက်ရှိ blockchain ကွန်ရက်အခြေအနေများနှင့် အရောင်းအဝယ်ပြုလုပ်ရန် သင့်တွင် ${currency} လုံလောက်မှုမရှိပါ။ သင်သည် မတူညီသော ပိုင်ဆိုင်မှုတစ်ခုကို ပေးပို့နေသော်လည်း blockchain ကွန်ရက်အခကြေးငွေကို ပေးဆောင်ရန် သင်သည် နောက်ထပ် ${currency} လိုအပ်ပါသည်။",
695
"totp_auth_url": "TOTP AUTH URL"
696
}
res/values/strings_nl.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Standaard Koopprovider",
694
"ask_each_time": "Vraag het elke keer",
695
"buy_provider_unavailable": "Provider momenteel niet beschikbaar.",
696
+ "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.",
697
"totp_auth_url": "TOTP AUTH-URL"
698
}
res/values/strings_pl.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Domyślny dostawca zakupu",
694
"ask_each_time": "Zapytaj za każdym razem",
695
"buy_provider_unavailable": "Dostawca obecnie niedostępny.",
696
+ "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.",
697
"totp_auth_url": "Adres URL TOTP AUTH"
698
}
res/values/strings_pt.arb
+1
@@ -692,5 +692,6 @@
692
"default_buy_provider": "Provedor de compra padrão",
693
"ask_each_time": "Pergunte cada vez",
694
"buy_provider_unavailable": "Provedor atualmente indisponível.",
695
+ "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.",
696
"totp_auth_url": "URL de autenticação TOTP"
697
}
res/values/strings_ru.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "По умолчанию поставщик покупки",
694
"ask_each_time": "Спросите каждый раз",
695
"buy_provider_unavailable": "Поставщик в настоящее время недоступен.",
696
+ "do_not_have_enough_gas_asset": "У вас недостаточно ${currency} для совершения транзакции при текущих условиях сети блокчейн. Вам нужно больше ${currency} для оплаты комиссий за сеть блокчейна, даже если вы отправляете другой актив.",
697
"totp_auth_url": "URL-адрес TOTP-АВТОРИЗАЦИИ"
698
}
res/values/strings_th.arb
+1
@@ -691,5 +691,6 @@
691
"default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น",
692
"ask_each_time": "ถามทุกครั้ง",
693
"buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน",
694
+ "do_not_have_enough_gas_asset": "คุณมี ${currency} ไม่เพียงพอที่จะทำธุรกรรมกับเงื่อนไขเครือข่ายบล็อคเชนในปัจจุบัน คุณต้องมี ${currency} เพิ่มขึ้นเพื่อชำระค่าธรรมเนียมเครือข่ายบล็อคเชน แม้ว่าคุณจะส่งสินทรัพย์อื่นก็ตาม",
695
"totp_auth_url": "URL การตรวจสอบสิทธิ์ TOTP"
696
}
res/values/strings_tl.arb
+3
-1
@@ -687,5 +687,7 @@
687
"support_title_other_links": "Iba pang mga link sa suporta",
688
"support_description_other_links": "Sumali sa aming mga komunidad o maabot sa amin ang aming mga kasosyo sa pamamagitan ng iba pang mga pamamaraan",
689
"select_destination": "Mangyaring piliin ang patutunguhan para sa backup file.",
690
- "save_to_downloads": "I -save sa mga pag -download"
690
+ "save_to_downloads": "I -save sa mga pag -download",
691
+ "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.",
692
+ "totp_auth_url": "TOTP AUTH URL"
693
}
\ No newline at end of file
res/values/strings_tr.arb
+1
@@ -691,5 +691,6 @@
691
"default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı",
692
"ask_each_time": "Her seferinde sor",
693
"buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.",
694
+ "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.",
695
"totp_auth_url": "TOTP YETKİ URL'si"
696
}
res/values/strings_uk.arb
+1
@@ -693,5 +693,6 @@
693
"default_buy_provider": "Постачальник покупки за замовчуванням",
694
"ask_each_time": "Запитайте кожен раз",
695
"buy_provider_unavailable": "В даний час постачальник недоступний.",
696
+ "do_not_have_enough_gas_asset": "У вас недостатньо ${currency}, щоб здійснити трансакцію з поточними умовами мережі блокчейн. Вам потрібно більше ${currency}, щоб сплатити комісію мережі блокчейн, навіть якщо ви надсилаєте інший актив.",
697
"totp_auth_url": "TOTP AUTH URL"
698
}
res/values/strings_ur.arb
+1
@@ -685,5 +685,6 @@
685
"default_buy_provider": "پہلے سے طے شدہ خریدنے والا",
686
"ask_each_time": "ہر بار پوچھیں",
687
"buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔",
688
+ "do_not_have_enough_gas_asset": "آپ کے پاس موجودہ بلاکچین نیٹ ورک کی شرائط کے ساتھ لین دین کرنے کے لیے کافی ${currency} نہیں ہے۔ آپ کو بلاکچین نیٹ ورک کی فیس ادا کرنے کے لیے مزید ${currency} کی ضرورت ہے، چاہے آپ کوئی مختلف اثاثہ بھیج رہے ہوں۔",
689
"totp_auth_url": "TOTP AUTH URL"
690
}
res/values/strings_yo.arb
+1
@@ -687,5 +687,6 @@
687
"default_buy_provider": "Aiyipada Ra Olupese",
688
"ask_each_time": "Beere lọwọ kọọkan",
689
"buy_provider_unavailable": "Olupese lọwọlọwọ ko si.",
690
+ "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ṣẹ.",
691
"totp_auth_url": "TOTP AUTH URL"
692
}
res/values/strings_zh.arb
+1
@@ -692,5 +692,6 @@
692
"default_buy_provider": "默认购买提供商",
693
"ask_each_time": "每次问",
694
"buy_provider_unavailable": "提供者目前不可用。",
695
+ "do_not_have_enough_gas_asset": "您没有足够的 ${currency} 来在当前的区块链网络条件下进行交易。即使您发送的是不同的资产,您也需要更多的 ${currency} 来支付区块链网络费用。",
696
"totp_auth_url": "TOTP 授权 URL"
697
}
scripts/append_translation.sh
+1
-1
@@ -7,7 +7,7 @@
7
# if you get an error `command not found`
8
# give the correct permissions to this file using `chmod 777 append_translation.sh`
9
10
-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" "zh")
10
+langs=("ar" "bg" "cs" "de" "en" "es" "fr" "ha" "hi" "hr" "id" "it" "ja" "ko" "my" "nl" "pl" "pt" "ru" "th" "tl" "tr" "uk" "ur" "yo" "zh")
11
12
name=$1
13
text=$2