1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Adding fake token warning and replacing Add Token labels with Import Tokens (#11798)

This commit is contained in:
Niranjana Binoy 2021-09-10 16:21:04 -04:00 committed by GitHub
parent 769beb2a26
commit 05aadb38f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
87 changed files with 221 additions and 333 deletions

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "ተለዋጭ ስም አክል" "message": "ተለዋጭ ስም አክል"
}, },
"addTokens": {
"message": "ተለዋጭ ስሞችን አክል"
},
"advanced": { "advanced": {
"message": "የላቀ" "message": "የላቀ"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "አዎ፣ እናደራጅ!" "message": "አዎ፣ እናደራጅ!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "እነዚህን ተለዋጭ ስሞች ለማከል ይፈልጋሉ?" "message": "እነዚህን ተለዋጭ ስሞች ለማከል ይፈልጋሉ?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "إضافة عملة رمزية" "message": "إضافة عملة رمزية"
}, },
"addTokens": {
"message": "إضافة عملات رمزية"
},
"advanced": { "advanced": {
"message": "إعدادات متقدمة" "message": "إعدادات متقدمة"
}, },
@ -536,7 +533,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "نعم، دعنا نبدأ التثبيت!" "message": "نعم، دعنا نبدأ التثبيت!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "هل ترغب في إضافة هذه الرموز؟" "message": "هل ترغب في إضافة هذه الرموز؟"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Добавяне на жетон" "message": "Добавяне на жетон"
}, },
"addTokens": {
"message": "Добавяне на жетони"
},
"advanced": { "advanced": {
"message": "Разширени" "message": "Разширени"
}, },
@ -536,7 +533,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Да, нека да настроим нещата!" "message": "Да, нека да настроим нещата!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Искате ли да добавите тези жетони?" "message": "Искате ли да добавите тези жетони?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "টোকেন যোগ করুন" "message": "টোকেন যোগ করুন"
}, },
"addTokens": {
"message": "টোকেনগুলি যোগ করুন"
},
"advanced": { "advanced": {
"message": "উন্নত" "message": "উন্নত"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "হ্যাঁ, তাহলে সেট আপ করে নেওয়া যাক!" "message": "হ্যাঁ, তাহলে সেট আপ করে নেওয়া যাক!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "আপনি কি এই টোকেনগুলি যোগ করতে চান?" "message": "আপনি কি এই টোকেনগুলি যোগ করতে চান?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Afegir Fitxa" "message": "Afegir Fitxa"
}, },
"addTokens": {
"message": "Afegeix tokens"
},
"advanced": { "advanced": {
"message": "Configuració avançada" "message": "Configuració avançada"
}, },
@ -527,7 +524,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Sí, posem-nos en marxa!" "message": "Sí, posem-nos en marxa!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "T'agradaria afegir aquestes fitxes?" "message": "T'agradaria afegir aquestes fitxes?"
}, },
"links": { "links": {

View File

@ -11,9 +11,6 @@
"addToken": { "addToken": {
"message": "Přidat token" "message": "Přidat token"
}, },
"addTokens": {
"message": "Přidat tokeny"
},
"amount": { "amount": {
"message": "Částka" "message": "Částka"
}, },
@ -214,7 +211,7 @@
"learnMore": { "learnMore": {
"message": "Zjistěte více." "message": "Zjistěte více."
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Chcete přidat tyto tokeny?" "message": "Chcete přidat tyto tokeny?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Tilføj Polet" "message": "Tilføj Polet"
}, },
"addTokens": {
"message": "Tilføj tokens"
},
"advanced": { "advanced": {
"message": "Avanceret" "message": "Avanceret"
}, },
@ -533,7 +530,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ja, lad os komme i gang!" "message": "Ja, lad os komme i gang!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Ønsker du at tilføje disse tokens?" "message": "Ønsker du at tilføje disse tokens?"
}, },
"loadMore": { "loadMore": {

View File

@ -47,9 +47,6 @@
"addToken": { "addToken": {
"message": "Token hinzufügen" "message": "Token hinzufügen"
}, },
"addTokens": {
"message": "Token hinzufügen"
},
"advanced": { "advanced": {
"message": "Erweitert" "message": "Erweitert"
}, },
@ -528,7 +525,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ja, legen wir los!" "message": "Ja, legen wir los!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Möchtest du diese Token hinzufügen?" "message": "Möchtest du diese Token hinzufügen?"
}, },
"loadMore": { "loadMore": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Προσθήκη Token" "message": "Προσθήκη Token"
}, },
"addTokens": {
"message": "Προσθήκη Token"
},
"advanced": { "advanced": {
"message": "Σύνθετες" "message": "Σύνθετες"
}, },
@ -537,7 +534,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ναι, ας το εγκαταστήσουμε!" "message": "Ναι, ας το εγκαταστήσουμε!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Θέλετε να προσθέσετε αυτά τα token;" "message": "Θέλετε να προσθέσετε αυτά τα token;"
}, },
"links": { "links": {

View File

@ -52,6 +52,9 @@
"addContact": { "addContact": {
"message": "Add contact" "message": "Add contact"
}, },
"addCustomToken": {
"message": "Add Custom Token"
},
"addCustomTokenByContractAddress": { "addCustomTokenByContractAddress": {
"message": "Cant find a token? You can manually add any token by pasting its address. Token contract addresses can be found on $1.", "message": "Cant find a token? You can manually add any token by pasting its address. Token contract addresses can be found on $1.",
"description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum"
@ -91,9 +94,6 @@
"addToken": { "addToken": {
"message": "Add Token" "message": "Add Token"
}, },
"addTokens": {
"message": "Add Tokens"
},
"addressBookIcon": { "addressBookIcon": {
"message": "Address book icon" "message": "Address book icon"
}, },
@ -884,6 +884,9 @@
"failureMessage": { "failureMessage": {
"message": "Something went wrong, and we were unable to complete the action" "message": "Something went wrong, and we were unable to complete the action"
}, },
"fakeTokenWarning": {
"message": "Anyone can create a token, including creating fake versions of existing tokens. Learn more about $1"
},
"fast": { "fast": {
"message": "Fast" "message": "Fast"
}, },
@ -1088,6 +1091,9 @@
"importTokens": { "importTokens": {
"message": "import tokens" "message": "import tokens"
}, },
"importTokensCamelCase": {
"message": "Import Tokens"
},
"importWallet": { "importWallet": {
"message": "Import wallet" "message": "Import wallet"
}, },
@ -1189,6 +1195,9 @@
"learnMore": { "learnMore": {
"message": "Learn more" "message": "Learn more"
}, },
"learnScamRisk": {
"message": "scams and security risks."
},
"ledgerAccountRestriction": { "ledgerAccountRestriction": {
"message": "You need to make use your last account before you can add a new one." "message": "You need to make use your last account before you can add a new one."
}, },
@ -1222,8 +1231,8 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Yes, lets get set up!" "message": "Yes, lets get set up!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Would you like to add these tokens?" "message": "Would you like to import these tokens?"
}, },
"links": { "links": {
"message": "Links" "message": "Links"
@ -1668,7 +1677,7 @@
"message": "Queued" "message": "Queued"
}, },
"readdToken": { "readdToken": {
"message": "You can add this token back in the future by going to “Add token” in your accounts options menu." "message": "You can add this token back in the future by going to “Import token” in your accounts options menu."
}, },
"receive": { "receive": {
"message": "Receive" "message": "Receive"

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "Agregar token" "message": "Agregar token"
}, },
"addTokens": {
"message": "Agregar tokens"
},
"advanced": { "advanced": {
"message": "Avanzado" "message": "Avanzado"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Sí, vamos a establecer la configuración." "message": "Sí, vamos a establecer la configuración."
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "¿Le gustaría agregar estos tokens?" "message": "¿Le gustaría agregar estos tokens?"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "Agregar token" "message": "Agregar token"
}, },
"addTokens": {
"message": "Agregar tokens"
},
"advanced": { "advanced": {
"message": "Avanzado" "message": "Avanzado"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Sí, vamos a establecer la configuración." "message": "Sí, vamos a establecer la configuración."
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "¿Le gustaría agregar estos tokens?" "message": "¿Le gustaría agregar estos tokens?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Lisage luba" "message": "Lisage luba"
}, },
"addTokens": {
"message": "Lisa lube"
},
"advanced": { "advanced": {
"message": "Täpsemad" "message": "Täpsemad"
}, },
@ -536,7 +533,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Jah, hakkame pihta!" "message": "Jah, hakkame pihta!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Kas soovite need load lisada?" "message": "Kas soovite need load lisada?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "یک رمز یاب اضافه کنید" "message": "یک رمز یاب اضافه کنید"
}, },
"addTokens": {
"message": "اضافه رمزیاب ها"
},
"advanced": { "advanced": {
"message": "پیشرفته" "message": "پیشرفته"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "بلی، درست شد!" "message": "بلی، درست شد!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "آیا میخواهید این رمزیاب ها را اضافه نمایید؟" "message": "آیا میخواهید این رمزیاب ها را اضافه نمایید؟"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Lisää tietue" "message": "Lisää tietue"
}, },
"addTokens": {
"message": "Lisää poletteja"
},
"advanced": { "advanced": {
"message": "Lisäasetukset" "message": "Lisäasetukset"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Kyllä, valmistaudutaan!" "message": "Kyllä, valmistaudutaan!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Haluaisitko lisätä nämä poletit?" "message": "Haluaisitko lisätä nämä poletit?"
}, },
"links": { "links": {

View File

@ -47,9 +47,6 @@
"addToken": { "addToken": {
"message": "Magdagdag ng Token" "message": "Magdagdag ng Token"
}, },
"addTokens": {
"message": "Magdagdag ng Mga Token"
},
"advancedOptions": { "advancedOptions": {
"message": "Mga Advanced na Opsyon" "message": "Mga Advanced na Opsyon"
}, },
@ -490,7 +487,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Oo, i-set up natin ito!" "message": "Oo, i-set up natin ito!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Gusto mo bang idagdag ang mga token na ito?" "message": "Gusto mo bang idagdag ang mga token na ito?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Ajouter un jeton" "message": "Ajouter un jeton"
}, },
"addTokens": {
"message": "Ajouter des jetons"
},
"advanced": { "advanced": {
"message": "Paramètres avancés" "message": "Paramètres avancés"
}, },
@ -534,7 +531,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Oui, passons à la configuration !" "message": "Oui, passons à la configuration !"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Souhaitez-vous ajouter ces jetons ?" "message": "Souhaitez-vous ajouter ces jetons ?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "הוסף/י אסימון" "message": "הוסף/י אסימון"
}, },
"addTokens": {
"message": "הוסף סמלים"
},
"advanced": { "advanced": {
"message": "מתקדם" "message": "מתקדם"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "כן, בוא נתקין!" "message": "כן, בוא נתקין!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "האם ברצונך להוסיף טוקנים אלה?" "message": "האם ברצונך להוסיף טוקנים אלה?"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "टोकन जोड़ें" "message": "टोकन जोड़ें"
}, },
"addTokens": {
"message": "टोकन जोड़ें"
},
"advanced": { "advanced": {
"message": "उन्नत" "message": "उन्नत"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "हाँ, आइए सेट करते हैं!" "message": "हाँ, आइए सेट करते हैं!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "क्या आप इन टोकन को जोड़ना चाहते हैं?" "message": "क्या आप इन टोकन को जोड़ना चाहते हैं?"
}, },
"links": { "links": {

View File

@ -11,9 +11,6 @@
"addToken": { "addToken": {
"message": "टोकन जोड़ें" "message": "टोकन जोड़ें"
}, },
"addTokens": {
"message": "टोकनों को जोड़ें"
},
"amount": { "amount": {
"message": "राशि" "message": "राशि"
}, },
@ -194,7 +191,7 @@
"kovan": { "kovan": {
"message": "कोवान टेस्ट नेटवर्क" "message": "कोवान टेस्ट नेटवर्क"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "क्या आप इन टोकनों को जोड़ना चाहते हैं?" "message": "क्या आप इन टोकनों को जोड़ना चाहते हैं?"
}, },
"loading": { "loading": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Dodaj token" "message": "Dodaj token"
}, },
"addTokens": {
"message": "Dodaj tokene"
},
"advanced": { "advanced": {
"message": "Napredno" "message": "Napredno"
}, },
@ -536,7 +533,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Da, obavimo postavljanje!" "message": "Da, obavimo postavljanje!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Želite li dodati ove tokene?" "message": "Želite li dodati ove tokene?"
}, },
"links": { "links": {

View File

@ -29,9 +29,6 @@
"addToken": { "addToken": {
"message": "Ajoute Token" "message": "Ajoute Token"
}, },
"addTokens": {
"message": "Ajoute Token"
},
"amount": { "amount": {
"message": "Kantite lajan" "message": "Kantite lajan"
}, },
@ -311,7 +308,7 @@
"ledgerAccountRestriction": { "ledgerAccountRestriction": {
"message": "Ou bezwen sèvi ak dènye kont ou anvan ou ka ajoute yon nouvo." "message": "Ou bezwen sèvi ak dènye kont ou anvan ou ka ajoute yon nouvo."
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Èske ou ta renmen ajoute sa nan tokens?" "message": "Èske ou ta renmen ajoute sa nan tokens?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Token hozzáadása" "message": "Token hozzáadása"
}, },
"addTokens": {
"message": "Érmék hozzáadása"
},
"advanced": { "advanced": {
"message": "Speciális" "message": "Speciális"
}, },
@ -536,7 +533,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Igen, hozzuk létre!" "message": "Igen, hozzuk létre!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Hozzá szeretné adni ezeket az érméket?" "message": "Hozzá szeretné adni ezeket az érméket?"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "Tambahkan Token" "message": "Tambahkan Token"
}, },
"addTokens": {
"message": "Tambahkan Token"
},
"advanced": { "advanced": {
"message": "Tingkat Lanjut" "message": "Tingkat Lanjut"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ya, mari siap-siap!" "message": "Ya, mari siap-siap!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Apakah Anda ingin menambahkan token ini?" "message": "Apakah Anda ingin menambahkan token ini?"
}, },
"links": { "links": {

View File

@ -64,9 +64,6 @@
"addToken": { "addToken": {
"message": "Aggiungi Token" "message": "Aggiungi Token"
}, },
"addTokens": {
"message": "Aggiungi token"
},
"advanced": { "advanced": {
"message": "Avanzate" "message": "Avanzate"
}, },
@ -875,7 +872,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Si, iniziamo!" "message": "Si, iniziamo!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Vorresti aggiungere questi token?" "message": "Vorresti aggiungere questi token?"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "トークンの追加" "message": "トークンの追加"
}, },
"addTokens": {
"message": "トークンの追加"
},
"advanced": { "advanced": {
"message": "詳細" "message": "詳細"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "さあセットアップしましょう!" "message": "さあセットアップしましょう!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "これらのトークンを追加しますか?" "message": "これらのトークンを追加しますか?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "ಟೋಕನ್ ಸೇರಿಸಿ" "message": "ಟೋಕನ್ ಸೇರಿಸಿ"
}, },
"addTokens": {
"message": "ಟೋಕನ್‌ಗಳನ್ನು ಸೇರಿಸಿ"
},
"advanced": { "advanced": {
"message": "ಸುಧಾರಿತ" "message": "ಸುಧಾರಿತ"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "ಹೌದು, ಹೊಂದಿಸೋಣ!" "message": "ಹೌದು, ಹೊಂದಿಸೋಣ!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "ನೀವು ಈ ಟೋಕನ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಬಯಸುತ್ತೀರಾ?" "message": "ನೀವು ಈ ಟೋಕನ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಬಯಸುತ್ತೀರಾ?"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "토큰 추가" "message": "토큰 추가"
}, },
"addTokens": {
"message": "토큰 추가"
},
"advanced": { "advanced": {
"message": "고급" "message": "고급"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "설정을 시작하죠!" "message": "설정을 시작하죠!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "이 토큰을 추가하시겠어요?" "message": "이 토큰을 추가하시겠어요?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Pridėti žetoną" "message": "Pridėti žetoną"
}, },
"addTokens": {
"message": "Pridėti žetonų"
},
"advanced": { "advanced": {
"message": "Išplėstiniai" "message": "Išplėstiniai"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Taip, pradėkime!" "message": "Taip, pradėkime!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Ar norėtumėte pridėti šiuos žetonus?" "message": "Ar norėtumėte pridėti šiuos žetonus?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Pievienot žetonu" "message": "Pievienot žetonu"
}, },
"addTokens": {
"message": "Pievienot marķierus"
},
"advanced": { "advanced": {
"message": "Papildu" "message": "Papildu"
}, },
@ -536,7 +533,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Jā, sāksim iestatīšanu!" "message": "Jā, sāksim iestatīšanu!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Vai vēlaties pievienot šos marķierus?" "message": "Vai vēlaties pievienot šos marķierus?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Tambah Token" "message": "Tambah Token"
}, },
"addTokens": {
"message": "Tambah Token"
},
"advanced": { "advanced": {
"message": "Lanjutan" "message": "Lanjutan"
}, },
@ -526,7 +523,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ya, mari sediakannya!" "message": "Ya, mari sediakannya!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Adakah anda ingin menambah token ini?" "message": "Adakah anda ingin menambah token ini?"
}, },
"links": { "links": {

View File

@ -8,9 +8,6 @@
"addToken": { "addToken": {
"message": "Voeg token toe" "message": "Voeg token toe"
}, },
"addTokens": {
"message": "Tokens toevoegen"
},
"amount": { "amount": {
"message": "Bedrag" "message": "Bedrag"
}, },
@ -188,7 +185,7 @@
"kovan": { "kovan": {
"message": "Kovan-testnetwerk" "message": "Kovan-testnetwerk"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Wil je deze tokens toevoegen?" "message": "Wil je deze tokens toevoegen?"
}, },
"loading": { "loading": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Legg til token " "message": "Legg til token "
}, },
"addTokens": {
"message": "Legg til sjetonger"
},
"advanced": { "advanced": {
"message": "Avansert" "message": "Avansert"
}, },
@ -527,7 +524,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ja, la oss komme i gang!" "message": "Ja, la oss komme i gang!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Ønsker du å legge til disse tokenene" "message": "Ønsker du å legge til disse tokenene"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "Magdagdag ng Token" "message": "Magdagdag ng Token"
}, },
"addTokens": {
"message": "Magdagdag ng Mga Token"
},
"advanced": { "advanced": {
"message": "Advanced" "message": "Advanced"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Sige, simulan na nating mag-set up!" "message": "Sige, simulan na nating mag-set up!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Gusto mo bang idagdag ang mga token na ito?" "message": "Gusto mo bang idagdag ang mga token na ito?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Dodaj token" "message": "Dodaj token"
}, },
"addTokens": {
"message": "Dodaj tokeny"
},
"advanced": { "advanced": {
"message": "Zaawansowane" "message": "Zaawansowane"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Tak, zacznijmy od początku!" "message": "Tak, zacznijmy od początku!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Czy chcesz dodać te tokeny?" "message": "Czy chcesz dodać te tokeny?"
}, },
"links": { "links": {

View File

@ -11,9 +11,6 @@
"addToken": { "addToken": {
"message": "Adicionar Token" "message": "Adicionar Token"
}, },
"addTokens": {
"message": "Adicionar Tokens"
},
"amount": { "amount": {
"message": "Valor" "message": "Valor"
}, },
@ -194,7 +191,7 @@
"kovan": { "kovan": {
"message": "Rede de Teste Kovan" "message": "Rede de Teste Kovan"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Gostaria de adicionar estes tokens?" "message": "Gostaria de adicionar estes tokens?"
}, },
"loading": { "loading": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "Adicionar token" "message": "Adicionar token"
}, },
"addTokens": {
"message": "Adicionar tokens"
},
"advanced": { "advanced": {
"message": "Avançadas" "message": "Avançadas"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Sim, vamos fazer a configuração!" "message": "Sim, vamos fazer a configuração!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Você gostaria de adicionar esses tokens?" "message": "Você gostaria de adicionar esses tokens?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Adăugare simbol" "message": "Adăugare simbol"
}, },
"addTokens": {
"message": "Adăugați token-uri"
},
"advanced": { "advanced": {
"message": "Avansate" "message": "Avansate"
}, },
@ -530,7 +527,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Da, hai să configurăm!" "message": "Da, hai să configurăm!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Adăugați aceste indicative?" "message": "Adăugați aceste indicative?"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "Добавить токен" "message": "Добавить токен"
}, },
"addTokens": {
"message": "Добавить токены"
},
"advanced": { "advanced": {
"message": "Дополнительно" "message": "Дополнительно"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Да, давайте настроим!" "message": "Да, давайте настроим!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Вы хотели бы добавить эти токены?" "message": "Вы хотели бы добавить эти токены?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Přidat token" "message": "Přidat token"
}, },
"addTokens": {
"message": "Přidat tokeny"
},
"advanced": { "advanced": {
"message": "Rozšírené" "message": "Rozšírené"
}, },
@ -524,7 +521,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Áno, poďme to nastaviť!" "message": "Áno, poďme to nastaviť!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Chcete přidat tyto tokeny?" "message": "Chcete přidat tyto tokeny?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Dodaj žeton" "message": "Dodaj žeton"
}, },
"addTokens": {
"message": "Dodaj žetone"
},
"advanced": { "advanced": {
"message": "Napredno" "message": "Napredno"
}, },
@ -534,7 +531,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Lotimo se nastavitev!" "message": "Lotimo se nastavitev!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Želite dodati te žetone?" "message": "Želite dodati te žetone?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Dodaj token" "message": "Dodaj token"
}, },
"addTokens": {
"message": "Dodaj tokene"
},
"advanced": { "advanced": {
"message": "Напредне опције" "message": "Напредне опције"
}, },
@ -537,7 +534,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Da, hajde da sve podesimo!" "message": "Da, hajde da sve podesimo!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Želite li da dodate ove tokene?" "message": "Želite li da dodate ove tokene?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Lägg till token" "message": "Lägg till token"
}, },
"addTokens": {
"message": "Lägg till tokens"
},
"advanced": { "advanced": {
"message": "Avancerat" "message": "Avancerat"
}, },
@ -530,7 +527,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ja, kör igång!" "message": "Ja, kör igång!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Vill du lägga till dessa tokens?" "message": "Vill du lägga till dessa tokens?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Ongeza Kianzio" "message": "Ongeza Kianzio"
}, },
"addTokens": {
"message": "Ongeza Vianzio"
},
"advanced": { "advanced": {
"message": "Mipangilio ya kina" "message": "Mipangilio ya kina"
}, },
@ -527,7 +524,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Ndiyo, hebu tuweke mipangilio!" "message": "Ndiyo, hebu tuweke mipangilio!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Je, ungependa kuongeza vianzio hivi?" "message": "Je, ungependa kuongeza vianzio hivi?"
}, },
"links": { "links": {

View File

@ -14,9 +14,6 @@
"addToken": { "addToken": {
"message": "டோக்கனைச் சேர்" "message": "டோக்கனைச் சேர்"
}, },
"addTokens": {
"message": "டோக்கன்களைச் சேர்"
},
"advanced": { "advanced": {
"message": "மேம்பட்டவை" "message": "மேம்பட்டவை"
}, },
@ -251,7 +248,7 @@
"learnMore": { "learnMore": {
"message": "மேலும் அறிக" "message": "மேலும் அறிக"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "இந்த டோக்கன்களைச் சேர்க்க விரும்புகிறீர்களா?" "message": "இந்த டோக்கன்களைச் சேர்க்க விரும்புகிறீர்களா?"
}, },
"links": { "links": {

View File

@ -14,9 +14,6 @@
"addToken": { "addToken": {
"message": "เพิ่มโทเค็น" "message": "เพิ่มโทเค็น"
}, },
"addTokens": {
"message": "เพิ่มหลายโทเค็น"
},
"amount": { "amount": {
"message": "จำนวน" "message": "จำนวน"
}, },
@ -269,7 +266,7 @@
"learnMore": { "learnMore": {
"message": "เรียนรู้เพิ่มเติม" "message": "เรียนรู้เพิ่มเติม"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "คุณต้องการเพิ่มโทเค็นเหล่านี้หรือไม่?" "message": "คุณต้องการเพิ่มโทเค็นเหล่านี้หรือไม่?"
}, },
"loading": { "loading": {

View File

@ -64,9 +64,6 @@
"addToken": { "addToken": {
"message": "Magdagdag ng Token" "message": "Magdagdag ng Token"
}, },
"addTokens": {
"message": "Magdagdag ng Mga Token"
},
"advanced": { "advanced": {
"message": "Advanced" "message": "Advanced"
}, },
@ -869,7 +866,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Sige, simulan na nating mag-set up!" "message": "Sige, simulan na nating mag-set up!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Gusto mo bang idagdag ang mga token na ito?" "message": "Gusto mo bang idagdag ang mga token na ito?"
}, },
"links": { "links": {

View File

@ -11,9 +11,6 @@
"addToken": { "addToken": {
"message": "Jeton ekle" "message": "Jeton ekle"
}, },
"addTokens": {
"message": "Jetonlar ekle"
},
"amount": { "amount": {
"message": "Tutar" "message": "Tutar"
}, },
@ -221,7 +218,7 @@
"learnMore": { "learnMore": {
"message": "Daha fazla bilgi." "message": "Daha fazla bilgi."
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Bu jetonlara adres eklemek ister misiniz?" "message": "Bu jetonlara adres eklemek ister misiniz?"
}, },
"links": { "links": {

View File

@ -50,9 +50,6 @@
"addToken": { "addToken": {
"message": "Додати токен" "message": "Додати токен"
}, },
"addTokens": {
"message": "Додати токени"
},
"advanced": { "advanced": {
"message": "Розширені" "message": "Розширені"
}, },
@ -540,7 +537,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Так, давайте налаштуємо!" "message": "Так, давайте налаштуємо!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Ви б хотіли додати ці токени?" "message": "Ви б хотіли додати ці токени?"
}, },
"links": { "links": {

View File

@ -91,9 +91,6 @@
"addToken": { "addToken": {
"message": "Thêm token" "message": "Thêm token"
}, },
"addTokens": {
"message": "Thêm token"
},
"advanced": { "advanced": {
"message": "Nâng cao" "message": "Nâng cao"
}, },
@ -1025,7 +1022,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "Có, hãy thiết lập!" "message": "Có, hãy thiết lập!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "Bạn có muốn thêm những token này không?" "message": "Bạn có muốn thêm những token này không?"
}, },
"links": { "links": {

View File

@ -64,9 +64,6 @@
"addToken": { "addToken": {
"message": "添加代币" "message": "添加代币"
}, },
"addTokens": {
"message": "添加代币"
},
"advanced": { "advanced": {
"message": "高级" "message": "高级"
}, },
@ -872,7 +869,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "第一次,立即开始设置!" "message": "第一次,立即开始设置!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "您想添加这些代币吗?" "message": "您想添加这些代币吗?"
}, },
"links": { "links": {

View File

@ -53,9 +53,6 @@
"addToken": { "addToken": {
"message": "加入代幣" "message": "加入代幣"
}, },
"addTokens": {
"message": "加入代幣"
},
"advanced": { "advanced": {
"message": "進階" "message": "進階"
}, },
@ -549,7 +546,7 @@
"letsGoSetUp": { "letsGoSetUp": {
"message": "好,我們開始吧!" "message": "好,我們開始吧!"
}, },
"likeToAddTokens": { "likeToImportTokens": {
"message": "確定要加入代幣?" "message": "確定要加入代幣?"
}, },
"links": { "links": {

View File

@ -517,10 +517,10 @@ describe('MetaMask', function () {
await driver.fill('#custom-address', tokenAddress); await driver.fill('#custom-address', tokenAddress);
await driver.delay(regularDelayMs); await driver.delay(regularDelayMs);
await driver.clickElement({ text: 'Next', tag: 'button' }); await driver.clickElement({ text: 'Add Custom Token', tag: 'button' });
await driver.delay(regularDelayMs); await driver.delay(regularDelayMs);
await driver.clickElement({ text: 'Add Tokens', tag: 'button' }); await driver.clickElement({ text: 'Import Tokens', tag: 'button' });
await driver.delay(regularDelayMs); await driver.delay(regularDelayMs);
}); });

View File

@ -83,7 +83,7 @@ describe('Add existing token using search', function () {
await driver.fill('#search-tokens', 'BAT'); await driver.fill('#search-tokens', 'BAT');
await driver.clickElement({ text: 'BAT', tag: 'span' }); await driver.clickElement({ text: 'BAT', tag: 'span' });
await driver.clickElement({ text: 'Next', tag: 'button' }); await driver.clickElement({ text: 'Next', tag: 'button' });
await driver.clickElement({ text: 'Add Tokens', tag: 'button' }); await driver.clickElement({ text: 'Import Tokens', tag: 'button' });
await driver.waitForSelector({ await driver.waitForSelector({
css: '.token-overview__primary-balance', css: '.token-overview__primary-balance',

View File

@ -4,7 +4,7 @@ import { useSelector } from 'react-redux';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import ImportTokenLink from '../import-token-link'; import ImportTokenLink from '../import-token-link';
import TokenList from '../token-list'; import TokenList from '../token-list';
import { ADD_TOKEN_ROUTE } from '../../../helpers/constants/routes'; import { IMPORT_TOKEN_ROUTE } from '../../../helpers/constants/routes';
import AssetListItem from '../asset-list-item'; import AssetListItem from '../asset-list-item';
import { PRIMARY, SECONDARY } from '../../../helpers/constants/common'; import { PRIMARY, SECONDARY } from '../../../helpers/constants/common';
import { useMetricEvent } from '../../../hooks/useMetricEvent'; import { useMetricEvent } from '../../../hooks/useMetricEvent';
@ -107,7 +107,7 @@ const AssetList = ({ onClickAsset }) => {
</Box> </Box>
<ImportTokenLink <ImportTokenLink
onClick={() => { onClick={() => {
history.push(ADD_TOKEN_ROUTE); history.push(IMPORT_TOKEN_ROUTE);
addTokenEvent(); addTokenEvent();
}} }}
/> />

View File

@ -2,7 +2,7 @@ import React from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { useMetricEvent } from '../../../hooks/useMetricEvent'; import { useMetricEvent } from '../../../hooks/useMetricEvent';
import { useI18nContext } from '../../../hooks/useI18nContext'; import { useI18nContext } from '../../../hooks/useI18nContext';
import { ADD_TOKEN_ROUTE } from '../../../helpers/constants/routes'; import { IMPORT_TOKEN_ROUTE } from '../../../helpers/constants/routes';
import Button from '../../ui/button'; import Button from '../../ui/button';
import Box from '../../ui/box/box'; import Box from '../../ui/box/box';
import { TEXT_ALIGN } from '../../../helpers/constants/design-system'; import { TEXT_ALIGN } from '../../../helpers/constants/design-system';
@ -33,7 +33,7 @@ export default function ImportTokenLink() {
className="import-token-link__link" className="import-token-link__link"
type="link" type="link"
onClick={() => { onClick={() => {
history.push(ADD_TOKEN_ROUTE); history.push(IMPORT_TOKEN_ROUTE);
addTokenEvent(); addTokenEvent();
}} }}
> >

View File

@ -17,6 +17,10 @@
justify-content: normal; justify-content: normal;
} }
&--with-icon.actionable-message--with-right-button {
padding-left: 32px;
}
svg { svg {
width: 16px; width: 16px;
height: 16px; height: 16px;

View File

@ -5,6 +5,10 @@ import PageContainerHeader from './page-container-header';
import PageContainerFooter from './page-container-footer'; import PageContainerFooter from './page-container-footer';
export default class PageContainer extends PureComponent { export default class PageContainer extends PureComponent {
static contextTypes = {
t: PropTypes.func,
};
static propTypes = { static propTypes = {
// PageContainerHeader props // PageContainerHeader props
backButtonString: PropTypes.string, backButtonString: PropTypes.string,
@ -86,6 +90,19 @@ export default class PageContainer extends PureComponent {
return null; return null;
} }
getTabSubmitText() {
const { tabsComponent } = this.props;
const { activeTabIndex } = this.state;
if (tabsComponent) {
let { children } = tabsComponent.props;
children = children.filter(Boolean);
if (children[activeTabIndex]?.key === 'custom-tab') {
return this.context.t('addCustomToken');
}
}
return null;
}
render() { render() {
const { const {
title, title,
@ -103,7 +120,7 @@ export default class PageContainer extends PureComponent {
headerCloseText, headerCloseText,
hideCancel, hideCancel,
} = this.props; } = this.props;
const tabSubmitText = this.getTabSubmitText();
return ( return (
<div className="page-container"> <div className="page-container">
<PageContainerHeader <PageContainerHeader
@ -124,8 +141,9 @@ export default class PageContainer extends PureComponent {
cancelText={cancelText} cancelText={cancelText}
hideCancel={hideCancel} hideCancel={hideCancel}
onSubmit={onSubmit} onSubmit={onSubmit}
submitText={submitText} submitText={tabSubmitText || submitText}
disabled={disabled} disabled={disabled}
submitButtonType="primary"
/> />
</div> </div>
</div> </div>

View File

@ -17,8 +17,8 @@ const CONTACT_VIEW_ROUTE = '/settings/contact-list/view-contact';
const REVEAL_SEED_ROUTE = '/seed'; const REVEAL_SEED_ROUTE = '/seed';
const MOBILE_SYNC_ROUTE = '/mobile-sync'; const MOBILE_SYNC_ROUTE = '/mobile-sync';
const RESTORE_VAULT_ROUTE = '/restore-vault'; const RESTORE_VAULT_ROUTE = '/restore-vault';
const ADD_TOKEN_ROUTE = '/add-token'; const IMPORT_TOKEN_ROUTE = '/import-token';
const CONFIRM_ADD_TOKEN_ROUTE = '/confirm-add-token'; const CONFIRM_IMPORT_TOKEN_ROUTE = '/confirm-import-token';
const CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE = '/confirm-add-suggested-token'; const CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE = '/confirm-add-suggested-token';
const NEW_ACCOUNT_ROUTE = '/new-account'; const NEW_ACCOUNT_ROUTE = '/new-account';
const IMPORT_ACCOUNT_ROUTE = '/new-account/import'; const IMPORT_ACCOUNT_ROUTE = '/new-account/import';
@ -85,8 +85,8 @@ const PATH_NAME_MAP = {
[REVEAL_SEED_ROUTE]: 'Reveal Secret Recovery Phrase Page', [REVEAL_SEED_ROUTE]: 'Reveal Secret Recovery Phrase Page',
[MOBILE_SYNC_ROUTE]: 'Sync With Mobile Page', [MOBILE_SYNC_ROUTE]: 'Sync With Mobile Page',
[RESTORE_VAULT_ROUTE]: 'Restore Vault Page', [RESTORE_VAULT_ROUTE]: 'Restore Vault Page',
[ADD_TOKEN_ROUTE]: 'Add Token Page', [IMPORT_TOKEN_ROUTE]: 'Import Token Page',
[CONFIRM_ADD_TOKEN_ROUTE]: 'Confirm Add Token Page', [CONFIRM_IMPORT_TOKEN_ROUTE]: 'Confirm Import Token Page',
[CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE]: 'Confirm Add Suggested Token Page', [CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE]: 'Confirm Add Suggested Token Page',
[NEW_ACCOUNT_ROUTE]: 'New Account Page', [NEW_ACCOUNT_ROUTE]: 'New Account Page',
[IMPORT_ACCOUNT_ROUTE]: 'Import Account Page', [IMPORT_ACCOUNT_ROUTE]: 'Import Account Page',
@ -143,8 +143,8 @@ export {
REVEAL_SEED_ROUTE, REVEAL_SEED_ROUTE,
MOBILE_SYNC_ROUTE, MOBILE_SYNC_ROUTE,
RESTORE_VAULT_ROUTE, RESTORE_VAULT_ROUTE,
ADD_TOKEN_ROUTE, IMPORT_TOKEN_ROUTE,
CONFIRM_ADD_TOKEN_ROUTE, CONFIRM_IMPORT_TOKEN_ROUTE,
CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE, CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE,
NEW_ACCOUNT_ROUTE, NEW_ACCOUNT_ROUTE,
IMPORT_ACCOUNT_ROUTE, IMPORT_ACCOUNT_ROUTE,

View File

@ -1,12 +0,0 @@
import React from 'react';
import { boolean } from '@storybook/addon-knobs';
import AddToken from './add-token.component';
export default {
title: 'Add Token',
};
export const AddTokenComponent = () => {
return <AddToken showSearchTab={boolean('Show Search Tab', false)} />;
};

View File

@ -1,3 +0,0 @@
import AddToken from './add-token.container';
export default AddToken;

View File

@ -74,7 +74,7 @@ export default class ConfirmAddSuggestedToken extends Component {
{this.context.t('addSuggestedTokens')} {this.context.t('addSuggestedTokens')}
</div> </div>
<div className="page-container__subtitle"> <div className="page-container__subtitle">
{this.context.t('likeToAddTokens')} {this.context.t('likeToImportTokens')}
</div> </div>
{hasTokenDuplicates ? ( {hasTokenDuplicates ? (
<div className="warning">{this.context.t('knownTokenWarning')}</div> <div className="warning">{this.context.t('knownTokenWarning')}</div>
@ -86,34 +86,34 @@ export default class ConfirmAddSuggestedToken extends Component {
) : null} ) : null}
</div> </div>
<div className="page-container__content"> <div className="page-container__content">
<div className="confirm-add-token"> <div className="confirm-import-token">
<div className="confirm-add-token__header"> <div className="confirm-import-token__header">
<div className="confirm-add-token__token"> <div className="confirm-import-token__token">
{this.context.t('token')} {this.context.t('token')}
</div> </div>
<div className="confirm-add-token__balance"> <div className="confirm-import-token__balance">
{this.context.t('balance')} {this.context.t('balance')}
</div> </div>
</div> </div>
<div className="confirm-add-token__token-list"> <div className="confirm-import-token__token-list">
{suggestedAssets.map(({ asset }) => { {suggestedAssets.map(({ asset }) => {
return ( return (
<div <div
className="confirm-add-token__token-list-item" className="confirm-import-token__token-list-item"
key={asset.address} key={asset.address}
> >
<div className="confirm-add-token__token confirm-add-token__data"> <div className="confirm-import-token__token confirm-import-token__data">
<Identicon <Identicon
className="confirm-add-token__token-icon" className="confirm-import-token__token-icon"
diameter={48} diameter={48}
address={asset.address} address={asset.address}
image={asset.image} image={asset.image}
/> />
<div className="confirm-add-token__name"> <div className="confirm-import-token__name">
{this.getTokenName(asset.name, asset.symbol)} {this.getTokenName(asset.name, asset.symbol)}
</div> </div>
</div> </div>
<div className="confirm-add-token__balance"> <div className="confirm-import-token__balance">
<TokenBalance token={asset} /> <TokenBalance token={asset} />
</div> </div>
</div> </div>

View File

@ -1,3 +0,0 @@
import ConfirmAddToken from './confirm-add-token.container';
export default ConfirmAddToken;

View File

@ -1,11 +1,14 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { ASSET_ROUTE, ADD_TOKEN_ROUTE } from '../../helpers/constants/routes'; import {
ASSET_ROUTE,
IMPORT_TOKEN_ROUTE,
} from '../../helpers/constants/routes';
import Button from '../../components/ui/button'; import Button from '../../components/ui/button';
import Identicon from '../../components/ui/identicon'; import Identicon from '../../components/ui/identicon';
import TokenBalance from '../../components/ui/token-balance'; import TokenBalance from '../../components/ui/token-balance';
export default class ConfirmAddToken extends Component { export default class ConfirmImportToken extends Component {
static contextTypes = { static contextTypes = {
t: PropTypes.func, t: PropTypes.func,
trackEvent: PropTypes.func, trackEvent: PropTypes.func,
@ -44,42 +47,42 @@ export default class ConfirmAddToken extends Component {
<div className="page-container"> <div className="page-container">
<div className="page-container__header"> <div className="page-container__header">
<div className="page-container__title"> <div className="page-container__title">
{this.context.t('addTokens')} {this.context.t('importTokensCamelCase')}
</div> </div>
<div className="page-container__subtitle"> <div className="page-container__subtitle">
{this.context.t('likeToAddTokens')} {this.context.t('likeToImportTokens')}
</div> </div>
</div> </div>
<div className="page-container__content"> <div className="page-container__content">
<div className="confirm-add-token"> <div className="confirm-import-token">
<div className="confirm-add-token__header"> <div className="confirm-import-token__header">
<div className="confirm-add-token__token"> <div className="confirm-import-token__token">
{this.context.t('token')} {this.context.t('token')}
</div> </div>
<div className="confirm-add-token__balance"> <div className="confirm-import-token__balance">
{this.context.t('balance')} {this.context.t('balance')}
</div> </div>
</div> </div>
<div className="confirm-add-token__token-list"> <div className="confirm-import-token__token-list">
{Object.entries(pendingTokens).map(([address, token]) => { {Object.entries(pendingTokens).map(([address, token]) => {
const { name, symbol } = token; const { name, symbol } = token;
return ( return (
<div <div
className="confirm-add-token__token-list-item" className="confirm-import-token__token-list-item"
key={address} key={address}
> >
<div className="confirm-add-token__token confirm-add-token__data"> <div className="confirm-import-token__token confirm-import-token__data">
<Identicon <Identicon
className="confirm-add-token__token-icon" className="confirm-import-token__token-icon"
diameter={48} diameter={48}
address={address} address={address}
/> />
<div className="confirm-add-token__name"> <div className="confirm-import-token__name">
{this.getTokenName(name, symbol)} {this.getTokenName(name, symbol)}
</div> </div>
</div> </div>
<div className="confirm-add-token__balance"> <div className="confirm-import-token__balance">
<TokenBalance token={token} /> <TokenBalance token={token} />
</div> </div>
</div> </div>
@ -94,7 +97,7 @@ export default class ConfirmAddToken extends Component {
type="default" type="default"
large large
className="page-container__footer-button" className="page-container__footer-button"
onClick={() => history.push(ADD_TOKEN_ROUTE)} onClick={() => history.push(IMPORT_TOKEN_ROUTE)}
> >
{this.context.t('back')} {this.context.t('back')}
</Button> </Button>
@ -128,7 +131,7 @@ export default class ConfirmAddToken extends Component {
}); });
}} }}
> >
{this.context.t('addTokens')} {this.context.t('importTokensCamelCase')}
</Button> </Button>
</footer> </footer>
</div> </div>

View File

@ -2,7 +2,7 @@ import { connect } from 'react-redux';
import { addTokens, clearPendingTokens } from '../../store/actions'; import { addTokens, clearPendingTokens } from '../../store/actions';
import { getMostRecentOverviewPage } from '../../ducks/history/history'; import { getMostRecentOverviewPage } from '../../ducks/history/history';
import ConfirmAddToken from './confirm-add-token.component'; import ConfirmImportToken from './confirm-import-token.component';
const mapStateToProps = (state) => { const mapStateToProps = (state) => {
const { const {
@ -21,4 +21,4 @@ const mapDispatchToProps = (dispatch) => {
}; };
}; };
export default connect(mapStateToProps, mapDispatchToProps)(ConfirmAddToken); export default connect(mapStateToProps, mapDispatchToProps)(ConfirmImportToken);

View File

@ -3,7 +3,7 @@ import React, { useEffect } from 'react';
import { createBrowserHistory } from 'history'; import { createBrowserHistory } from 'history';
import { text } from '@storybook/addon-knobs'; import { text } from '@storybook/addon-knobs';
import { store, getNewState } from '../../../.storybook/preview'; import { store } from '../../../.storybook/preview';
import { tokens } from '../../../.storybook/initial-states/approval-screens/add-token'; import { tokens } from '../../../.storybook/initial-states/approval-screens/add-token';
import { updateMetamaskState } from '../../store/actions'; import { updateMetamaskState } from '../../store/actions';
import ConfirmAddToken from '.'; import ConfirmAddToken from '.';
@ -20,30 +20,16 @@ const PageSet = ({ children }) => {
const pendingTokensState = state.metamask.pendingTokens; const pendingTokensState = state.metamask.pendingTokens;
// only change the first token in the list // only change the first token in the list
useEffect(() => { useEffect(() => {
pendingTokensState[ const pendingTokens = { ...pendingTokensState };
'0x33f90dee07c6e8b9682dd20f73e6c358b2ed0f03' pendingTokens['0x33f90dee07c6e8b9682dd20f73e6c358b2ed0f03'].symbol = symbol;
].symbol = symbol; store.dispatch(updateMetamaskState({ pendingTokens }));
store.dispatch( }, [symbol, pendingTokensState]);
updateMetamaskState(
getNewState(state.metamask, {
pendingTokens: pendingTokensState,
}),
),
);
}, [symbol, pendingTokensState, state.metamask]);
return children; return children;
}; };
export const AddToken = () => { export const AddToken = () => {
const state = store.getState(); store.dispatch(updateMetamaskState({ pendingTokens: tokens }));
store.dispatch(
updateMetamaskState(
getNewState(state.metamask, {
pendingTokens: tokens,
}),
),
);
return ( return (
<PageSet> <PageSet>
<ConfirmAddToken history={history} /> <ConfirmAddToken history={history} />

View File

@ -0,0 +1,3 @@
import ConfirmImportToken from './confirm-import-token.container';
export default ConfirmImportToken;

View File

@ -1,4 +1,4 @@
.confirm-add-token { .confirm-import-token {
padding: 16px; padding: 16px;
&__header { &__header {

View File

@ -6,7 +6,7 @@ import {
getURLHostName, getURLHostName,
} from '../../helpers/utils/util'; } from '../../helpers/utils/util';
import { tokenInfoGetter } from '../../helpers/utils/token-util'; import { tokenInfoGetter } from '../../helpers/utils/token-util';
import { CONFIRM_ADD_TOKEN_ROUTE } from '../../helpers/constants/routes'; import { CONFIRM_IMPORT_TOKEN_ROUTE } from '../../helpers/constants/routes';
import TextField from '../../components/ui/text-field'; import TextField from '../../components/ui/text-field';
import PageContainer from '../../components/ui/page-container'; import PageContainer from '../../components/ui/page-container';
import { Tabs, Tab } from '../../components/ui/tabs'; import { Tabs, Tab } from '../../components/ui/tabs';
@ -24,7 +24,7 @@ const emptyAddr = '0x0000000000000000000000000000000000000000';
const MIN_DECIMAL_VALUE = 0; const MIN_DECIMAL_VALUE = 0;
const MAX_DECIMAL_VALUE = 36; const MAX_DECIMAL_VALUE = 36;
class AddToken extends Component { class ImportToken extends Component {
static contextTypes = { static contextTypes = {
t: PropTypes.func, t: PropTypes.func,
}; };
@ -163,7 +163,7 @@ class AddToken extends Component {
}; };
setPendingTokens({ customToken, selectedTokens, tokenAddressList }); setPendingTokens({ customToken, selectedTokens, tokenAddressList });
history.push(CONFIRM_ADD_TOKEN_ROUTE); history.push(CONFIRM_IMPORT_TOKEN_ROUTE);
} }
async attemptToAutoFillTokenParams(address) { async attemptToAutoFillTokenParams(address) {
@ -281,7 +281,25 @@ class AddToken extends Component {
: this.context.t('etherscan'); : this.context.t('etherscan');
return ( return (
<div className="add-token__custom-token-form"> <div className="import-token__custom-token-form">
<ActionableMessage
message={this.context.t('fakeTokenWarning', [
<Button
type="link"
key="import-token-fake-token-warning"
className="import-token__link"
rel="noopener noreferrer"
target="_blank"
href="https://metamask.zendesk.com/hc/en-us/articles/4403988839451"
>
{this.context.t('learnScamRisk')}
</Button>,
])}
type="warning"
withRightButton
useIcon
iconFillColor="#f8c000"
/>
<TextField <TextField
id="custom-address" id="custom-address"
label={this.context.t('tokenContractAddress')} label={this.context.t('tokenContractAddress')}
@ -296,13 +314,13 @@ class AddToken extends Component {
<TextField <TextField
id="custom-symbol" id="custom-symbol"
label={ label={
<div className="add-token__custom-symbol__label-wrapper"> <div className="import-token__custom-symbol__label-wrapper">
<span className="add-token__custom-symbol__label"> <span className="import-token__custom-symbol__label">
{this.context.t('tokenSymbol')} {this.context.t('tokenSymbol')}
</span> </span>
{symbolAutoFilled && !forceEditSymbol && ( {symbolAutoFilled && !forceEditSymbol && (
<div <div
className="add-token__custom-symbol__edit" className="import-token__custom-symbol__edit"
onClick={() => this.setState({ forceEditSymbol: true })} onClick={() => this.setState({ forceEditSymbol: true })}
> >
{this.context.t('edit')} {this.context.t('edit')}
@ -348,8 +366,8 @@ class AddToken extends Component {
{this.context.t('verifyThisTokenDecimalOn', [ {this.context.t('verifyThisTokenDecimalOn', [
<Button <Button
type="link" type="link"
key="add-token-verify-token-decimal" key="import-token-verify-token-decimal"
className="add-token__link" className="import-token__link"
rel="noopener noreferrer" rel="noopener noreferrer"
target="_blank" target="_blank"
href={blockExplorerTokenLink} href={blockExplorerTokenLink}
@ -362,7 +380,7 @@ class AddToken extends Component {
} }
type="warning" type="warning"
withRightButton withRightButton
className="add-token__decimal-warning" className="import-token__decimal-warning"
/> />
)} )}
</div> </div>
@ -373,7 +391,7 @@ class AddToken extends Component {
const { tokenList } = this.props; const { tokenList } = this.props;
const { tokenSelectorError, selectedTokens, searchResults } = this.state; const { tokenSelectorError, selectedTokens, searchResults } = this.state;
return ( return (
<div className="add-token__search-token"> <div className="import-token__search-token">
<TokenSearch <TokenSearch
onSearch={({ results = [] }) => onSearch={({ results = [] }) =>
this.setState({ searchResults: results }) this.setState({ searchResults: results })
@ -381,7 +399,7 @@ class AddToken extends Component {
error={tokenSelectorError} error={tokenSelectorError}
tokenList={tokenList} tokenList={tokenList}
/> />
<div className="add-token__token-list"> <div className="import-token__token-list">
<TokenList <TokenList
results={searchResults} results={searchResults}
selectedTokens={selectedTokens} selectedTokens={selectedTokens}
@ -417,11 +435,12 @@ class AddToken extends Component {
return ( return (
<PageContainer <PageContainer
title={this.context.t('addTokens')} title={this.context.t('importTokensCamelCase')}
tabsComponent={this.renderTabs()} tabsComponent={this.renderTabs()}
onSubmit={() => this.handleNext()} onSubmit={() => this.handleNext()}
hideCancel
disabled={Boolean(this.hasError()) || !this.hasSelected()} disabled={Boolean(this.hasError()) || !this.hasSelected()}
onCancel={() => { onClose={() => {
clearPendingTokens(); clearPendingTokens();
history.push(mostRecentOverviewPage); history.push(mostRecentOverviewPage);
}} }}
@ -430,4 +449,4 @@ class AddToken extends Component {
} }
} }
export default AddToken; export default ImportToken;

View File

@ -7,7 +7,7 @@ import {
getRpcPrefsForCurrentProvider, getRpcPrefsForCurrentProvider,
getTokenList, getTokenList,
} from '../../selectors/selectors'; } from '../../selectors/selectors';
import AddToken from './add-token.component'; import ImportToken from './import-token.component';
const mapStateToProps = (state) => { const mapStateToProps = (state) => {
const { const {
@ -37,4 +37,4 @@ const mapDispatchToProps = (dispatch) => {
}; };
}; };
export default connect(mapStateToProps, mapDispatchToProps)(AddToken); export default connect(mapStateToProps, mapDispatchToProps)(ImportToken);

View File

@ -0,0 +1,12 @@
import React from 'react';
import { boolean } from '@storybook/addon-knobs';
import ImportToken from './import-token.component';
export default {
title: 'Import Token',
};
export const ImportTokenComponent = () => {
return <ImportToken showSearchTab={boolean('Show Search Tab', false)} />;
};

View File

@ -3,9 +3,9 @@ import { Provider } from 'react-redux';
import sinon from 'sinon'; import sinon from 'sinon';
import configureMockStore from 'redux-mock-store'; import configureMockStore from 'redux-mock-store';
import { mountWithRouter } from '../../../test/lib/render-helpers'; import { mountWithRouter } from '../../../test/lib/render-helpers';
import AddToken from './add-token.container'; import ImportToken from './import-token.container';
describe('Add Token', () => { describe('Import Token', () => {
let wrapper; let wrapper;
const state = { const state = {
@ -29,11 +29,11 @@ describe('Add Token', () => {
tokenList: {}, tokenList: {},
}; };
describe('Add Token', () => { describe('Import Token', () => {
beforeAll(() => { beforeAll(() => {
wrapper = mountWithRouter( wrapper = mountWithRouter(
<Provider store={store}> <Provider store={store}>
<AddToken.WrappedComponent {...props} /> <ImportToken.WrappedComponent {...props} />
</Provider>, </Provider>,
store, store,
); );
@ -47,7 +47,7 @@ describe('Add Token', () => {
it('next button is disabled when no fields are populated', () => { it('next button is disabled when no fields are populated', () => {
const nextButton = wrapper.find( const nextButton = wrapper.find(
'.button.btn-secondary.page-container__footer-button', '.button.btn-primary.page-container__footer-button',
); );
expect(nextButton.props().disabled).toStrictEqual(true); expect(nextButton.props().disabled).toStrictEqual(true);
@ -60,7 +60,7 @@ describe('Add Token', () => {
customAddress.simulate('change', event); customAddress.simulate('change', event);
expect( expect(
wrapper.find('AddToken').instance().state.customAddress, wrapper.find('ImportToken').instance().state.customAddress,
).toStrictEqual(tokenAddress); ).toStrictEqual(tokenAddress);
}); });
@ -71,7 +71,7 @@ describe('Add Token', () => {
customAddress.last().simulate('change', event); customAddress.last().simulate('change', event);
expect( expect(
wrapper.find('AddToken').instance().state.customSymbol, wrapper.find('ImportToken').instance().state.customSymbol,
).toStrictEqual(tokenSymbol); ).toStrictEqual(tokenSymbol);
}); });
@ -82,27 +82,25 @@ describe('Add Token', () => {
customAddress.last().simulate('change', event); customAddress.last().simulate('change', event);
expect( expect(
wrapper.find('AddToken').instance().state.customDecimals, wrapper.find('ImportToken').instance().state.customDecimals,
).toStrictEqual(Number(tokenPrecision)); ).toStrictEqual(Number(tokenPrecision));
}); });
it('next', () => { it('next', () => {
const nextButton = wrapper.find( const nextButton = wrapper.find(
'.button.btn-secondary.page-container__footer-button', '.button.btn-primary.page-container__footer-button',
); );
nextButton.simulate('click'); nextButton.simulate('click');
expect(props.setPendingTokens.calledOnce).toStrictEqual(true); expect(props.setPendingTokens.calledOnce).toStrictEqual(true);
expect(props.history.push.calledOnce).toStrictEqual(true); expect(props.history.push.calledOnce).toStrictEqual(true);
expect(props.history.push.getCall(0).args[0]).toStrictEqual( expect(props.history.push.getCall(0).args[0]).toStrictEqual(
'/confirm-add-token', '/confirm-import-token',
); );
}); });
it('cancels', () => { it('cancels', () => {
const cancelButton = wrapper.find( const cancelButton = wrapper.find('.page-container__header-close');
'button.btn-default.page-container__footer-button',
);
cancelButton.simulate('click'); cancelButton.simulate('click');
expect(props.clearPendingTokens.calledOnce).toStrictEqual(true); expect(props.clearPendingTokens.calledOnce).toStrictEqual(true);

View File

@ -0,0 +1,3 @@
import ImportToken from './import-token.container';
export default ImportToken;

View File

@ -1,6 +1,6 @@
@import 'token-list/index'; @import 'token-list/index';
.add-token { .import-token {
$self: &; $self: &;
&__custom-token-form { &__custom-token-form {

View File

@ -1,7 +1,7 @@
/** Please import your files in alphabetical order **/ /** Please import your files in alphabetical order **/
@import 'add-token/index'; @import 'import-token/index';
@import 'asset/asset'; @import 'asset/asset';
@import 'confirm-add-token/index'; @import 'confirm-import-token/index';
@import 'confirm-approve/index'; @import 'confirm-approve/index';
@import 'confirm-decrypt-message/confirm-decrypt-message'; @import 'confirm-decrypt-message/confirm-decrypt-message';
@import 'confirm-encryption-public-key/confirm-encryption-public-key'; @import 'confirm-encryption-public-key/confirm-encryption-public-key';

View File

@ -17,8 +17,8 @@ import PermissionsConnect from '../permissions-connect';
import RestoreVaultPage from '../keychains/restore-vault'; import RestoreVaultPage from '../keychains/restore-vault';
import RevealSeedConfirmation from '../keychains/reveal-seed'; import RevealSeedConfirmation from '../keychains/reveal-seed';
import MobileSyncPage from '../mobile-sync'; import MobileSyncPage from '../mobile-sync';
import AddTokenPage from '../add-token'; import ImportTokenPage from '../import-token';
import ConfirmAddTokenPage from '../confirm-add-token'; import ConfirmImportTokenPage from '../confirm-import-token';
import ConfirmAddSuggestedTokenPage from '../confirm-add-suggested-token'; import ConfirmAddSuggestedTokenPage from '../confirm-add-suggested-token';
import CreateAccountPage from '../create-account'; import CreateAccountPage from '../create-account';
import Loading from '../../components/ui/loading-screen'; import Loading from '../../components/ui/loading-screen';
@ -33,10 +33,9 @@ import Alerts from '../../components/app/alerts';
import Asset from '../asset'; import Asset from '../asset';
import { import {
ADD_TOKEN_ROUTE, IMPORT_TOKEN_ROUTE,
ASSET_ROUTE, ASSET_ROUTE,
CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE, CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE,
CONFIRM_ADD_TOKEN_ROUTE,
CONFIRM_TRANSACTION_ROUTE, CONFIRM_TRANSACTION_ROUTE,
CONNECT_ROUTE, CONNECT_ROUTE,
DEFAULT_ROUTE, DEFAULT_ROUTE,
@ -53,6 +52,7 @@ import {
UNLOCK_ROUTE, UNLOCK_ROUTE,
BUILD_QUOTE_ROUTE, BUILD_QUOTE_ROUTE,
CONFIRMATION_V_NEXT_ROUTE, CONFIRMATION_V_NEXT_ROUTE,
CONFIRM_IMPORT_TOKEN_ROUTE,
} from '../../helpers/constants/routes'; } from '../../helpers/constants/routes';
import { import {
@ -146,10 +146,14 @@ export default class Routes extends Component {
exact exact
/> />
<Authenticated path={SWAPS_ROUTE} component={Swaps} /> <Authenticated path={SWAPS_ROUTE} component={Swaps} />
<Authenticated path={ADD_TOKEN_ROUTE} component={AddTokenPage} exact />
<Authenticated <Authenticated
path={CONFIRM_ADD_TOKEN_ROUTE} path={IMPORT_TOKEN_ROUTE}
component={ConfirmAddTokenPage} component={ImportTokenPage}
exact
/>
<Authenticated
path={CONFIRM_IMPORT_TOKEN_ROUTE}
component={ConfirmImportTokenPage}
exact exact
/> />
<Authenticated <Authenticated