mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-21 17:37:01 +01:00
Release MultiChain 0.5 (#18903)
* Show portfolio icon in ETH overview
* Show new copy button in QR code modal
* Show address copy button in wallet overview
* Update connected status component
* Remove legacy MenuBar
* Remove legacy ImportTokenLink
* Remove AssetListItem
* Remove DetectedTokensLink
* Remove legacy AppHeader
* Remove MULTICHAIN flag from builds.yml
* Remove legacy AccountMenu
* FIX: Token cell snapshot
* Add data-testid for Account Picker
* Remove multichain check in LoadingNetworkScreen
* Remove MULTICHAIN check for AccountDetailsModal
* Remove MULTICHAIN check for AssetList
* Update QR dimensions
* Remove MULTICHAIN declaration from metamaskrc.dist
* Implement PickerNetwork and NetworkListMenu in onboarding
* Remove legacy NetworkDropdown and Dropdown
* Remove documentation about legacy account menu
* FIX: Fixes route tests for missing data-testid=network-display
* Fix account-menu-icon data-testid
* Fix TokenCell test
* FIX Onboarding Flow tests
* Remove unused locales from AccountMenu removal
* E2E: Fix Import Secret Recovery Phrase: logs out of the vault
* E2E: Fix Show account details: should show the QR code for the account
* E2E: Fix add-account.spec.js
* E2E: Fix state-logs.spec.js
* E2E: Fix lock-account.spec.js
* E2E: Fix settings-general.spec.js
* E2E: Fix advanced-settings.spec.js
* E2E: Fix auto-lock.spec.js
* E2E: Fix backup-restore.spec.js
* E2E: Fix clear-activity.spec.js
* E2E: Fix settings-search.spec.js
* E2E: Fix encrypt-decrypt.spec.js
* E2E: Fix dapp-interactions.spec.js
* E2E: Fix test-snap-management.spec.js
* E2E: Fix add-custom-network.spec.js
* E2E: Fix from-import-ui.spec.js
* E2E: Fix provider-api.spec.js
* E2E: Fix chain-interactions.spec.js
* E2E: Fix custom-rpc-history.spec.js
* Remove network icon from overview components
* E2E: Fix user-actions-benchmark.js
* E2E: Fix benchmark.js
* E2E: Fix add-hide-token.spec.js
* E2E: Fix address-book.spec.js
* E2E: Fix custom-token-add-approve.spec.js
* E2E: Fix incremental-security.spec.js
* E2E: Fix metamask-responsive-ui.spec.js
* E2E: Onboarding.spec.js
* E2E: Fix permissions.spec.js
* E2E: Fix send-hex-address.spec.js
* E2E: Fix send-to-contract.spec.js
* Remove dead AccountOptionsMenu test
* E2E: Fix token-details.spec.js
* E2E: Fix switch-custom-network.spec.js
* E2E: Fix metamask-ui.spec.js
* Revert "UX Multichain: updated border top for activity list (#19176)"
This reverts commit 15598f2a23
.
* E2Es: Fix test-snap-management.spec.js and test-snap-notification.spec.js
* E2Es: Fix add-account.spec.js after flaky test fixes
* e2e flaky test
* adds back the mmi options
* scss fix
* test fix
* removes unnecessary double quotes
* Prevent double logos on login screen
* Update ui/components/ui/list-item/index.scss
Co-authored-by: Nidhi Kumari <nidhi.kumari@consensys.net>
---------
Co-authored-by: seaona <mariona@gmx.es>
Co-authored-by: Antonio Regadas <antonio.regadas@consensys.net>
Co-authored-by: Nidhi Kumari <nidhi.kumari@consensys.net>
This commit is contained in:
parent
2a227c4646
commit
b89630fdd2
@ -9,7 +9,6 @@ INFURA_PROJECT_ID=00000000000
|
||||
;SWAPS_USE_DEV_APIS=
|
||||
;PORTFOLIO_URL=
|
||||
;TRANSACTION_SECURITY_PROVIDER=
|
||||
;MULTICHAIN=
|
||||
|
||||
; Set this to test changes to the phishing warning page.
|
||||
;PHISHING_WARNING_PAGE_URL=
|
||||
|
10
app/_locales/am/messages.json
generated
10
app/_locales/am/messages.json
generated
@ -148,9 +148,6 @@
|
||||
"connect": {
|
||||
"message": "ይገናኙ"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "ከሃርድዌር ቋት ጋር ይገናኙ"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "ከ $1ጋር መገናኘት"
|
||||
},
|
||||
@ -187,9 +184,6 @@
|
||||
"create": {
|
||||
"message": "ፍጠር"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "መለያ ፍጠር"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "የይለፍ ቃል ፍጠር"
|
||||
},
|
||||
@ -798,10 +792,6 @@
|
||||
"transferFrom": {
|
||||
"message": "የማዛወሪያ ቅጽ"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "የተለዋጭ ስም ቀሪ ሂሳብዎን ስንጭን ችግር አጋጥሞናል። ማየት ይችላሉ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "እንደገና ሞክር"
|
||||
},
|
||||
|
10
app/_locales/ar/messages.json
generated
10
app/_locales/ar/messages.json
generated
@ -158,9 +158,6 @@
|
||||
"connect": {
|
||||
"message": "اتصال"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "ربط محفظة الأجهزة"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "جارِ الاتصال بـ $1"
|
||||
},
|
||||
@ -197,9 +194,6 @@
|
||||
"create": {
|
||||
"message": "إنشاء"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "إنشاء حساب"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "إنشاء كلمة مرور"
|
||||
},
|
||||
@ -810,10 +804,6 @@
|
||||
"transferFrom": {
|
||||
"message": "التحويل من"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "واجهتنا مشكلة في تحميل أرصدتك من العملات الرمزية. يمكنك الاطلاع عليها",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "إعادة المحاولة"
|
||||
},
|
||||
|
10
app/_locales/bg/messages.json
generated
10
app/_locales/bg/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Свързване"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Свържете хардуерен портфейл"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Свързване с $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Създаване"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Създай акаунт"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Създаване на парола"
|
||||
},
|
||||
@ -809,10 +803,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Трансфер от"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Имахме проблеми със зареждането на вашите символи. Можете да ги видите",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Нов опит"
|
||||
},
|
||||
|
10
app/_locales/bn/messages.json
generated
10
app/_locales/bn/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "সংযুক্ত করুন"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "হার্ডওয়্যার ওয়ালেট সংযুক্ত করুন"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": " $1 এর সাথে সংযোগ করছে"
|
||||
},
|
||||
@ -190,9 +187,6 @@
|
||||
"create": {
|
||||
"message": "তৈরি করুন"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "অ্যাকাউন্ট তৈরি করুন"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "পাসওয়ার্ড তৈরি করুন"
|
||||
},
|
||||
@ -807,10 +801,6 @@
|
||||
"transferFrom": {
|
||||
"message": "থেকে ট্রান্সফার করুন"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "আপনার টোকেন ব্যালেন্সগুলি লোড করতে আমাদের সমস্যা হয়েছিল। আপনি সেগুলি দেখতে পারেন",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "আবার করুন"
|
||||
},
|
||||
|
10
app/_locales/ca/messages.json
generated
10
app/_locales/ca/messages.json
generated
@ -151,9 +151,6 @@
|
||||
"connect": {
|
||||
"message": "Connecta"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Connectar Moneder Hardaware"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Connectant a $1 "
|
||||
},
|
||||
@ -190,9 +187,6 @@
|
||||
"create": {
|
||||
"message": "Crea"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Crea "
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Crear Contrasenya"
|
||||
},
|
||||
@ -785,10 +779,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Transferir Des de"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Hem tingut problemes en carregar el teu saldo de fitxes. Els pots veure",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Torna-ho a provar"
|
||||
},
|
||||
|
7
app/_locales/cs/messages.json
generated
7
app/_locales/cs/messages.json
generated
@ -81,9 +81,6 @@
|
||||
"create": {
|
||||
"message": "Vytvořit"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Vytvořit účet"
|
||||
},
|
||||
"customToken": {
|
||||
"message": "Vlastní token"
|
||||
},
|
||||
@ -364,10 +361,6 @@
|
||||
"transactionError": {
|
||||
"message": "Chyba transakce. Vyhozena výjimka v kódu kontraktu."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Měli jsme problém s načtením vašich tokenových zůstatků. Můžete je vidět ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"typePassword": {
|
||||
"message": "Zadejte své heslo"
|
||||
},
|
||||
|
10
app/_locales/da/messages.json
generated
10
app/_locales/da/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Få forbindelse"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Forbind Hardwarepung"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Forbinder til $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Opret"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Opret konto"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Opret adgangskode"
|
||||
},
|
||||
@ -782,10 +776,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Overfør fra"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Vi havde problemer med at indlæse dine tokenbalancer. Du kan se dem",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Prøv igen"
|
||||
},
|
||||
|
29
app/_locales/de/messages.json
generated
29
app/_locales/de/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Konto verbinden oder Neues erstellen"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Hardware-Wallet verknüpfen"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Manuelle Verbindung zur aktuellen Site"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Erstellen"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Konto erstellen"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Eine neue Wallet erstellen"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Jeder kann ein Token mit beliebigem Namen erstellen, einschließlich gefälschter Versionen bestehender Token. Hinzufügen und Handeln auf eigene Gefahr!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "Token importieren"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Token importieren"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Hier anfragen"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Sie sehen Ihren Token nicht?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Mehr in Kürze ..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Nicht genügend Gas"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Benachrichtigungen"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Einstellungen ansehen",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Wählen Sie dies aus, um das Hexdatenfeld auf dem Senden-Bildschirm anzuzeigen"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Ein-/Ausblenden"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Eingehende Transaktionen anzeigen"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Status"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Verbinden"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Nicht verbunden"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "eth_sign-Anfragen ein- oder ausschalten"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 Test-Netzwerke",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "Beim Starten von MetaMask ist ein Problem aufgetreten. Dies könnte ein vorübergehendes Problem sein. Versuchen Sie daher, die Erweiterung neu zu starten."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Wir haben Schwierigkeiten dein Tokenguthaben zu laden. Du kannst es hier anzeigen lassen",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Durch Erteilung der Erlaubnis erlauben Sie den folgenden $1 Zugriff auf Ihr Guthaben"
|
||||
},
|
||||
|
29
app/_locales/el/messages.json
generated
29
app/_locales/el/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Σύνδεση λογαριασμού ή δημιουργία νέου"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Σύνδεση Πορτοφολιού Υλικού"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Χειροκίνητη σύνδεση στον τρέχοντα ιστότοπο"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Δημιουργία"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Δημιουργία Λογαριασμού"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Δημιουργήστε ένα νέο πορτοφόλι"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Ο καθένας μπορεί να δημιουργήσει ένα token με οποιοδήποτε όνομα, συμπεριλαμβανομένων ψεύτικων εκδόσεων των υφιστάμενων νομισμάτων. Προσθέστε και ανταλλάξτε με δική σας ευθύνη!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "εισαγωγή token"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Εισαγωγή Token"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Υποβάλετε αίτημα εδώ"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Δεν βλέπετε το token σας;"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Περισσότερα έρχονται σύντομα..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Δεν Υπάρχει Αρκετό τέλος συναλλαγής"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Ειδοποιήσεις"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Μετάβαση στις Ρυθμίσεις",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3211,9 +3196,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Επιλέξτε αυτό για να εμφανίσετε το πεδίο hex δεδομένων στην οθόνη αποστολής"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Εμφάνιση/απόκρυψη"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Εμφάνιση Εισερχομένων Συναλλαγών"
|
||||
},
|
||||
@ -3413,9 +3395,6 @@
|
||||
"status": {
|
||||
"message": "Κατάσταση"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Συνδεδεμένο"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Δεν έχει συνδεθεί"
|
||||
},
|
||||
@ -3920,10 +3899,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Εναλλαγή αιτημάτων eth_sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 δοκιμαστικά δίκτυα",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Διακριτικό"
|
||||
},
|
||||
@ -4103,10 +4078,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "Το MetaMask αντιμετώπισε πρόβλημα κατά την εκκίνηση. Αυτό το σφάλμα μπορεί να είναι τυχαίο, γι' αυτό προσπαθήστε να επανεκκινήσετε την επέκταση."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Είχαμε πρόβλημα να φορτώσουμε τα υπόλοιπα του διακριτικού σας. Μπορείτε να τα δείτε ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Χορηγώντας άδεια, επιτρέπετε στα ακόλουθα $1 να έχουν πρόσβαση στα χρήματά σας"
|
||||
},
|
||||
|
34
app/_locales/en/messages.json
generated
34
app/_locales/en/messages.json
generated
@ -745,9 +745,6 @@
|
||||
"connectCustodialAccountTitle": {
|
||||
"message": "Custodial Accounts"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Connect hardware wallet"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Manually connect to current site"
|
||||
},
|
||||
@ -895,9 +892,6 @@
|
||||
"create": {
|
||||
"message": "Create"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Create account"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Create a new wallet"
|
||||
},
|
||||
@ -1798,7 +1792,9 @@
|
||||
"message": "full access to your wallet and funds.",
|
||||
"description": "Is the bolded text in 'holdToRevealContentPrivateKey2'"
|
||||
},
|
||||
"holdToRevealLockedLabel": { "message": "hold to reveal circle locked" },
|
||||
"holdToRevealLockedLabel": {
|
||||
"message": "hold to reveal circle locked"
|
||||
},
|
||||
"holdToRevealPrivateKey": {
|
||||
"message": "Hold to reveal Private Key"
|
||||
},
|
||||
@ -1811,7 +1807,9 @@
|
||||
"holdToRevealSRPTitle": {
|
||||
"message": "Keep your SRP safe"
|
||||
},
|
||||
"holdToRevealUnlockedLabel": { "message": "hold to reveal circle unlocked" },
|
||||
"holdToRevealUnlockedLabel": {
|
||||
"message": "hold to reveal circle unlocked"
|
||||
},
|
||||
"id": {
|
||||
"message": "Id"
|
||||
},
|
||||
@ -1879,9 +1877,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Anyone can create a token with any name, including fake versions of existing tokens. Add and trade at your own risk!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "import tokens"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Import tokens"
|
||||
},
|
||||
@ -2262,9 +2257,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Request here"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Don't see your token?"
|
||||
},
|
||||
"mmiAddToken": {
|
||||
"message": "The page at $1 would like to authorise the following custodian token in MetaMask Institutional"
|
||||
},
|
||||
@ -3715,9 +3707,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Select this to show the hex data field on the send screen"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Show/hide"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Show incoming transactions"
|
||||
},
|
||||
@ -3984,9 +3973,6 @@
|
||||
"status": {
|
||||
"message": "Status"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Connected"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Not connected"
|
||||
},
|
||||
@ -4556,10 +4542,6 @@
|
||||
"toggleEthSignOn": {
|
||||
"message": "ON (Not recommended)"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 test networks",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4770,10 +4752,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask had trouble starting. This error could be intermittent, so try restarting the extension."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "We had trouble loading your token balances. You can view them ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "By granting permission, you are allowing the following $1 to access your funds"
|
||||
},
|
||||
|
29
app/_locales/es/messages.json
generated
29
app/_locales/es/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Conectar cuenta o crear nueva"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Conectar la cartera de hardware"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Conectarse manualmente al sitio actual"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Crear"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Crear cuenta"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Crear una cartera nueva"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Toda persona puede crear un token con cualquier nombre, incluso versiones falsas de tokens existentes. ¡Agréguelo y realice transacciones bajo su propio riesgo!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "agregar activo"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Importar tokens"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Solicítelo aquí"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "¿No ve su token?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Más próximamente..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "No hay gas suficiente"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Notificaciones"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Ir a configuración",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Seleccione esta opción para mostrar el campo de datos hexadecimales en la pantalla de envío"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Mostrar/ocultar"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Mostrar transacciones entrantes"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Estado"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Conectado"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "No conectado"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Alternar solicitudes de eth_sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 redes de prueba",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask tuvo problemas para iniciar. Este error podría ser intermitente, así que intente reiniciar la extensión."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Tuvimos problemas al cargar los saldos de token. Puede verlos ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Al conceder el permiso, usted permite que los siguientes $1 tengan acceso a sus fondos"
|
||||
},
|
||||
|
26
app/_locales/es_419/messages.json
generated
26
app/_locales/es_419/messages.json
generated
@ -389,9 +389,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Conectar cuenta o crear nueva"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Conectar la cartera de hardware"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Conectarse manualmente al sitio actual"
|
||||
},
|
||||
@ -499,9 +496,6 @@
|
||||
"create": {
|
||||
"message": "Crear"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Crear cuenta"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Crear una nueva cartera"
|
||||
},
|
||||
@ -1091,9 +1085,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Toda persona puede crear un token con cualquier nombre, incluso versiones falsas de tokens existentes. ¡Agréguelo y realice transacciones bajo su propio riesgo!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "importar tokens"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Importar tokens"
|
||||
},
|
||||
@ -1351,9 +1342,6 @@
|
||||
"missingNFT": {
|
||||
"message": "¿No ve su NFT?"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "¿No ve su token?"
|
||||
},
|
||||
"mustSelectOne": {
|
||||
"message": "Debe seleccionar al menos 1 token."
|
||||
},
|
||||
@ -2064,9 +2052,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Seleccione esta opción para mostrar el campo de datos hexadecimales en la pantalla de envío"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Mostrar/ocultar"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Mostrar transacciones entrantes"
|
||||
},
|
||||
@ -2168,9 +2153,6 @@
|
||||
"stateLogsDescription": {
|
||||
"message": "Los registros de estado contienen sus direcciones de cuentas públicas y las transacciones enviadas."
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Conectado"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "No conectado"
|
||||
},
|
||||
@ -2549,10 +2531,6 @@
|
||||
"message": "Para: $1",
|
||||
"description": "$1 is the address to include in the To label. It is typically shortened first using shortenAddress"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 redes de prueba",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -2692,10 +2670,6 @@
|
||||
"message": "Tuvimos problemas al conectar su $1. Pruebe revisar $2 e inténtelo de nuevo.",
|
||||
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Tuvimos problemas al cargar los saldos de token. Puede verlos ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Al conceder el permiso, usted permite que los siguientes $1 tengan acceso a sus fondos"
|
||||
},
|
||||
|
10
app/_locales/et/messages.json
generated
10
app/_locales/et/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Ühendamine"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Ühendage riistvara rahakott"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Ühenduse loomine $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Loo"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Loo konto"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Loo parool"
|
||||
},
|
||||
@ -803,10 +797,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Ülekandmine asukohast"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Teie loasaldode laadimisega oli probleem. Saate neid vaadata",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Proovi uuesti"
|
||||
},
|
||||
|
10
app/_locales/fa/messages.json
generated
10
app/_locales/fa/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "اتصال"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "اتصال کیف سخت افزار"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "در حال اتصال به 1$1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "ایجاد"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "ایجاد حساب"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "ایجاد رمز عبور"
|
||||
},
|
||||
@ -813,10 +807,6 @@
|
||||
"transferFrom": {
|
||||
"message": "انتقال از"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "ما در بارگیری صورت حساب های رمزیاب تان دچار مشکل شدیم. شما میتوانید آنها را مشاهده کنید",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "امتحان مجدد"
|
||||
},
|
||||
|
10
app/_locales/fi/messages.json
generated
10
app/_locales/fi/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Muodosta yhteys"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Yhdistä laitteistokukkaro"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Yhdistetään summaan $1 "
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Luo"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Luo tili"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Luo salasana"
|
||||
},
|
||||
@ -810,10 +804,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Siirto kohteesta"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Kohtasimme ongelmia ladatessamme tietuesaldojasi. Voit katsella niitä kohteessa",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Yritä uudelleen"
|
||||
},
|
||||
|
10
app/_locales/fil/messages.json
generated
10
app/_locales/fil/messages.json
generated
@ -133,9 +133,6 @@
|
||||
"connect": {
|
||||
"message": "Kumonekta"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Magkonekta ng Hardware Wallet"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Kumokonekta sa $1"
|
||||
},
|
||||
@ -172,9 +169,6 @@
|
||||
"create": {
|
||||
"message": "Gumawa"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Gumawa ng Account"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Gumawa ng Password"
|
||||
},
|
||||
@ -725,10 +719,6 @@
|
||||
"transferFrom": {
|
||||
"message": "I-transfer Mula Sa"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Nagkaroon kami ng problema sa pag-loading sa iyong mga token balance. Makikita mo ang mga iyon ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Subukang muli"
|
||||
},
|
||||
|
29
app/_locales/fr/messages.json
generated
29
app/_locales/fr/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Connecter un compte ou en créer un nouveau"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Connecter un portefeuille matériel"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Se connecter manuellement au site actuel"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Créer"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Créer un compte"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Créer un nouveau portefeuille"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Tout un chacun peut créer un jeton avec n’importe quel nom, y compris de fausses versions de jetons existants. Ajoutez et échangez avec prudence !"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "importer des jetons"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Importer des jetons"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Demandez ici"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Vous ne voyez pas votre jeton ?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "D’autres à venir..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Pas assez de gaz"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Notifications"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Ouvrir les paramètres",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Selectionner ici pour afficher le champs de données hex dans l’écran d’envoi"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Afficher/masquer"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Afficher les transactions entrantes"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "État"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Connecté"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Non connecté"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Activer/Désactiver les requêtes eth-sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 réseaux de test",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Jeton"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "Impossible de démarrer MetaMask. Cette erreur peut être occasionnelle, essayez donc de redémarrer lextension."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Nous avons eu du mal à charger votre balance de jetons, vous pouvez la consulter ici :",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "En accordant cette autorisation, vous permettez au(x) $1 suivant(s) d’accéder à vos fonds"
|
||||
},
|
||||
|
10
app/_locales/he/messages.json
generated
10
app/_locales/he/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "התחברות"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "חבר ארנק חומרה"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "מתחבר ל- $1 "
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "צור"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "פתיחת חשבון"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "יצירת ססמה"
|
||||
},
|
||||
@ -810,10 +804,6 @@
|
||||
"transferFrom": {
|
||||
"message": "העברה מ-"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "לא הצלחנו לטעון את יתרות הטוקנים שלך. באפשרותך להציג אותן",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "ניסיון חוזר"
|
||||
},
|
||||
|
29
app/_locales/hi/messages.json
generated
29
app/_locales/hi/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "खाता कनेक्ट करें या नया बनाएं"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "हार्डवेयर वॉलेट कनेक्ट करें"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "वर्तमान साइट से मैन्युअल रूप से कनेक्ट करें"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "बनाएं"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "अकाउंट बनाएं"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "एक नया वॉलेट बनाएं"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "कोई भी किसी भी नाम के साथ एक टोकन बना सकता है, जिसमें मौजूदा टोकन के नकली संस्करण शामिल हैं। अपने जोखिम पर जोड़ें और व्यापार करें!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "टोकन आयात करें"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "टोकन आयात करें"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "यहां अनुरोध करें"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "क्या अपना टोकन नहीं देख रहे हैं?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "और अधिक जल्द ही आ रहा..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "पर्याप्त गैस नहीं"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "सूचनाएं"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "सेटिंग्स में जाएं",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "भेजने की स्क्रीन पर हेक्स डेटा फील्ड दिखाने के लिए इसका चयन करें"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "दिखाएं/छिपाएं"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "आने वाले लेन-देन दिखाएं"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "स्टेटस"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "कनेक्ट किया गया"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "कनेक्ट नहीं है"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Eth_sign अनुरोधों को टॉगल करें"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 परीक्षण नेटवर्क",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "टोकन"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask को शुरू करने में परेशानी आई। यह त्रुटि रुक-रुक कर हो सकती है, इसलिए एक्सटेंशन को फिर से शुरू करके देखें।"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "हमें आपके टोकन की शेषराशि लोड करने में परेशानी हुई। आप उन्हें देख सकते हैं ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "अनुमति प्रदान करके, आप निम्नलिखित $1 को अपने फंड तक पहुंचने की इजाजत दे रहे हैं"
|
||||
},
|
||||
|
7
app/_locales/hn/messages.json
generated
7
app/_locales/hn/messages.json
generated
@ -69,9 +69,6 @@
|
||||
"create": {
|
||||
"message": "बनाएं"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "खाता बनाएं"
|
||||
},
|
||||
"decimal": {
|
||||
"message": "दशमलव परिशुद्धता"
|
||||
},
|
||||
@ -323,10 +320,6 @@
|
||||
"total": {
|
||||
"message": "कुल"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "मुसीबत... आपके टोकन शेष राशि को लोड करने में हमें परेशानी हुई थी। आप उन्हें देख सकते हैं",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"typePassword": {
|
||||
"message": "अपना पासवर्ड टाइप करें"
|
||||
},
|
||||
|
10
app/_locales/hr/messages.json
generated
10
app/_locales/hr/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Povežite se"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Poveži hardverski novčanik"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Povezivanje na $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Stvori"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Stvori račun"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Stvori lozinku"
|
||||
},
|
||||
@ -803,10 +797,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Prenesi od"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Imamo problema s učitavanjem raspoloživog stanja vaših tokena. Možete ih vidjeti",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Pokušaj ponovo"
|
||||
},
|
||||
|
10
app/_locales/ht/messages.json
generated
10
app/_locales/ht/messages.json
generated
@ -96,9 +96,6 @@
|
||||
"connect": {
|
||||
"message": "Konekte"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Konekte Materyèl Wallet"
|
||||
},
|
||||
"connectingToMainnet": {
|
||||
"message": "Konekte ak Prensipal Ethereum Rezo a"
|
||||
},
|
||||
@ -120,9 +117,6 @@
|
||||
"create": {
|
||||
"message": "Kreye"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Kreye Kont"
|
||||
},
|
||||
"currentLanguage": {
|
||||
"message": "Lang Aktyèl"
|
||||
},
|
||||
@ -563,10 +557,6 @@
|
||||
"transfer": {
|
||||
"message": "Transfè"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Nou te gen pwoblèm chaje balans token ou. Ou ka wè yo ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Eseye anko"
|
||||
},
|
||||
|
10
app/_locales/hu/messages.json
generated
10
app/_locales/hu/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Csatlakozás"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Hardverpénztárca csatlakoztatása"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Kapcsolódás: $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Létrehozás"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Fiók létrehozása"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Jelszó létrehozása"
|
||||
},
|
||||
@ -803,10 +797,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Átvezetés innen: "
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Gondjaink voltak tokenegyenlegeid betöltésével. Megtekintheted őket",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Újra"
|
||||
},
|
||||
|
29
app/_locales/id/messages.json
generated
29
app/_locales/id/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Hubungkan akun atau buat baru"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Hubungkan dompet perangkat keras"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Hubungkan ke situs saat ini secara manual"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Buat"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Buat akun"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Buat dompet baru"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Siapa pun dapat membuat token dengan nama apa pun, termasuk versi palsu dari token yang ada. Tambahkan dan perdagangkan dengan risiko ditanggung sendiri!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "impor token"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Impor token"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Minta di sini"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Tidak melihat token Anda?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Selanjutnya akan segera hadir..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Gas tidak cukup"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Notifikasi"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Lihat di Pengaturan",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Pilih ini untuk menampilkan bidang data hex di layar kirim"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Tampil/Sembunyi"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Tampilkan transaksi masuk"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Status"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Terhubung"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Tidak terhubung"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Alihkan permintaan eth_sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 jaringan pengujian",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask mengalami masalah saat memulai. Kesalahan ini dapat terjadi berselang, coba mulai ulang ekstensi."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Kami mengalami masalah saat memuat saldo token Anda. Anda dapat melihatnya ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Dengan memberikan izin, Anda mengizinkan $1 berikut untuk mengakses dana Anda"
|
||||
},
|
||||
|
13
app/_locales/it/messages.json
generated
13
app/_locales/it/messages.json
generated
@ -485,9 +485,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Connetti un account o creane uno nuovo"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Connetti Portafoglio Hardware"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Connettiti al sito manualmente"
|
||||
},
|
||||
@ -616,9 +613,6 @@
|
||||
"create": {
|
||||
"message": "Crea"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Crea Account"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Crea un nuovo portafoglio"
|
||||
},
|
||||
@ -1540,9 +1534,6 @@
|
||||
"stateLogsDescription": {
|
||||
"message": "I log di stato contengono i tuoi indirizzi pubblici e le transazioni effettuate."
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Connesso"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Non connesso"
|
||||
},
|
||||
@ -1843,10 +1834,6 @@
|
||||
"message": "Abbiamo riscontrato un errore nella connessione a $1, guarda la documentazione $2 e prova di nuovo.",
|
||||
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Abbiamo avuto un problema a caricare il bilancio dei tuoi token. Puoi vederlo ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Prova di nuovo"
|
||||
},
|
||||
|
29
app/_locales/ja/messages.json
generated
29
app/_locales/ja/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "アカウントを接続するか、または新規に作成します"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "ハードウェアウォレットの接続"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "現在のサイトに手動で接続"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "作成"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "アカウントを作成"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "新規ウォレットを作成"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "誰でも既存のトークンの偽バージョンを含めて、任意の名前でトークンを作成することができます。追加および取引は自己責任となります!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "トークンをインポート"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "トークンをインポート"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "ここからリクエスト"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "トークンが見当たりませんか?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "さらに近日追加予定..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "ガスが不足しています"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "通知"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "設定に移動",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "これを選択すると、送金画面に16進データフィールドが表示されます"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "表示・非表示"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "受信トランザクションを表示"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "ステータス"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "接続済み"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "未接続"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "eth_sign 要求の設定"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1テストネットワーク",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "トークン"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask がうまく起動しませんでした。このエラーは断続的に発生する可能性があるため、拡張機能を再起動してみてください。"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "トークンバランスのロードに問題があります。トークンバランスを表示できます",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "パーミッションを付与することで、次の$1による資金へのアクセスが許可されます"
|
||||
},
|
||||
|
10
app/_locales/kn/messages.json
generated
10
app/_locales/kn/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "ಸಂಪರ್ಕಿಸು"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "ಹಾರ್ಡ್ವೆರ್ ವ್ಯಾಲೆಟ್ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "$1 ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗುತ್ತಿದೆ"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "ರಚಿಸಿ"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "ಖಾತೆಯನ್ನು ರಚಿಸಿ"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "ಪಾಸ್ವರ್ಡ್ ರಚಿಸಿ"
|
||||
},
|
||||
@ -813,10 +807,6 @@
|
||||
"transferFrom": {
|
||||
"message": "ಇದರಿಂದ ವರ್ಗಾಯಿಸಿ"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "ನಿಮ್ಮ ಟೋಕನ್ ಬ್ಯಾಲೆನ್ಸ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ನಮಗೆ ಸಮಸ್ಯೆಯಾಗಿದೆ. ನೀವು ಅವುಗಳನ್ನು ನೋಡಬಹುದು",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"
|
||||
},
|
||||
|
29
app/_locales/ko/messages.json
generated
29
app/_locales/ko/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "계정 연결 또는 새 계정 만들기"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "하드웨어 지갑 연결"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "현재 사이트에 수동으로 연결"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "생성"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "계정 생성"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "새 지갑 생성"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "기존 토큰의 가짜 버전을 포함하여 누구나 어떤 이름으로든 토큰을 만들 수 있습니다. 추가 및 거래는 사용자의 책임입니다."
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "토큰 가져오기"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "토큰 가져오기"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "여기에서 요청하세요"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "토큰이 보이지 않나요?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "더 추가 예정..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "가스 부족"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "알림"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "설정으로 이동하기",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "이 항목을 선택하면 보내기 화면에 16진수 데이터 필드가 표시됩니다."
|
||||
},
|
||||
"showHide": {
|
||||
"message": "보기/숨기기"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "수신 거래 표시"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "상태"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "연결됨"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "연결되지 않음"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "eth_sign 요청 토글"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 테스트 네트워크",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "토큰"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask 실행 중 오류가 발생했습니다. 일시적인 오류일 수 있으니 확장 프로그램을 재시작해 보세요."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "토큰 잔액을 로드하는 도중 문제가 발생했습니다. 다음에서 잔액을 확인하세요. ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "권한을 부여하면 다음 $1이(가) 귀하의 자금에 액세스할 수 있습니다."
|
||||
},
|
||||
|
10
app/_locales/lt/messages.json
generated
10
app/_locales/lt/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Prisijungti"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Susieti aparatinės įrangos slaptažodinę"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Jungiamasi prie $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Sukurti"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Sukurti paskyrą"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Sukurti slaptažodį"
|
||||
},
|
||||
@ -813,10 +807,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Pervedimas iš"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Susidurta su sunkumais įkeliant jūsų žetonų likučius. Galite juos peržiūrėti ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Bandyti dar kartą"
|
||||
},
|
||||
|
10
app/_locales/lv/messages.json
generated
10
app/_locales/lv/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Pievienošana"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Pieslēgt aparatūras maku"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Pieslēdzas $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Izveidot"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Izveidot kontu"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Izveidot paroli"
|
||||
},
|
||||
@ -809,10 +803,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Nosūtīt no"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Mums neizdevās ielādēt marķieru bilanci. Varat tos skatīt",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Mēģināt vēlreiz"
|
||||
},
|
||||
|
10
app/_locales/ms/messages.json
generated
10
app/_locales/ms/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Sambung"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Sambungkan Dompet Perkakasan"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Menyambungkan kepada $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Cipta"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Cipta Akaun"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Cipta Kata Laluan"
|
||||
},
|
||||
@ -790,10 +784,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Pindah Daripada"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Kami menghadapi masalah memuatkan baki token anda. Anda boleh melihatnya",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Cuba lagi"
|
||||
},
|
||||
|
7
app/_locales/nl/messages.json
generated
7
app/_locales/nl/messages.json
generated
@ -69,9 +69,6 @@
|
||||
"create": {
|
||||
"message": "creëren"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Account aanmaken"
|
||||
},
|
||||
"decimal": {
|
||||
"message": "Decimalen van precisie"
|
||||
},
|
||||
@ -313,10 +310,6 @@
|
||||
"total": {
|
||||
"message": "Totaal"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "We hadden problemen bij het laden van uw tokenbalansen. Je kunt ze bekijken",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"typePassword": {
|
||||
"message": "Typ uw wachtwoord"
|
||||
},
|
||||
|
10
app/_locales/no/messages.json
generated
10
app/_locales/no/messages.json
generated
@ -151,9 +151,6 @@
|
||||
"connect": {
|
||||
"message": "Koble til"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Koble til maskinvarelommebok"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Forbinder til $1 "
|
||||
},
|
||||
@ -190,9 +187,6 @@
|
||||
"create": {
|
||||
"message": "Opprett"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Opprett konto"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Opprett passord "
|
||||
},
|
||||
@ -788,10 +782,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Overfør fra"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Vi hadde problemer med å laste inn sjetongsaldoen din. Du kan se dem",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Prøv igjen"
|
||||
},
|
||||
|
13
app/_locales/ph/messages.json
generated
13
app/_locales/ph/messages.json
generated
@ -252,9 +252,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Ikonekta ang account o gumawa ng bago"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Ikonekta ang Hardware Wallet"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Manu-manong kumonekta sa kasalukuyang site"
|
||||
},
|
||||
@ -356,9 +353,6 @@
|
||||
"create": {
|
||||
"message": "Gumawa"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Gumawa ng Account"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Gumawa ng Password"
|
||||
},
|
||||
@ -1394,9 +1388,6 @@
|
||||
"stateLogsDescription": {
|
||||
"message": "Naglalaman ang mga log ng estado ng iyong mga address ng pampublikong account at ipinadalang transaksyon."
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Nakakonekta"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Hindi nakakonekta"
|
||||
},
|
||||
@ -1797,10 +1788,6 @@
|
||||
"message": "Nagkaproblema kami sa pagkonekta sa iyong $1, subukang suriin ang $2 at subukan ulit.",
|
||||
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Nagkaproblema kami sa pag-load ng mga balanse ng iyong token. Puwede mong tingnan ang mga iyon ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Subukan ulit"
|
||||
},
|
||||
|
10
app/_locales/pl/messages.json
generated
10
app/_locales/pl/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Połącz"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Podłącz portfel sprzętowy"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Łączenie z $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Utwórz"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Utwórz konto"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Utwórz hasło"
|
||||
},
|
||||
@ -801,10 +795,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Przelew z"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Wystąpił problem z załadowaniem informacji o Twoich tokenach. Można je zobaczyć ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Spróbuj ponownie"
|
||||
},
|
||||
|
29
app/_locales/pt/messages.json
generated
29
app/_locales/pt/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Conectar conta ou criar nova"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Conectar carteira de hardware"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Conectar manualmente ao site atual"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Criar"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Criar conta"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Criar uma nova carteira"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Qualquer pessoa pode criar um token com qualquer nome, incluindo versões falsas de tokens existentes. Adicione e negocie por sua conta e risco!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "importar tokens"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Importar tokens"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Solicite aqui"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Não está vendo seu token?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Mais em breve..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Não há gás suficiente"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Notificações"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Visite nas configurações",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Selecione essa opção para mostrar o campo de dados hexadecimais na tela de envio"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Mostrar/ocultar"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Mostrar transações recebidas"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Status"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Conectado"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Não conectado"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Ativar/desativar solicitações eth_sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 redes de teste",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "A MetaMask teve problemas para iniciar. Esse erro pode ser intermitente, por isso tente reiniciar a extensão."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Tivemos um problema a carregar o balanço dos seus tokens. Pode vê-los em ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Ao conceder permissão, você estará autorizando que o $1 a seguir acesse seus fundos"
|
||||
},
|
||||
|
26
app/_locales/pt_BR/messages.json
generated
26
app/_locales/pt_BR/messages.json
generated
@ -389,9 +389,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Conectar conta ou criar nova"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Conectar carteira de hardware"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Conectar manualmente ao site atual"
|
||||
},
|
||||
@ -499,9 +496,6 @@
|
||||
"create": {
|
||||
"message": "Criar"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Criar conta"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Criar uma nova carteira"
|
||||
},
|
||||
@ -1091,9 +1085,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Qualquer pessoa pode criar um token com qualquer nome, incluindo versões falsas de tokens existentes. Adicione e negocie por sua conta e risco!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "importar tokens"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Importar tokens"
|
||||
},
|
||||
@ -1351,9 +1342,6 @@
|
||||
"missingNFT": {
|
||||
"message": "Não está vendo o seu NFT?"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Não está vendo o seu token?"
|
||||
},
|
||||
"mustSelectOne": {
|
||||
"message": "Selecione pelo menos 1 token."
|
||||
},
|
||||
@ -2064,9 +2052,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Selecione essa opção para mostrar o campo de dados hexadecimais na tela de envio"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Mostrar/ocultar"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Mostrar transações recebidas"
|
||||
},
|
||||
@ -2168,9 +2153,6 @@
|
||||
"stateLogsDescription": {
|
||||
"message": "Os registros de estado contêm os endereços da sua conta pública e as transações enviadas."
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Conectado"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Não conectado"
|
||||
},
|
||||
@ -2549,10 +2531,6 @@
|
||||
"message": "Para: $1",
|
||||
"description": "$1 is the address to include in the To label. It is typically shortened first using shortenAddress"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 redes de teste",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -2692,10 +2670,6 @@
|
||||
"message": "Tivemos dificuldade para conectar-nos à sua $1. Revise $2 e tente novamente.",
|
||||
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Tivemos dificuldade para carregar os saldos do seu token. Você pode vê-los ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Ao conceder permissão, você estará autorizando que o $1 a seguir acesse seus fundos"
|
||||
},
|
||||
|
10
app/_locales/ro/messages.json
generated
10
app/_locales/ro/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Conectează-te"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Conectare portofel hardware"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Se conectează la $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Creați"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Creați cont"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Creare parolă"
|
||||
},
|
||||
@ -794,10 +788,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Transferați de la"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Am avut dificultăți cu încărcarea soldurilor dvs. de tokenuri. Le puteți vizualiza",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Încearcă din nou"
|
||||
},
|
||||
|
29
app/_locales/ru/messages.json
generated
29
app/_locales/ru/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Подключите счет или создайте новый"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Подключить аппаратный кошелек"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Подключиться к текущему сайту вручную"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Создать"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Создать счет"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Создать новый кошелек"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Кто угодно может создать токен с любым именем, включая поддельные версии существующих токенов. Добавляйте и торгуйте на свой страх и риск!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "импорт токенов"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Импорт токенов"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Запросите здесь"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Не видите свой токен?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Скоро появится больше..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Недостаточно газа"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Уведомления"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Смотреть в настройках",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Выберите эту опцию, чтобы отобразить поле шестнадцатеричных данных на экране отправки"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Показать/скрыть"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Показать входящие транзакции"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Статус"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Подключено"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Не подключено"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Переключить запросы eth_sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 тестовые сети",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Токен"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "У MetaMask возникли проблемы с запуском. Эта ошибка может быть непостоянной, поэтому попробуйте перезапустить расширение."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "У нас возникли проблемы с загрузкой вашего баланса токенов. Вы можете просмотреть их ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Давая разрешение, вы предоставляете следующему $1 доступ к вашим средствам."
|
||||
},
|
||||
|
10
app/_locales/sk/messages.json
generated
10
app/_locales/sk/messages.json
generated
@ -148,9 +148,6 @@
|
||||
"connect": {
|
||||
"message": "Pripojenie"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Pripojiť hardvérovú peňaženku"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Pripája sa k $1"
|
||||
},
|
||||
@ -187,9 +184,6 @@
|
||||
"create": {
|
||||
"message": "Vytvořit"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Vytvořit účet"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Vytvoriť heslo"
|
||||
},
|
||||
@ -779,10 +773,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Presun z"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Měli jsme problém s načtením vašich tokenových zůstatků. Můžete je vidět ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Skúsiť znova"
|
||||
},
|
||||
|
10
app/_locales/sl/messages.json
generated
10
app/_locales/sl/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Poveži"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Poveži strojno denarnico"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Povezovanje na $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Ustvari"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Ustvari račun"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Ustvari geslo"
|
||||
},
|
||||
@ -801,10 +795,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Prenesi od"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Če imate težave pri ogledu zneskov žetonov si jih lahko ogledate ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Poskusi znova"
|
||||
},
|
||||
|
10
app/_locales/sr/messages.json
generated
10
app/_locales/sr/messages.json
generated
@ -151,9 +151,6 @@
|
||||
"connect": {
|
||||
"message": "Повезивање"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Povežite Hardverski novčanik"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Povezuje se na $1"
|
||||
},
|
||||
@ -190,9 +187,6 @@
|
||||
"create": {
|
||||
"message": "Направи"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Kreirajte nalog"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Kreirajte lozinku"
|
||||
},
|
||||
@ -801,10 +795,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Prebacite iz"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Imali smo problema sa učitavanjem bilansa Vaših tokena. Možete ih pogledati",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Пробај поново"
|
||||
},
|
||||
|
10
app/_locales/sv/messages.json
generated
10
app/_locales/sv/messages.json
generated
@ -148,9 +148,6 @@
|
||||
"connect": {
|
||||
"message": "Ansluta"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Anslut hårdvaruplånbok"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Ansluter till $1"
|
||||
},
|
||||
@ -187,9 +184,6 @@
|
||||
"create": {
|
||||
"message": "Skapa"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Skapa konto"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Skapa lösenord"
|
||||
},
|
||||
@ -788,10 +782,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Överför från"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Vi hade problem med att ladda dina token-saldon. Du kan se dem",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Försök igen"
|
||||
},
|
||||
|
10
app/_locales/sw/messages.json
generated
10
app/_locales/sw/messages.json
generated
@ -148,9 +148,6 @@
|
||||
"connect": {
|
||||
"message": "Unganisha"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Unganisha Waleti ya Programu Maunzi"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Inaunganisha kwenye $1"
|
||||
},
|
||||
@ -187,9 +184,6 @@
|
||||
"create": {
|
||||
"message": "Unda"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Fungua Akaunti"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Unda Nenosiri"
|
||||
},
|
||||
@ -791,10 +785,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Tuma Kutoka"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Tulipata shida kupakia salio lako la kianzio. Unaweza kuliona",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Jaribu tena"
|
||||
},
|
||||
|
7
app/_locales/ta/messages.json
generated
7
app/_locales/ta/messages.json
generated
@ -96,9 +96,6 @@
|
||||
"create": {
|
||||
"message": "உருவாக்கு"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "உங்கள் கணக்கை துவங்குங்கள்"
|
||||
},
|
||||
"custom": {
|
||||
"message": "மேம்பட்டவை"
|
||||
},
|
||||
@ -434,10 +431,6 @@
|
||||
"transactionError": {
|
||||
"message": "பரிவர்த்தனை பிழை. விதிமுறை ஒப்பந்தத்தில் விதிவிலக்கு."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "உங்கள் டோக்கன் நிலுவைகளை ஏற்றுவதில் சிக்கல் ஏற்பட்டது. நீங்கள் அவர்களை பார்க்க முடியும்.",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "மீண்டும் முயல்க"
|
||||
},
|
||||
|
7
app/_locales/th/messages.json
generated
7
app/_locales/th/messages.json
generated
@ -87,9 +87,6 @@
|
||||
"create": {
|
||||
"message": "สร้าง"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "สร้างบัญชี"
|
||||
},
|
||||
"currencyConversion": {
|
||||
"message": "การแปลงสกุลเงิน"
|
||||
},
|
||||
@ -401,10 +398,6 @@
|
||||
"transferBetweenAccounts": {
|
||||
"message": "โอนระหว่างบัญชีของฉัน"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "เรามีปัญหาในการโหลดยอดโทเค็นคงเหลือของคุณ คุณสามารถดูได้ที่นี่",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"typePassword": {
|
||||
"message": "พิมพ์รหัสผ่านของคุณ"
|
||||
},
|
||||
|
29
app/_locales/tl/messages.json
generated
29
app/_locales/tl/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Ikonekta ang account o gumawa ng bago"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Ikonekta ang hardware wallet"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Manu-manong kumonekta sa kasalukuyang site"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Gumawa"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Gumawa ng account"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Gumawa ng bagong wallet"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Sinumang ay maaaring lumikha ng token gamit ang alinmang pangalan, kabilang ang mga pekeng bersyon ng umiiral na mga token. Magdagdag at mag-trade sa sarili mong panganib!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "magdagdag ng mga token"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Mag-import ng mga Token"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Hilingin dito"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Hindi mo ba nakikita ang iyong mga token?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Marami pang parating..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Hindi Sapat ang Gas"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Mga Abiso"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Bisitahin sa mga setting",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Piliin ito para ipakita ang field ng hex data sa screen ng pagpapadala"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Ipakita/itago"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Ipakita ang Mga Papasok na Transaksyon"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Istado"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Nakakonekta"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Hindi konektado"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "I-toggle ang mga kahilingan sa eth_sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 na test network",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "Nagkaproblema ang MetaMask sa pagsisimula. Maaaring paulit-ulit ang error na ito, kaya subukang i-restart ang extension."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Nagkaproblema kami sa pag-load ng mga balanse ng iyong token. Puwede mong tingnan ang mga iyon ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Sa pamamagitan ng pagbibigay ng pahintulot, pinapayagan mo ang sumusunod na $1 para ma-access ang pondo mo"
|
||||
},
|
||||
|
29
app/_locales/tr/messages.json
generated
29
app/_locales/tr/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Hesabı bağla ya da yeni hesap oluştur"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Donanım Cüzdanı Bağla"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Mevcut siteye manuel olarak bağlan"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Oluştur"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Hesap Oluştur"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Yeni bir cüzdan oluştur"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Herkes, mevcut tokenlerin sahte sürümleri de dahil olmak üzere herhangi bir ada sahip bir token oluşturabilir. Riski tamamen size ait olacak şekikde token ekleyin ve işlem yapın!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "tokenleri içe aktar"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Tokenleri içe aktar"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Buradan talep et"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Tokeninizi görmüyor musunuz?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Daha fazlası çok yakında..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Yeterli gaz yok"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Bildirimler"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Ayarlarda ziyaret et",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Gönder ekranında on altılık veri alanını göstermek için bunu seçin"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Göster/gizle"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Gelen işlemleri göster"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Durum"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Bağlandı"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Bağlanmadı"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "eth_sign taleplerini değiştirin"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "Test ağlarını $1",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask başlatılırken bir sorun oldu. Bu hata sürekli bir hata olmayabilir; bu yüzden uzantıyı yeniden başlatmayı dene."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Token bakiyeleriniz yüklenirken sorun yaşadık. Burada görüntüleyebilirsiniz ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "İzin verdiğinizde paranıza aşağıdaki $1 erişimine izin verirsiniz"
|
||||
},
|
||||
|
10
app/_locales/uk/messages.json
generated
10
app/_locales/uk/messages.json
generated
@ -154,9 +154,6 @@
|
||||
"connect": {
|
||||
"message": "Під’єднатися"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Приєднайте апаратний гаманець"
|
||||
},
|
||||
"connectingTo": {
|
||||
"message": "Під'єднуємось до $1"
|
||||
},
|
||||
@ -193,9 +190,6 @@
|
||||
"create": {
|
||||
"message": "Створити"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Створити обліковий запис"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "Створити пароль"
|
||||
},
|
||||
@ -813,10 +807,6 @@
|
||||
"transferFrom": {
|
||||
"message": "Передати від"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "В нас виникли складнощі при завантаженні ваших залишків токенів. Ви можете переглянути їх",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"tryAgain": {
|
||||
"message": "Повторити"
|
||||
},
|
||||
|
29
app/_locales/vi/messages.json
generated
29
app/_locales/vi/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "Kết nối tài khoản hoặc tạo tài khoản mới"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "Kết nối với ví cứng"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "Kết nối thủ công với trang web hiện tại"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "Tạo"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Tạo tài khoản"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "Tạo ví mới"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "Bất kỳ ai cũng tạo được token bằng bất kỳ tên nào, kể cả phiên bản giả của token hiện có. Bạn tự chịu rủi ro khi thêm và giao dịch!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "nhập token"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "Nhập token"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "Yêu cầu tại đây"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "Không thấy token của mình?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "Sắp có thêm..."
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "Không đủ gas"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "Thông báo"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "Xem trong phần Cài đặt",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "Chọn tùy chọn này để hiển thị trường dữ liệu thập lục phân trên màn hình gửi"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "Hiển thị/ẩn"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "Hiển thị các giao dịch đến"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "Trạng thái"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "Đã kết nối"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "Chưa kết nối"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "Bật/tắt yêu cầu eth_sign"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 mạng thử nghiệm",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "Token"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask đã gặp sự cố khi khởi động. Lỗi này có thể xảy ra không liên tục, vì vậy hãy thử khởi động lại tiện ích."
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "Chúng tôi đã gặp phải vấn đề khi tải số dư token của bạn. Bạn có thể xem số dư ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "Bằng cách cấp quyền, bạn cho phép $1 sau đây truy cập vào các khoản tiền của mình"
|
||||
},
|
||||
|
29
app/_locales/zh_CN/messages.json
generated
29
app/_locales/zh_CN/messages.json
generated
@ -642,9 +642,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "连接账户或创建新账户"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "连接硬件钱包"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "手动连接到当前站点"
|
||||
},
|
||||
@ -789,9 +786,6 @@
|
||||
"create": {
|
||||
"message": "创建"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "创建账户"
|
||||
},
|
||||
"createNewWallet": {
|
||||
"message": "创建新钱包"
|
||||
},
|
||||
@ -1636,9 +1630,6 @@
|
||||
"importTokenWarning": {
|
||||
"message": "任何人都可以用任何名称创建代币,包括现有代币的虚假版本。添加和交易风险自负!"
|
||||
},
|
||||
"importTokens": {
|
||||
"message": "添加资产"
|
||||
},
|
||||
"importTokensCamelCase": {
|
||||
"message": "添加代币"
|
||||
},
|
||||
@ -1990,9 +1981,6 @@
|
||||
"missingSettingRequest": {
|
||||
"message": "在这里请求"
|
||||
},
|
||||
"missingToken": {
|
||||
"message": "没有看到您的代币?"
|
||||
},
|
||||
"moreComingSoon": {
|
||||
"message": "更多即将到来……"
|
||||
},
|
||||
@ -2235,9 +2223,6 @@
|
||||
"notEnoughGas": {
|
||||
"message": "燃料不足"
|
||||
},
|
||||
"notifications": {
|
||||
"message": "通知"
|
||||
},
|
||||
"notifications10ActionText": {
|
||||
"message": "在设置中访问",
|
||||
"description": "The 'call to action' on the button, or link, of the 'Visit in Settings' notification. Upon clicking, users will be taken to Settings page."
|
||||
@ -3214,9 +3199,6 @@
|
||||
"showHexDataDescription": {
|
||||
"message": "选择此项以在发送屏幕上显示十六进制数据字段"
|
||||
},
|
||||
"showHide": {
|
||||
"message": "显示/隐藏"
|
||||
},
|
||||
"showIncomingTransactions": {
|
||||
"message": "显示传入的交易"
|
||||
},
|
||||
@ -3416,9 +3398,6 @@
|
||||
"status": {
|
||||
"message": "状态"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "已连接"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "未连接"
|
||||
},
|
||||
@ -3923,10 +3902,6 @@
|
||||
"toggleEthSignField": {
|
||||
"message": "切换eth_sign请求"
|
||||
},
|
||||
"toggleTestNetworks": {
|
||||
"message": "$1 测试网络",
|
||||
"description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open Settings > Advanced where users can enable the display of test networks in the network dropdown."
|
||||
},
|
||||
"token": {
|
||||
"message": "代币"
|
||||
},
|
||||
@ -4106,10 +4081,6 @@
|
||||
"troubleStarting": {
|
||||
"message": "MetaMask无法启动。可能发生间歇性错误,因此请尝试重新启动扩展程序。"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "我们在加载您的代币余额时遇到问题。您可以查看它们 ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "通过授予权限,您允许以下 $1 访问您的资金"
|
||||
},
|
||||
|
13
app/_locales/zh_TW/messages.json
generated
13
app/_locales/zh_TW/messages.json
generated
@ -251,9 +251,6 @@
|
||||
"connectAccountOrCreate": {
|
||||
"message": "連結帳戶或建立新的"
|
||||
},
|
||||
"connectHardwareWallet": {
|
||||
"message": "連線硬體錢包"
|
||||
},
|
||||
"connectManually": {
|
||||
"message": "手動連結到目前的網站"
|
||||
},
|
||||
@ -355,9 +352,6 @@
|
||||
"create": {
|
||||
"message": "建立"
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "建立帳戶"
|
||||
},
|
||||
"createPassword": {
|
||||
"message": "建立密碼"
|
||||
},
|
||||
@ -1322,9 +1316,6 @@
|
||||
"stateLogsDescription": {
|
||||
"message": "狀態紀錄包含您的公開帳戶位址和已傳送的交易資訊"
|
||||
},
|
||||
"statusConnected": {
|
||||
"message": "已連結"
|
||||
},
|
||||
"statusNotConnected": {
|
||||
"message": "未連結"
|
||||
},
|
||||
@ -1473,10 +1464,6 @@
|
||||
"message": "我們在連線到您的 $1 的時候遇到問題,試著檢查 $2 然後再試一次。",
|
||||
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
|
||||
},
|
||||
"troubleTokenBalances": {
|
||||
"message": "無法取得代幣餘額。您可以到這裡查看 ",
|
||||
"description": "Followed by a link (here) to view token balances"
|
||||
},
|
||||
"trustSiteApprovePermission": {
|
||||
"message": "您信任這個網站嗎?當您授予這個權限,$1 就能提領您的 $2 並且代替您自動發送交易。"
|
||||
},
|
||||
|
@ -153,7 +153,6 @@ env:
|
||||
- SUPPORT_LINK: https://support.metamask.io
|
||||
- SUPPORT_REQUEST_LINK: https://metamask.zendesk.com/hc/en-us
|
||||
- SKIP_BACKGROUND_INITIALIZATION: false
|
||||
- MULTICHAIN: false
|
||||
|
||||
# TODO(ritave): Move ManifestV3 into a feature?
|
||||
- ENABLE_MV3: false
|
||||
|
@ -470,10 +470,6 @@
|
||||
"ui/components/app/detected-token/detected-token-values/detected-token-values.test.js",
|
||||
"ui/components/app/detected-token/detected-token.js",
|
||||
"ui/components/app/detected-token/detected-token.test.js",
|
||||
"ui/components/app/dropdowns/dropdown.js",
|
||||
"ui/components/app/dropdowns/dropdown.test.js",
|
||||
"ui/components/app/dropdowns/network-dropdown.js",
|
||||
"ui/components/app/dropdowns/network-dropdown.test.js",
|
||||
"ui/components/app/edit-gas-display/edit-gas-display.component.js",
|
||||
"ui/components/app/edit-gas-display/edit-gas-display.stories.js",
|
||||
"ui/components/app/edit-gas-display/edit-gas-display.test.js",
|
||||
|
@ -1,16 +0,0 @@
|
||||
# Account Menu
|
||||
|
||||
The account menu is the popup menu which contains options such as:
|
||||
- Logging out
|
||||
- Switching accounts
|
||||
- Creating a new account
|
||||
- Importing an account
|
||||
- Connecting a HW wallet
|
||||
- Looking up info & help
|
||||
- Adjusting settings
|
||||
|
||||
It can be seen below where it has been outlined with a red box
|
||||
|
||||
![Screenshot of account menu](https://i.imgur.com/xpkfIuR.png)
|
||||
|
||||
Above screenshot showing the menu bar in MetaMask 6.7.1
|
@ -26,7 +26,7 @@ async function measurePage(pageName) {
|
||||
await driver.navigate();
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
await driver.findElement('.selected-account__name');
|
||||
await driver.findElement('[data-testid="account-menu-icon"]');
|
||||
await driver.navigate(pageName);
|
||||
await driver.delay(1000);
|
||||
metrics = await driver.collectMetrics();
|
||||
|
@ -496,12 +496,12 @@ const findAnotherAccountFromAccountList = async (
|
||||
itemNumber,
|
||||
accountName,
|
||||
) => {
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
const accountMenuItemSelector = `.account-menu__account:nth-child(${itemNumber})`;
|
||||
const fourthAccountName = await driver.findElement(
|
||||
`${accountMenuItemSelector} .account-menu__name`,
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
const accountMenuItemSelector = `.multichain-account-list-item:nth-child(${itemNumber})`;
|
||||
const acctName = await driver.findElement(
|
||||
`${accountMenuItemSelector} .multichain-account-list-item__account-name__button`,
|
||||
);
|
||||
assert.equal(await fourthAccountName.getText(), accountName);
|
||||
assert.equal(await acctName.getText(), accountName);
|
||||
return accountMenuItemSelector;
|
||||
};
|
||||
|
||||
|
@ -128,13 +128,13 @@ describe('MetaMask', function () {
|
||||
|
||||
describe('Import Secret Recovery Phrase', function () {
|
||||
it('logs out of the vault', async function () {
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement('[data-testid="account-options-menu-button"]');
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
const lockButton = await driver.findClickableElement(
|
||||
'.account-menu__lock-button',
|
||||
'[data-testid="global-menu-lock"]',
|
||||
);
|
||||
assert.equal(await lockButton.getText(), 'Lock');
|
||||
assert.equal(await lockButton.getText(), 'Lock MetaMask');
|
||||
await lockButton.click();
|
||||
await driver.delay(regularDelayMs);
|
||||
});
|
||||
@ -163,7 +163,7 @@ describe('MetaMask', function () {
|
||||
|
||||
it('balance renders', async function () {
|
||||
await driver.waitForSelector({
|
||||
css: '[data-testid="wallet-balance"] .list-item__heading',
|
||||
css: '[data-testid="eth-overview__primary-currency"] .currency-display-component__text',
|
||||
text: '1000',
|
||||
});
|
||||
await driver.delay(regularDelayMs);
|
||||
@ -246,7 +246,7 @@ describe('MetaMask', function () {
|
||||
|
||||
it('clicks on the import tokens button', async function () {
|
||||
await driver.clickElement(`[data-testid="home__asset-tab"]`);
|
||||
await driver.clickElement({ text: 'import tokens', tag: 'a' });
|
||||
await driver.clickElement({ text: 'Import tokens', tag: 'button' });
|
||||
await driver.delay(regularDelayMs);
|
||||
});
|
||||
|
||||
@ -433,7 +433,7 @@ describe('MetaMask', function () {
|
||||
});
|
||||
|
||||
await driver.waitForSelector({
|
||||
css: '.asset-list-item__token-button',
|
||||
css: '[data-testid="multichain-token-list-item-value"]',
|
||||
text: '7.5 TST',
|
||||
});
|
||||
|
||||
|
@ -73,15 +73,13 @@ describe('Test Snap Management', function () {
|
||||
await driver.switchToWindow(extensionPage);
|
||||
await driver.delay(1000);
|
||||
|
||||
// click on the account menu icon
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.delay(1000);
|
||||
// click on the global action menu
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
|
||||
// try to click on the notification item
|
||||
await driver.clickElement({
|
||||
text: 'Settings',
|
||||
tag: 'div',
|
||||
});
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.delay(1000);
|
||||
|
||||
// try to click on the snaps item
|
||||
@ -129,10 +127,14 @@ describe('Test Snap Management', function () {
|
||||
// check to see that there is one notification
|
||||
await driver.switchToWindow(extensionPage);
|
||||
await driver.delay(1000);
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
const notificationResult = await driver.findElement(
|
||||
'.account-menu__icon__notification-count',
|
||||
'[data-testid="global-menu-notification-count"]',
|
||||
);
|
||||
assert.equal(await notificationResult.getText(), '1');
|
||||
await driver.clickElement('.menu__background');
|
||||
|
||||
// try to remove snap
|
||||
await driver.clickElement({
|
||||
|
@ -85,19 +85,25 @@ describe('Test Snap Notification', function () {
|
||||
await driver.delay(1000);
|
||||
|
||||
// check to see that there is one notification
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
const notificationResult = await driver.findElement(
|
||||
'.account-menu__icon__notification-count',
|
||||
'[data-testid="global-menu-notification-count"]',
|
||||
);
|
||||
assert.equal(await notificationResult.getText(), '1');
|
||||
await driver.clickElement('.menu__background');
|
||||
|
||||
// try to click on the account menu icon (via xpath)
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.delay(500);
|
||||
|
||||
// try to click on the notification item (via xpath)
|
||||
await driver.clickElement({
|
||||
text: 'Notifications',
|
||||
tag: 'div',
|
||||
tag: 'span',
|
||||
});
|
||||
await driver.delay(500);
|
||||
|
||||
|
@ -24,12 +24,11 @@ describe('Show account details', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu__account-details"]',
|
||||
'[data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="account-list-menu-details"');
|
||||
|
||||
const qrCode = await driver.findElement('.qr-code__wrapper');
|
||||
assert.equal(await qrCode.isDisplayed(), true);
|
||||
|
@ -37,13 +37,15 @@ describe('Add account', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Create account', tag: 'div' });
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement(
|
||||
'[data-testid="multichain-account-menu-add-account"]',
|
||||
);
|
||||
|
||||
await driver.fill('.new-account-create-form input', '2nd account');
|
||||
await driver.clickElement({ text: 'Create', tag: 'button' });
|
||||
|
||||
const accountName = await driver.waitForSelector({
|
||||
css: '.selected-account__name',
|
||||
css: '[data-testid="account-menu-icon"]',
|
||||
text: '2nd',
|
||||
});
|
||||
assert.equal(await accountName.getText(), '2nd account');
|
||||
@ -75,9 +77,10 @@ describe('Add account', function () {
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
// Create a new account
|
||||
await driver.findClickableElement('.account-menu__icon');
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement({ text: 'Create account', tag: 'div' });
|
||||
await driver.clickElement(
|
||||
'[data-testid="multichain-account-menu-add-account"]',
|
||||
);
|
||||
await driver.fill('.new-account-create-form input', '2nd account');
|
||||
await driver.clickElement({ text: 'Create', tag: 'button' });
|
||||
|
||||
@ -96,13 +99,12 @@ describe('Add account', function () {
|
||||
await sendTransaction(driver, secondAccount, '2.8');
|
||||
|
||||
// Lock the account
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
const lockButton = await driver.findClickableElement(
|
||||
'.account-menu__lock-button',
|
||||
);
|
||||
await lockButton.click();
|
||||
await driver.clickElement('[data-testid="global-menu-lock"]');
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
// Recover via SRP in "forget password" option
|
||||
@ -111,6 +113,7 @@ describe('Add account', function () {
|
||||
);
|
||||
|
||||
await restoreSeedLink.click();
|
||||
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
await driver.pasteIntoField(
|
||||
@ -166,24 +169,30 @@ describe('Add account', function () {
|
||||
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Create account', tag: 'div' });
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
|
||||
await driver.clickElement(
|
||||
'[data-testid="multichain-account-menu-add-account"]',
|
||||
);
|
||||
await driver.fill('.new-account-create-form input', '2nd account');
|
||||
await driver.clickElement({ text: 'Create', tag: 'button' });
|
||||
|
||||
// Open account menu again
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
|
||||
// Show account list menu for second account
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
'.multichain-account-list-item--selected [data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
|
||||
const menuItems = await driver.findElements('.menu-item');
|
||||
assert.equal(menuItems.length, 3);
|
||||
assert.equal(menuItems.length, 2);
|
||||
|
||||
// click out of menu
|
||||
await driver.clickElement('.menu__background');
|
||||
|
||||
// import with private key
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Import account', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Import account', tag: 'button' });
|
||||
|
||||
// enter private key',
|
||||
await driver.fill('#private-key-box', testPrivateKey);
|
||||
@ -191,37 +200,47 @@ describe('Add account', function () {
|
||||
|
||||
// should show the correct account name
|
||||
const importedAccountName = await driver.findElement(
|
||||
'.selected-account__name',
|
||||
'[data-testid="account-menu-icon"]',
|
||||
);
|
||||
assert.equal(await importedAccountName.getText(), 'Account 3');
|
||||
|
||||
// Open account menu again
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
|
||||
// Show account list menu for second account
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
'.multichain-account-list-item--selected [data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
|
||||
const menuItems2 = await driver.findElements('.menu-item');
|
||||
assert.equal(menuItems2.length, 4);
|
||||
const importedMenuItems = await driver.findElements('.menu-item');
|
||||
assert.equal(importedMenuItems.length, 3);
|
||||
|
||||
await driver.findElement(
|
||||
'[data-testid="account-options-menu__remove-account"]',
|
||||
);
|
||||
await driver.findElement('[data-testid="account-list-menu-remove"]');
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
async function checkAccountDetails(driver) {
|
||||
await driver.clickElement('[data-testid="account-options-menu-button"]');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu__account-details"]',
|
||||
);
|
||||
// Open account menu again
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
|
||||
// Select account details for second account
|
||||
await driver.clickElement(
|
||||
'.multichain-account-list-item--selected [data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="account-list-menu-details"]');
|
||||
|
||||
await driver.findVisibleElement('.popover-bg');
|
||||
|
||||
await driver.findVisibleElement('.account-details-modal');
|
||||
// get the public address for the "second account"
|
||||
const accountDOM = await driver.findElement('.qr-code__address');
|
||||
const accountDOM = await driver.waitForSelector(
|
||||
'.qr-code .multichain-address-copy-button',
|
||||
);
|
||||
const accountAddress = await accountDOM.getText();
|
||||
await driver.clickElement('.account-modal__close');
|
||||
await driver.waitForElementNotPresent('.account-details-modal ');
|
||||
|
||||
await driver.clickElement('button[aria-label="Close"]');
|
||||
await driver.waitForElementNotPresent('.popover-bg');
|
||||
|
||||
return accountAddress;
|
||||
}
|
||||
|
@ -1,6 +1,11 @@
|
||||
const { strict: assert } = require('assert');
|
||||
const FixtureBuilder = require('../fixture-builder');
|
||||
const { convertToHexValue, withFixtures, openDapp } = require('../helpers');
|
||||
const {
|
||||
convertToHexValue,
|
||||
withFixtures,
|
||||
openDapp,
|
||||
regularDelayMs,
|
||||
} = require('../helpers');
|
||||
|
||||
describe('Custom network', function () {
|
||||
const chainID = '42161';
|
||||
@ -232,25 +237,28 @@ describe('Custom network', function () {
|
||||
title: this.test.title,
|
||||
},
|
||||
async ({ driver }) => {
|
||||
console.log('gets here -1');
|
||||
await driver.navigate();
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ tag: 'div', text: 'Settings' });
|
||||
// Avoid a stale element error
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement({ tag: 'button', text: 'Add network' });
|
||||
|
||||
await driver.clickElement({
|
||||
tag: 'button',
|
||||
text: 'Add',
|
||||
});
|
||||
|
||||
// verify network details
|
||||
const title = await driver.findElement({
|
||||
tag: 'h6',
|
||||
text: 'Arbitrum One',
|
||||
});
|
||||
|
||||
assert.equal(
|
||||
await title.getText(),
|
||||
'Arbitrum One',
|
||||
@ -298,7 +306,7 @@ describe('Custom network', function () {
|
||||
});
|
||||
// verify network switched
|
||||
const networkDisplayed = await driver.findElement({
|
||||
tag: 'span',
|
||||
tag: 'p',
|
||||
text: 'Arbitrum One',
|
||||
});
|
||||
assert.equal(
|
||||
@ -322,10 +330,10 @@ describe('Custom network', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ tag: 'div', text: 'Settings' });
|
||||
// Avoid a stale element error
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
await driver.clickElement({ tag: 'button', text: 'Add network' });
|
||||
|
||||
// had to put all Add elements in list since list is changing and networks are not always in same order
|
||||
@ -342,11 +350,13 @@ describe('Custom network', function () {
|
||||
});
|
||||
|
||||
// verify if added network is in list of networks
|
||||
const networkDisplay = await driver.findElement('.network-display');
|
||||
const networkDisplay = await driver.findElement(
|
||||
'[data-testid="network-display"]',
|
||||
);
|
||||
await networkDisplay.click();
|
||||
|
||||
const arbitrumNetwork = await driver.findElements({
|
||||
text: `Arbitrum One`,
|
||||
text: 'Arbitrum One',
|
||||
tag: 'span',
|
||||
});
|
||||
assert.ok(arbitrumNetwork.length, 1);
|
||||
@ -378,12 +388,14 @@ describe('Custom network', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Networks', tag: 'div' });
|
||||
|
||||
const arbitrumNetwork = await driver.clickElement({
|
||||
text: `Arbitrum One`,
|
||||
text: 'Arbitrum One',
|
||||
tag: 'div',
|
||||
});
|
||||
|
||||
|
@ -50,16 +50,16 @@ describe('Hide token', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.waitForSelector({
|
||||
css: '.asset-list-item__token-button',
|
||||
css: '[data-testid="multichain-token-list-item-value"]',
|
||||
text: '0 TST',
|
||||
});
|
||||
|
||||
let assets = await driver.findElements('.asset-list-item');
|
||||
let assets = await driver.findElements('.multichain-token-list-item');
|
||||
assert.equal(assets.length, 2);
|
||||
|
||||
await driver.clickElement({ text: 'Tokens', tag: 'button' });
|
||||
|
||||
await driver.clickElement({ text: 'TST', tag: 'span' });
|
||||
await driver.clickElement({ text: 'TST', tag: 'p' });
|
||||
|
||||
await driver.clickElement('[data-testid="asset-options__button"]');
|
||||
|
||||
@ -74,7 +74,7 @@ describe('Hide token', function () {
|
||||
// wait for confirm hide modal to be removed from DOM.
|
||||
await confirmHideModal.waitForElementState('hidden');
|
||||
|
||||
assets = await driver.findElements('.asset-list-item');
|
||||
assets = await driver.findElements('.multichain-token-list-item');
|
||||
assert.equal(assets.length, 1);
|
||||
},
|
||||
);
|
||||
@ -106,7 +106,7 @@ describe('Add existing token using search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement({ text: 'import tokens', tag: 'a' });
|
||||
await driver.clickElement({ text: 'Import tokens', tag: 'button' });
|
||||
await driver.fill('#search-tokens', 'BAT');
|
||||
await driver.clickElement({
|
||||
text: 'BAT',
|
||||
|
@ -102,7 +102,9 @@ describe('Address Book', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.identicon__address-wrapper');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Contacts', tag: 'div' });
|
||||
await driver.clickElement('[data-testid="recipient"]');
|
||||
@ -163,7 +165,9 @@ describe('Address Book', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.identicon__address-wrapper');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Contacts', tag: 'div' });
|
||||
|
||||
|
@ -26,7 +26,9 @@ describe('Advanced Settings', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Advanced', tag: 'div' });
|
||||
|
||||
|
@ -25,7 +25,9 @@ describe('Auto-Lock Timer', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
// Set Auto Lock Timer
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Advanced', tag: 'div' });
|
||||
const sixSecsInMins = '0.1';
|
||||
|
@ -70,7 +70,9 @@ describe('Backup and Restore', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
// Download user settings
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Advanced', tag: 'div' });
|
||||
await driver.clickElement({
|
||||
@ -107,7 +109,9 @@ describe('Backup and Restore', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
// Restore
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Advanced', tag: 'div' });
|
||||
const restore = await driver.findElement('#restore-file');
|
||||
|
@ -55,9 +55,12 @@ describe('Chain Interactions', function () {
|
||||
await driver.switchToWindow(extension);
|
||||
|
||||
// verify networks
|
||||
const networkDisplay = await driver.findElement('.network-display');
|
||||
await networkDisplay.click();
|
||||
const networkDisplay = await driver.findElement(
|
||||
'[data-testid="network-display"] p',
|
||||
);
|
||||
assert.equal(await networkDisplay.getText(), 'Localhost 8545');
|
||||
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
const ganacheChain = await driver.findElements({
|
||||
text: `Localhost ${port}`,
|
||||
tag: 'span',
|
||||
@ -101,7 +104,7 @@ describe('Chain Interactions', function () {
|
||||
|
||||
// verify current network
|
||||
const networkDisplay = await driver.findElement(
|
||||
'[data-testid="network-display"]',
|
||||
'[data-testid="network-display"] p',
|
||||
);
|
||||
assert.equal(await networkDisplay.getText(), `Localhost ${port}`);
|
||||
},
|
||||
|
@ -44,12 +44,11 @@ describe('Clear account activity', function () {
|
||||
});
|
||||
|
||||
// Clear activity and nonce data
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({
|
||||
css: '.tab-bar__tab__content__title',
|
||||
text: 'Advanced',
|
||||
});
|
||||
await driver.clickElement({ text: 'Advanced', tag: 'div' });
|
||||
await driver.clickElement({
|
||||
text: 'Clear activity tab data',
|
||||
tag: 'button',
|
||||
|
@ -1,5 +1,9 @@
|
||||
const { strict: assert } = require('assert');
|
||||
const { convertToHexValue, withFixtures } = require('../helpers');
|
||||
const {
|
||||
convertToHexValue,
|
||||
withFixtures,
|
||||
regularDelayMs,
|
||||
} = require('../helpers');
|
||||
const FixtureBuilder = require('../fixture-builder');
|
||||
|
||||
describe('Stores custom RPC history', function () {
|
||||
@ -31,7 +35,7 @@ describe('Stores custom RPC history', function () {
|
||||
const networkName = 'Secondary Ganache Testnet';
|
||||
|
||||
await driver.waitForElementNotPresent('.loading-overlay');
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
|
||||
await driver.clickElement({ text: 'Add network', tag: 'button' });
|
||||
|
||||
@ -66,7 +70,7 @@ describe('Stores custom RPC history', function () {
|
||||
'.networks-tab__add-network-form-footer .btn-primary',
|
||||
);
|
||||
|
||||
await driver.findElement({ text: networkName, tag: 'span' });
|
||||
await driver.findElement({ text: networkName, tag: 'p' });
|
||||
},
|
||||
);
|
||||
});
|
||||
@ -87,7 +91,7 @@ describe('Stores custom RPC history', function () {
|
||||
const duplicateRpcUrl = 'https://mainnet.infura.io/v3/';
|
||||
|
||||
await driver.waitForElementNotPresent('.loading-overlay');
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
|
||||
await driver.clickElement({ text: 'Add network', tag: 'button' });
|
||||
|
||||
@ -131,7 +135,7 @@ describe('Stores custom RPC history', function () {
|
||||
const duplicateChainId = '1';
|
||||
|
||||
await driver.waitForElementNotPresent('.loading-overlay');
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
|
||||
await driver.clickElement({ text: 'Add network', tag: 'button' });
|
||||
|
||||
@ -179,7 +183,7 @@ describe('Stores custom RPC history', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.waitForElementNotPresent('.loading-overlay');
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
|
||||
await driver.clickElement({ text: 'Ethereum Mainnet', tag: 'span' });
|
||||
},
|
||||
@ -218,12 +222,16 @@ describe('Stores custom RPC history', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.waitForElementNotPresent('.loading-overlay');
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
|
||||
await driver.clickElement('.toggle-button');
|
||||
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
// only recent 3 are found and in correct order (most recent at the top)
|
||||
const customRpcs = await driver.findElements({
|
||||
text: 'http://127.0.0.1:8545/',
|
||||
tag: 'span',
|
||||
tag: 'div',
|
||||
});
|
||||
|
||||
// click Mainnet to dismiss network dropdown
|
||||
@ -267,7 +275,7 @@ describe('Stores custom RPC history', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.waitForElementNotPresent('.loading-overlay');
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
|
||||
await driver.clickElement({ text: 'Add network', tag: 'button' });
|
||||
|
||||
|
@ -46,7 +46,7 @@ describe('Create token, approve token and approve token without gas', function (
|
||||
await driver.clickElement(`[data-testid="home__asset-tab"]`);
|
||||
await driver.clickElement({ tag: 'button', text: 'Tokens' });
|
||||
|
||||
await driver.clickElement({ text: 'import tokens', tag: 'a' });
|
||||
await driver.clickElement({ text: 'Import tokens', tag: 'button' });
|
||||
await driver.clickElement({
|
||||
text: 'Custom token',
|
||||
tag: 'button',
|
||||
@ -69,11 +69,10 @@ describe('Create token, approve token and approve token without gas', function (
|
||||
// renders balance for newly created token
|
||||
await driver.clickElement('.app-header__logo-container');
|
||||
await driver.clickElement({ tag: 'button', text: 'Tokens' });
|
||||
const asset = await driver.waitForSelector({
|
||||
css: '.asset-list-item__token-value',
|
||||
text: '10',
|
||||
await driver.waitForSelector({
|
||||
css: '[data-testid="multichain-token-list-item-value"]',
|
||||
text: '10 TST',
|
||||
});
|
||||
assert.equal(await asset.getText(), '10');
|
||||
},
|
||||
);
|
||||
});
|
||||
|
@ -43,8 +43,10 @@ describe('Dapp interactions', function () {
|
||||
|
||||
// Lock Account
|
||||
await driver.switchToWindow(extension);
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Lock', tag: 'button' });
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Lock', tag: 'div' });
|
||||
|
||||
// Trigger Notification
|
||||
await driver.switchToWindowWithTitle('E2E Test Dapp', windowHandles);
|
||||
@ -88,8 +90,10 @@ describe('Dapp interactions', function () {
|
||||
|
||||
// Lock Account
|
||||
await driver.switchToWindow(extension);
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Lock', tag: 'button' });
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Lock', tag: 'div' });
|
||||
|
||||
// Connect to Dapp1
|
||||
await openDapp(driver, null, DAPP_ONE_URL);
|
||||
|
@ -152,7 +152,6 @@ describe('Encrypt Decrypt', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await openDapp(driver);
|
||||
|
||||
// ------ Get Encryption key and display ETH ------
|
||||
|
@ -25,7 +25,6 @@ const ganacheOptions = {
|
||||
describe('MetaMask Import UI', function () {
|
||||
it('Importing wallet using Secret Recovery Phrase', async function () {
|
||||
const testPassword = 'correct horse battery staple';
|
||||
const testAddress = '0x0Cc5261AB8cE458dc977078A3623E2BaDD27afD3';
|
||||
|
||||
await withFixtures(
|
||||
{
|
||||
@ -44,29 +43,31 @@ describe('MetaMask Import UI', function () {
|
||||
);
|
||||
|
||||
// Show account information
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="account-list-menu-details"');
|
||||
await driver.findVisibleElement('.qr-code__wrapper');
|
||||
|
||||
// shows a QR code for the account
|
||||
await driver.findVisibleElement('.popover-container');
|
||||
// shows the correct account address
|
||||
const address = await driver.findElement(
|
||||
'.multichain-address-copy-button',
|
||||
);
|
||||
assert.equal(await address.getText(), '0x0Cc...afD3');
|
||||
|
||||
await driver.clickElement('[data-testid="popover-close"]');
|
||||
|
||||
// logs out of the account
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu__account-details"]',
|
||||
);
|
||||
await driver.findVisibleElement('.qr-code__wrapper');
|
||||
// shows a QR code for the account
|
||||
const detailsModal = await driver.findVisibleElement('span .modal');
|
||||
// shows the correct account address
|
||||
const address = await driver.findElement('.qr-code__address');
|
||||
|
||||
assert.equal(await address.getText(), testAddress);
|
||||
|
||||
await driver.clickElement('.account-modal__close');
|
||||
await detailsModal.waitForElementState('hidden');
|
||||
|
||||
// logs out of the account
|
||||
await driver.clickElement('.account-menu__icon .identicon');
|
||||
const lockButton = await driver.findClickableElement(
|
||||
'.account-menu__lock-button',
|
||||
'[data-testid="global-menu-lock"]',
|
||||
);
|
||||
assert.equal(await lockButton.getText(), 'Lock');
|
||||
assert.equal(await lockButton.getText(), 'Lock MetaMask');
|
||||
await lockButton.click();
|
||||
|
||||
// accepts the account password after lock
|
||||
@ -76,12 +77,13 @@ describe('MetaMask Import UI', function () {
|
||||
// Create a new account
|
||||
// switches to localhost
|
||||
await driver.delay(largeDelayMs);
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
await driver.clickElement('.toggle-button');
|
||||
await driver.clickElement({ text: 'Localhost', tag: 'span' });
|
||||
|
||||
// choose Create account from the account menu
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Create account', tag: 'div' });
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement({ text: 'Add account', tag: 'button' });
|
||||
|
||||
// set account name
|
||||
await driver.fill('.new-account-create-form input', '2nd account');
|
||||
@ -89,13 +91,19 @@ describe('MetaMask Import UI', function () {
|
||||
await driver.clickElement({ text: 'Create', tag: 'button' });
|
||||
|
||||
// should show the correct account name
|
||||
const accountName = await driver.findElement('.selected-account__name');
|
||||
assert.equal(await accountName.getText(), '2nd account');
|
||||
const accountName = await driver.isElementPresent({
|
||||
tag: 'span',
|
||||
text: '2nd account',
|
||||
});
|
||||
|
||||
assert.equal(accountName, true, 'Account name is not correct');
|
||||
|
||||
// Switch back to original account
|
||||
// chooses the original account from the account menu
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement('.account-menu__name');
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement(
|
||||
'.multichain-account-list-item__account-name__button',
|
||||
);
|
||||
|
||||
// Send ETH from inside MetaMask
|
||||
// starts a send transaction
|
||||
@ -151,15 +159,16 @@ describe('MetaMask Import UI', function () {
|
||||
);
|
||||
|
||||
// Show account information
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu__account-details"]',
|
||||
'[data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="account-list-menu-details"');
|
||||
await driver.findVisibleElement('.qr-code__wrapper');
|
||||
// shows the correct account address
|
||||
const address = await driver.findElement('.qr-code__address');
|
||||
const address = await driver.findElement(
|
||||
'.qr-code [data-testid="address-copy-button-text"]',
|
||||
);
|
||||
|
||||
assert.equal(await address.getText(), testAddress);
|
||||
},
|
||||
@ -188,16 +197,18 @@ describe('MetaMask Import UI', function () {
|
||||
|
||||
// Imports an account with private key
|
||||
// choose Create account from the account menu
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Import account', tag: 'div' });
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement({ text: 'Import account', tag: 'button' });
|
||||
|
||||
// enter private key',
|
||||
await driver.delay(regularDelayMs);
|
||||
await driver.fill('#private-key-box', testPrivateKey1);
|
||||
await driver.delay(regularDelayMs);
|
||||
await driver.clickElement({ text: 'Import', tag: 'button' });
|
||||
|
||||
// should show the correct account name
|
||||
const importedAccountName = await driver.findElement(
|
||||
'.selected-account__name',
|
||||
'[data-testid="account-menu-icon"]',
|
||||
);
|
||||
assert.equal(await importedAccountName.getText(), 'Account 4');
|
||||
|
||||
@ -210,53 +221,48 @@ describe('MetaMask Import UI', function () {
|
||||
);
|
||||
// confirm label is present on the same menu item
|
||||
const importedLabel = await driver.findElement(
|
||||
`${accountMenuItemSelector} .keyring-label`,
|
||||
`${accountMenuItemSelector} .mm-tag`,
|
||||
);
|
||||
assert.equal(await importedLabel.getText(), 'IMPORTED');
|
||||
assert.equal(await importedLabel.getText(), 'Imported');
|
||||
|
||||
// Imports and removes an account
|
||||
// choose Create account from the account menu
|
||||
await driver.clickElement({ text: 'Import account', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Import account', tag: 'button' });
|
||||
// enter private key
|
||||
await driver.fill('#private-key-box', testPrivateKey2);
|
||||
await driver.clickElement({ text: 'Import', tag: 'button' });
|
||||
|
||||
// should see new account in account menu
|
||||
const importedAccount2Name = await driver.findElement(
|
||||
'.selected-account__name',
|
||||
'[data-testid="account-menu-icon"]',
|
||||
);
|
||||
assert.equal(await importedAccount2Name.getText(), 'Account 5');
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
const accountListItems = await driver.findElements(
|
||||
'.account-menu__account',
|
||||
'.multichain-account-list-item',
|
||||
);
|
||||
assert.equal(accountListItems.length, 5);
|
||||
|
||||
await driver.clickPoint('.account-menu__icon', 0, 0);
|
||||
await driver.clickElement(
|
||||
'.multichain-account-list-item--selected [data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
|
||||
// should open the remove account modal
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu__remove-account"]',
|
||||
);
|
||||
await driver.findElement('.confirm-remove-account__account');
|
||||
await driver.clickElement('[data-testid="account-list-menu-remove"]');
|
||||
|
||||
// should remove the account
|
||||
await driver.clickElement({ text: 'Remove', tag: 'button' });
|
||||
|
||||
// Wait until selected account switches away from removed account to first account
|
||||
await driver.waitForSelector({
|
||||
css: '.selected-account__name',
|
||||
css: '[data-testid="account-menu-icon"]',
|
||||
text: 'Account 1',
|
||||
});
|
||||
|
||||
await driver.delay(regularDelayMs);
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
|
||||
const accountListItemsAfterRemoval = await driver.findElements(
|
||||
'.account-menu__account',
|
||||
'.multichain-account-list-item',
|
||||
);
|
||||
assert.equal(accountListItemsAfterRemoval.length, 4);
|
||||
},
|
||||
@ -279,8 +285,8 @@ describe('MetaMask Import UI', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
// Imports an account with JSON file
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Import account', tag: 'div' });
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement({ text: 'Import account', tag: 'button' });
|
||||
|
||||
await driver.clickElement('.dropdown__select');
|
||||
await driver.clickElement({ text: 'JSON File', tag: 'option' });
|
||||
@ -301,7 +307,7 @@ describe('MetaMask Import UI', function () {
|
||||
|
||||
// should show the correct account name
|
||||
const importedAccountName = await driver.findElement(
|
||||
'.selected-account__name',
|
||||
'[data-testid="account-menu-icon"]',
|
||||
);
|
||||
assert.equal(await importedAccountName.getText(), 'Account 4');
|
||||
|
||||
@ -315,12 +321,12 @@ describe('MetaMask Import UI', function () {
|
||||
|
||||
// confirm label is present on the same menu item
|
||||
const importedLabel = await driver.findElement(
|
||||
`${accountMenuItemSelector} .keyring-label`,
|
||||
`${accountMenuItemSelector} .mm-tag`,
|
||||
);
|
||||
assert.equal(await importedLabel.getText(), 'IMPORTED');
|
||||
assert.equal(await importedLabel.getText(), 'Imported');
|
||||
|
||||
const accountListItems = await driver.findElements(
|
||||
'.account-menu__account',
|
||||
'.multichain-account-list-item',
|
||||
);
|
||||
assert.equal(accountListItems.length, 4);
|
||||
},
|
||||
@ -345,8 +351,8 @@ describe('MetaMask Import UI', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
// choose Import Account from the account menu
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement({ text: 'Import account', tag: 'div' });
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement({ text: 'Import account', tag: 'button' });
|
||||
|
||||
// enter private key',
|
||||
await driver.fill('#private-key-box', testPrivateKey);
|
||||
@ -375,10 +381,10 @@ describe('MetaMask Import UI', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
// choose Connect hardware wallet from the account menu
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement({
|
||||
text: 'Connect hardware wallet',
|
||||
tag: 'div',
|
||||
text: 'Hardware wallet',
|
||||
tag: 'button',
|
||||
});
|
||||
await driver.delay(regularDelayMs);
|
||||
|
||||
|
@ -65,21 +65,21 @@ describe('Incremental Security', function () {
|
||||
await driver.clickElement('[data-testid="pin-extension-done"]');
|
||||
|
||||
// open account menu
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu__account-details"]',
|
||||
'.multichain-account-list-item--selected [data-testid="account-list-item-menu-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="account-list-menu-details"');
|
||||
|
||||
// gets the current accounts address
|
||||
const address = await driver.findElement('.qr-code__address');
|
||||
const address = await driver.findElement(
|
||||
'.qr-code .multichain-address-copy-button',
|
||||
);
|
||||
const publicAddress = await address.getText();
|
||||
|
||||
// wait for account modal to be visible
|
||||
const accountModal = await driver.findVisibleElement('span .modal');
|
||||
|
||||
await driver.clickElement('.account-modal__close');
|
||||
const accountModal = await driver.findVisibleElement('.popover-bg');
|
||||
await driver.clickElement('[data-testid="popover-close"]');
|
||||
|
||||
// wait for account modal to be removed from DOM
|
||||
await accountModal.waitForElementState('hidden');
|
||||
|
@ -24,17 +24,19 @@ describe('Lock and unlock', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
const lockButton = await driver.findClickableElement(
|
||||
'.account-menu__lock-button',
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
assert.equal(await lockButton.getText(), 'Lock');
|
||||
const lockButton = await driver.findClickableElement(
|
||||
'[data-testid="global-menu-lock"]',
|
||||
);
|
||||
assert.equal(await lockButton.getText(), 'Lock MetaMask');
|
||||
await lockButton.click();
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
const walletBalance = await driver.findElement(
|
||||
'[data-testid="wallet-balance"] .list-item__heading',
|
||||
'.eth-overview__primary-balance',
|
||||
);
|
||||
assert.equal(/^25\s*ETH$/u.test(await walletBalance.getText()), true);
|
||||
},
|
||||
|
@ -72,7 +72,7 @@ describe('MetaMask Responsive UI', function () {
|
||||
|
||||
// assert balance
|
||||
const balance = await driver.findElement(
|
||||
'[data-testid="wallet-balance"]',
|
||||
'[data-testid="eth-overview__primary-currency"]',
|
||||
);
|
||||
assert.ok(/^0\sETH$/u.test(await balance.getText()));
|
||||
},
|
||||
|
@ -271,8 +271,9 @@ describe('MetaMask onboarding', function () {
|
||||
|
||||
// Add custome network localhost 8546 during onboarding
|
||||
await driver.clickElement({ text: 'Advanced configuration', tag: 'a' });
|
||||
await driver.clickElement('.mm-picker-network');
|
||||
await driver.clickElement({
|
||||
text: 'Add custom network',
|
||||
text: 'Add network',
|
||||
tag: 'button',
|
||||
});
|
||||
|
||||
@ -301,7 +302,7 @@ describe('MetaMask onboarding', function () {
|
||||
|
||||
// Check localhost 8546 is selected and its balance value is correct
|
||||
const networkDisplay = await driver.findElement(
|
||||
'[data-testid="network-display"]',
|
||||
'[data-testid="network-display"] p',
|
||||
);
|
||||
assert.equal(await networkDisplay.getText(), networkName);
|
||||
|
||||
|
@ -55,9 +55,7 @@ describe('Permissions', function () {
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu__connected-sites"]',
|
||||
);
|
||||
await driver.clickElement('.menu-item');
|
||||
|
||||
await driver.findElement({
|
||||
text: 'Connected sites',
|
||||
|
@ -46,7 +46,7 @@ describe('MetaMask', function () {
|
||||
const windowHandles = await driver.getAllWindowHandles();
|
||||
await driver.switchToWindow(windowHandles[0]);
|
||||
|
||||
await driver.clickElement('.network-display');
|
||||
await driver.clickElement('[data-testid="network-display"]');
|
||||
await driver.clickElement({ text: 'Ethereum Mainnet', tag: 'span' });
|
||||
|
||||
await driver.switchToWindowWithTitle('E2E Test Dapp', windowHandles);
|
||||
|
@ -141,7 +141,9 @@ describe('Send ERC20 to a 40 character hexadecimal address', function () {
|
||||
|
||||
// Send TST
|
||||
await driver.clickElement('[data-testid="home__asset-tab"]');
|
||||
await driver.clickElement('.token-cell');
|
||||
await driver.clickElement(
|
||||
'[data-testid="multichain-token-list-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="eth-overview-send"]');
|
||||
|
||||
// Paste address without hex prefix
|
||||
@ -155,14 +157,14 @@ describe('Send ERC20 to a 40 character hexadecimal address', function () {
|
||||
});
|
||||
await driver.waitForSelector({
|
||||
css: '.transaction-detail-item',
|
||||
text: '0.00008455 ETH',
|
||||
text: '0.000042 ETH',
|
||||
});
|
||||
await driver.clickElement({ text: 'Next', tag: 'button' });
|
||||
|
||||
// Confirm transaction
|
||||
await driver.waitForSelector({
|
||||
css: '.confirm-page-container-summary__title',
|
||||
text: '0 TST',
|
||||
text: '0',
|
||||
});
|
||||
await driver.clickElement({ text: 'Confirm', tag: 'button' });
|
||||
await driver.clickElement('[data-testid="home__activity-tab"]');
|
||||
@ -203,7 +205,9 @@ describe('Send ERC20 to a 40 character hexadecimal address', function () {
|
||||
|
||||
// Send TST
|
||||
await driver.clickElement('[data-testid="home__asset-tab"]');
|
||||
await driver.clickElement('.token-cell');
|
||||
await driver.clickElement(
|
||||
'[data-testid="multichain-token-list-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="eth-overview-send"]');
|
||||
|
||||
// Type address without hex prefix
|
||||
@ -217,14 +221,14 @@ describe('Send ERC20 to a 40 character hexadecimal address', function () {
|
||||
});
|
||||
await driver.waitForSelector({
|
||||
css: '.transaction-detail-item',
|
||||
text: '0.00008455 ETH',
|
||||
text: '0.000042 ETH',
|
||||
});
|
||||
await driver.clickElement({ text: 'Next', tag: 'button' });
|
||||
|
||||
// Confirm transaction
|
||||
await driver.waitForSelector({
|
||||
css: '.confirm-page-container-summary__title',
|
||||
text: '0 TST',
|
||||
text: '0',
|
||||
});
|
||||
await driver.clickElement({ text: 'Confirm', tag: 'button' });
|
||||
await driver.clickElement('[data-testid="home__activity-tab"]');
|
||||
|
@ -34,7 +34,9 @@ describe('Send ERC20 token to contract address', function () {
|
||||
|
||||
// Send TST
|
||||
await driver.clickElement('[data-testid="home__asset-tab"]');
|
||||
await driver.clickElement('.token-cell');
|
||||
await driver.clickElement(
|
||||
'[data-testid="multichain-token-list-button"]',
|
||||
);
|
||||
await driver.clickElement('[data-testid="eth-overview-send"]');
|
||||
|
||||
// Type contract address
|
||||
|
@ -26,7 +26,9 @@ describe('Settings', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
// goes to the settings screen
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
|
||||
// finds the jazzicon toggle turned on
|
||||
|
@ -35,7 +35,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.general);
|
||||
|
||||
@ -61,7 +63,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.advanced);
|
||||
|
||||
@ -88,7 +92,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.contacts);
|
||||
|
||||
@ -115,7 +121,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.security);
|
||||
|
||||
@ -142,7 +150,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.alerts);
|
||||
|
||||
@ -169,7 +179,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.networks);
|
||||
|
||||
@ -196,7 +208,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.experimental);
|
||||
|
||||
@ -223,7 +237,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', settingsSearch.about);
|
||||
|
||||
@ -250,7 +266,9 @@ describe('Settings Search', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.fill('#search-settings', 'Lorem ipsum');
|
||||
|
||||
|
@ -45,7 +45,9 @@ describe('State logs', function () {
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
// Download state logs
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement(
|
||||
'[data-testid="account-options-menu-button"]',
|
||||
);
|
||||
await driver.clickElement({ text: 'Settings', tag: 'div' });
|
||||
await driver.clickElement({ text: 'Advanced', tag: 'div' });
|
||||
await driver.clickElement({
|
||||
|
@ -88,7 +88,7 @@ describe('Swtich ethereum chain', function () {
|
||||
await driver.switchToWindow(extension);
|
||||
|
||||
const currentNetworkName = await driver.findElement({
|
||||
tag: 'span',
|
||||
tag: 'p',
|
||||
text: 'Localhost 8546',
|
||||
});
|
||||
|
||||
|
@ -24,7 +24,7 @@ describe('Token Details', function () {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement({ text: 'import tokens', tag: 'a' });
|
||||
await driver.clickElement({ text: 'Import tokens', tag: 'button' });
|
||||
await driver.clickElement({ text: 'Custom token', tag: 'button' });
|
||||
|
||||
const tokenAddress = '0x2EFA2Cb29C2341d8E5Ba7D3262C9e9d6f1Bf3711';
|
||||
|
@ -33,9 +33,11 @@ async function loadNewAccount() {
|
||||
await driver.fill('#password', 'correct horse battery staple');
|
||||
await driver.press('#password', driver.Key.ENTER);
|
||||
|
||||
await driver.clickElement('.account-menu__icon');
|
||||
await driver.clickElement('[data-testid="account-menu-icon"]');
|
||||
const timestampBeforeAction = new Date();
|
||||
await driver.clickElement({ text: 'Create account', tag: 'div' });
|
||||
await driver.clickElement(
|
||||
'[data-testid="multichain-account-menu-add-account"]',
|
||||
);
|
||||
await driver.fill('.new-account-create-form input', '2nd account');
|
||||
await driver.clickElement({ text: 'Create', tag: 'button' });
|
||||
await driver.waitForSelector({
|
||||
|
@ -1,400 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Account Menu Render Content should not render keyring label if keyring tyoe is Custody - JSONRPC 1`] = `
|
||||
<div>
|
||||
<div
|
||||
class="account-menu"
|
||||
>
|
||||
<div
|
||||
class="account-menu__close-area"
|
||||
/>
|
||||
<div
|
||||
class="account-menu__item account-menu__header"
|
||||
>
|
||||
My accounts
|
||||
<button
|
||||
class="button btn--rounded btn-secondary account-menu__lock-button"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
>
|
||||
Lock
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__divider"
|
||||
/>
|
||||
<div
|
||||
class="account-menu__accounts-container"
|
||||
>
|
||||
<div
|
||||
class="account-menu__accounts"
|
||||
>
|
||||
<button
|
||||
class="account-menu__account account-menu__item--clickable"
|
||||
data-testid="account-menu__account"
|
||||
>
|
||||
<div
|
||||
class="account-menu__check-mark"
|
||||
/>
|
||||
<div
|
||||
class=""
|
||||
>
|
||||
<div
|
||||
class="identicon"
|
||||
style="height: 24px; width: 24px; border-radius: 12px;"
|
||||
>
|
||||
<div
|
||||
style="border-radius: 50px; overflow: hidden; padding: 0px; margin: 0px; width: 24px; height: 24px; display: inline-block; background: rgb(24, 151, 242);"
|
||||
>
|
||||
<svg
|
||||
height="24"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
>
|
||||
<rect
|
||||
fill="#2362E1"
|
||||
height="24"
|
||||
transform="translate(2.6919976385943882 -4.000732967425142) rotate(458.4 12 12)"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
<rect
|
||||
fill="#F94301"
|
||||
height="24"
|
||||
transform="translate(-11.522594467237658 5.994263726614974) rotate(268.8 12 12)"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
<rect
|
||||
fill="#FA7900"
|
||||
height="24"
|
||||
transform="translate(-6.8071905594760675 22.110011910512533) rotate(117.3 12 12)"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__account-info"
|
||||
>
|
||||
<div
|
||||
class="account-menu__name"
|
||||
>
|
||||
Account 1
|
||||
</div>
|
||||
<label
|
||||
class="box mm-text mm-label mm-label--html-for mm-text--body-md mm-text--font-weight-bold box--display-flex box--flex-direction-row box--align-items-center box--color-text-default"
|
||||
for="address-0"
|
||||
/>
|
||||
<div
|
||||
class="account-menu__balance-container"
|
||||
>
|
||||
<div
|
||||
class="currency-display-component account-menu__balance"
|
||||
data-testid="account-menu__balance"
|
||||
title="0 ETH"
|
||||
>
|
||||
<span
|
||||
class="currency-display-component__prefix"
|
||||
/>
|
||||
<span
|
||||
class="currency-display-component__text"
|
||||
>
|
||||
0
|
||||
</span>
|
||||
<span
|
||||
class="currency-display-component__suffix"
|
||||
>
|
||||
ETH
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<span
|
||||
class="account-menu__address"
|
||||
>
|
||||
|
||||
·
|
||||
0x00
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
class="currency-display-component account-menu__balance"
|
||||
data-testid="account-menu__balance"
|
||||
title="0 ETH"
|
||||
>
|
||||
<span
|
||||
class="currency-display-component__prefix"
|
||||
/>
|
||||
<span
|
||||
class="currency-display-component__text"
|
||||
>
|
||||
0
|
||||
</span>
|
||||
<span
|
||||
class="currency-display-component__suffix"
|
||||
>
|
||||
ETH
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
<button
|
||||
class="account-menu__account account-menu__item--clickable"
|
||||
data-testid="account-menu__account"
|
||||
>
|
||||
<div
|
||||
class="account-menu__check-mark"
|
||||
/>
|
||||
<div
|
||||
class=""
|
||||
>
|
||||
<div
|
||||
class="identicon"
|
||||
style="height: 24px; width: 24px; border-radius: 12px;"
|
||||
>
|
||||
<div
|
||||
style="border-radius: 50px; overflow: hidden; padding: 0px; margin: 0px; width: 24px; height: 24px; display: inline-block; background: rgb(24, 162, 242);"
|
||||
>
|
||||
<svg
|
||||
height="24"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
>
|
||||
<rect
|
||||
fill="#F29602"
|
||||
height="24"
|
||||
transform="translate(0.0008341139930255813 -0.00037625505634810975) rotate(358.8 12 12)"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
<rect
|
||||
fill="#FA6C00"
|
||||
height="24"
|
||||
transform="translate(5.974289636227165 7.880005368393935) rotate(69.5 12 12)"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
<rect
|
||||
fill="#236CE1"
|
||||
height="24"
|
||||
transform="translate(-14.300029938001572 12.149694281529626) rotate(260.2 12 12)"
|
||||
width="24"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__account-info"
|
||||
>
|
||||
<div
|
||||
class="account-menu__name"
|
||||
>
|
||||
Imported Account 1
|
||||
</div>
|
||||
<label
|
||||
class="box mm-text mm-label mm-label--html-for mm-text--body-md mm-text--font-weight-bold box--display-flex box--flex-direction-row box--align-items-center box--color-text-default"
|
||||
for="address-0"
|
||||
/>
|
||||
<div
|
||||
class="account-menu__balance-container"
|
||||
>
|
||||
<div
|
||||
class="currency-display-component account-menu__balance"
|
||||
data-testid="account-menu__balance"
|
||||
title="0 ETH"
|
||||
>
|
||||
<span
|
||||
class="currency-display-component__prefix"
|
||||
/>
|
||||
<span
|
||||
class="currency-display-component__text"
|
||||
>
|
||||
0
|
||||
</span>
|
||||
<span
|
||||
class="currency-display-component__suffix"
|
||||
>
|
||||
ETH
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<span
|
||||
class="account-menu__address"
|
||||
>
|
||||
|
||||
·
|
||||
0x1
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
class="currency-display-component account-menu__balance"
|
||||
data-testid="account-menu__balance"
|
||||
title="0 ETH"
|
||||
>
|
||||
<span
|
||||
class="currency-display-component__prefix"
|
||||
/>
|
||||
<span
|
||||
class="currency-display-component__text"
|
||||
>
|
||||
0
|
||||
</span>
|
||||
<span
|
||||
class="currency-display-component__suffix"
|
||||
>
|
||||
ETH
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__divider"
|
||||
/>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__icon"
|
||||
>
|
||||
<span
|
||||
class="box mm-icon mm-icon--size-md box--display-inline-block box--flex-direction-row box--color-icon-alternative"
|
||||
style="mask-image: url('./images/icons/add.svg');"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Create account
|
||||
</div>
|
||||
</button>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__icon"
|
||||
>
|
||||
<span
|
||||
class="box mm-icon mm-icon--size-md box--display-inline-block box--flex-direction-row box--color-icon-alternative"
|
||||
style="mask-image: url('./images/icons/import.svg');"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Import account
|
||||
</div>
|
||||
</button>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__icon"
|
||||
>
|
||||
<span
|
||||
class="box mm-icon mm-icon--size-md box--display-inline-block box--flex-direction-row box--color-icon-alternative"
|
||||
style="mask-image: url('./images/icons/hardware.svg');"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Connect hardware wallet
|
||||
</div>
|
||||
</button>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Connect Custodial Account
|
||||
</div>
|
||||
</button>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Compliance
|
||||
</div>
|
||||
</button>
|
||||
<div
|
||||
class="account-menu__divider"
|
||||
/>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__icon"
|
||||
>
|
||||
<div
|
||||
class="account-menu__notifications"
|
||||
>
|
||||
<span
|
||||
class="box mm-icon mm-icon--size-lg box--display-inline-block box--flex-direction-row box--color-inherit"
|
||||
style="mask-image: url('./images/icons/notification.svg');"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Notifications
|
||||
</div>
|
||||
</button>
|
||||
<div
|
||||
class="account-menu__divider"
|
||||
/>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__icon"
|
||||
>
|
||||
<span
|
||||
class="box mm-icon mm-icon--size-md box--display-inline-block box--flex-direction-row box--color-icon-alternative"
|
||||
style="mask-image: url('./images/icons/messages.svg');"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Submit a ticket
|
||||
</div>
|
||||
</button>
|
||||
<button
|
||||
class="account-menu__item account-menu__item--clickable"
|
||||
>
|
||||
<div
|
||||
class="account-menu__item__icon"
|
||||
>
|
||||
<span
|
||||
aria-label="Settings"
|
||||
class="box mm-icon mm-icon--size-md box--display-inline-block box--flex-direction-row box--color-icon-alternative"
|
||||
style="mask-image: url('./images/icons/setting.svg');"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__item__text"
|
||||
>
|
||||
Settings
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
@ -1,617 +0,0 @@
|
||||
import React, { Component } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { debounce } from 'lodash';
|
||||
import Fuse from 'fuse.js';
|
||||
import InputAdornment from '@material-ui/core/InputAdornment';
|
||||
import classnames from 'classnames';
|
||||
import { ENVIRONMENT_TYPE_POPUP } from '../../../../shared/constants/app';
|
||||
import {
|
||||
MetaMetricsContextProp,
|
||||
MetaMetricsEventAccountType,
|
||||
MetaMetricsEventCategory,
|
||||
MetaMetricsEventName,
|
||||
} from '../../../../shared/constants/metametrics';
|
||||
import { getEnvironmentType } from '../../../../app/scripts/lib/util';
|
||||
import Identicon from '../../ui/identicon';
|
||||
import SiteIcon from '../../ui/site-icon';
|
||||
import UserPreferencedCurrencyDisplay from '../user-preferenced-currency-display';
|
||||
import {
|
||||
PRIMARY,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-beta,build-flask)
|
||||
SUPPORT_REQUEST_LINK,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
} from '../../../helpers/constants/common';
|
||||
import {
|
||||
SETTINGS_ROUTE,
|
||||
NEW_ACCOUNT_ROUTE,
|
||||
IMPORT_ACCOUNT_ROUTE,
|
||||
CONNECT_HARDWARE_ROUTE,
|
||||
DEFAULT_ROUTE,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
NOTIFICATIONS_ROUTE,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
CUSTODY_ACCOUNT_ROUTE,
|
||||
COMPLIANCE_FEATURE_ROUTE,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
} from '../../../helpers/constants/routes';
|
||||
import TextField from '../../ui/text-field';
|
||||
|
||||
import Button from '../../ui/button';
|
||||
import SearchIcon from '../../ui/icon/search-icon';
|
||||
import { SUPPORT_LINK } from '../../../../shared/lib/ui-utils';
|
||||
import { IconColor } from '../../../helpers/constants/design-system';
|
||||
import { Icon, IconName, IconSize } from '../../component-library';
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
import { shortenAddress } from '../../../helpers/utils/util';
|
||||
import CustodyLabels from '../../institutional/custody-labels';
|
||||
import { toChecksumHexAddress } from '../../../../shared/modules/hexstring-utils';
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
import KeyRingLabel from './keyring-label';
|
||||
|
||||
export function AccountMenuItem(props) {
|
||||
const { icon, children, text, subText, className, onClick } = props;
|
||||
|
||||
const itemClassName = classnames('account-menu__item', className, {
|
||||
'account-menu__item--clickable': Boolean(onClick),
|
||||
});
|
||||
return children ? (
|
||||
<div className={itemClassName} onClick={onClick}>
|
||||
{children}
|
||||
</div>
|
||||
) : (
|
||||
<button className={itemClassName} onClick={onClick}>
|
||||
{icon ? <div className="account-menu__item__icon">{icon}</div> : null}
|
||||
{text ? <div className="account-menu__item__text">{text}</div> : null}
|
||||
{subText ? (
|
||||
<div className="account-menu__item__subtext">{subText}</div>
|
||||
) : null}
|
||||
</button>
|
||||
);
|
||||
}
|
||||
|
||||
AccountMenuItem.propTypes = {
|
||||
icon: PropTypes.node,
|
||||
children: PropTypes.node,
|
||||
text: PropTypes.node,
|
||||
subText: PropTypes.node,
|
||||
onClick: PropTypes.func,
|
||||
className: PropTypes.string,
|
||||
};
|
||||
|
||||
export default class AccountMenu extends Component {
|
||||
static contextTypes = {
|
||||
t: PropTypes.func,
|
||||
trackEvent: PropTypes.func,
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
shouldShowAccountsSearch: PropTypes.bool,
|
||||
accounts: PropTypes.array,
|
||||
history: PropTypes.object,
|
||||
isAccountMenuOpen: PropTypes.bool,
|
||||
keyrings: PropTypes.array,
|
||||
lockMetamask: PropTypes.func,
|
||||
selectedAddress: PropTypes.string,
|
||||
setSelectedAccount: PropTypes.func,
|
||||
toggleAccountMenu: PropTypes.func,
|
||||
addressConnectedSubjectMap: PropTypes.object,
|
||||
originOfCurrentTab: PropTypes.string,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
unreadNotificationsCount: PropTypes.number,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
custodyAccountDetails: PropTypes.object,
|
||||
mmiPortfolioEnabled: PropTypes.bool,
|
||||
mmiPortfolioUrl: PropTypes.string,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
};
|
||||
|
||||
accountsRef;
|
||||
|
||||
state = {
|
||||
shouldShowScrollButton: false,
|
||||
searchQuery: '',
|
||||
};
|
||||
|
||||
addressFuse = new Fuse([], {
|
||||
threshold: 0.55,
|
||||
location: 0,
|
||||
distance: 100,
|
||||
maxPatternLength: 32,
|
||||
minMatchCharLength: 1,
|
||||
ignoreFieldNorm: true,
|
||||
keys: [
|
||||
{ name: 'name', weight: 0.5 },
|
||||
{ name: 'address', weight: 0.5 },
|
||||
],
|
||||
});
|
||||
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
const { isAccountMenuOpen: prevIsAccountMenuOpen } = prevProps;
|
||||
const { searchQuery: prevSearchQuery } = prevState;
|
||||
const { isAccountMenuOpen } = this.props;
|
||||
const { searchQuery } = this.state;
|
||||
|
||||
if (!prevIsAccountMenuOpen && isAccountMenuOpen) {
|
||||
this.setShouldShowScrollButton();
|
||||
this.resetSearchQuery();
|
||||
}
|
||||
|
||||
// recalculate on each search query change
|
||||
// whether we can show scroll down button
|
||||
if (isAccountMenuOpen && prevSearchQuery !== searchQuery) {
|
||||
this.setShouldShowScrollButton();
|
||||
}
|
||||
}
|
||||
|
||||
renderAccountsSearch() {
|
||||
const handleChange = (e) => {
|
||||
const val = e.target.value.length > 1 ? e.target.value : '';
|
||||
this.setSearchQuery(val);
|
||||
};
|
||||
|
||||
const inputAdornment = (
|
||||
<InputAdornment
|
||||
position="start"
|
||||
style={{
|
||||
maxHeight: 'none',
|
||||
marginRight: 0,
|
||||
marginLeft: '8px',
|
||||
}}
|
||||
>
|
||||
<SearchIcon color="var(--color-icon-muted)" />
|
||||
</InputAdornment>
|
||||
);
|
||||
|
||||
return [
|
||||
<TextField
|
||||
key="search-text-field"
|
||||
id="search-accounts"
|
||||
placeholder={this.context.t('searchAccounts')}
|
||||
type="text"
|
||||
onChange={handleChange}
|
||||
startAdornment={inputAdornment}
|
||||
fullWidth
|
||||
theme="material-white-padded"
|
||||
/>,
|
||||
<div className="account-menu__divider" key="search-divider" />,
|
||||
];
|
||||
}
|
||||
|
||||
renderAccounts() {
|
||||
const {
|
||||
accounts,
|
||||
selectedAddress,
|
||||
keyrings,
|
||||
setSelectedAccount,
|
||||
addressConnectedSubjectMap,
|
||||
originOfCurrentTab,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
custodyAccountDetails,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
} = this.props;
|
||||
const { searchQuery } = this.state;
|
||||
|
||||
let filteredIdentities = accounts;
|
||||
if (searchQuery) {
|
||||
this.addressFuse.setCollection(accounts);
|
||||
filteredIdentities = this.addressFuse.search(searchQuery);
|
||||
}
|
||||
|
||||
if (filteredIdentities.length === 0) {
|
||||
return (
|
||||
<p className="account-menu__no-accounts">
|
||||
{this.context.t('noAccountsFound')}
|
||||
</p>
|
||||
);
|
||||
}
|
||||
|
||||
return filteredIdentities.map((identity) => {
|
||||
const isSelected = identity.address === selectedAddress;
|
||||
|
||||
const simpleAddress = identity.address.substring(2).toLowerCase();
|
||||
|
||||
const keyring = keyrings.find((kr) => {
|
||||
return (
|
||||
kr.accounts.includes(simpleAddress) ||
|
||||
kr.accounts.includes(identity.address)
|
||||
);
|
||||
});
|
||||
const addressSubjects =
|
||||
addressConnectedSubjectMap[identity.address] || {};
|
||||
const iconAndNameForOpenSubject = addressSubjects[originOfCurrentTab];
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
const labels = custodyAccountDetails
|
||||
? custodyAccountDetails[toChecksumHexAddress(identity.address)]
|
||||
?.labels || []
|
||||
: [];
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
return (
|
||||
<button
|
||||
className="account-menu__account account-menu__item--clickable"
|
||||
onClick={() => {
|
||||
this.context.trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.NavAccountSwitched,
|
||||
properties: {
|
||||
location: 'Main Menu',
|
||||
},
|
||||
});
|
||||
setSelectedAccount(identity.address);
|
||||
}}
|
||||
key={identity.address}
|
||||
data-testid="account-menu__account"
|
||||
>
|
||||
<div className="account-menu__check-mark">
|
||||
{isSelected ? (
|
||||
<Icon
|
||||
color={IconColor.successDefault}
|
||||
name={IconName.Check}
|
||||
size={IconSize.Lg}
|
||||
/>
|
||||
) : null}
|
||||
</div>
|
||||
<Identicon address={identity.address} diameter={24} />
|
||||
<div className="account-menu__account-info">
|
||||
<div className="account-menu__name">{identity.name || ''}</div>
|
||||
{
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
<>
|
||||
{labels && (
|
||||
<CustodyLabels
|
||||
labels={labels}
|
||||
background="transparent"
|
||||
hideNetwork
|
||||
/>
|
||||
)}
|
||||
<div className="account-menu__balance-container">
|
||||
<UserPreferencedCurrencyDisplay
|
||||
className="account-menu__balance"
|
||||
data-testid="account-menu__balance"
|
||||
value={identity.balance}
|
||||
type={PRIMARY}
|
||||
/>{' '}
|
||||
<span className="account-menu__address">
|
||||
{' '}
|
||||
· {shortenAddress(identity.address)}
|
||||
</span>
|
||||
</div>
|
||||
</>
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
}
|
||||
{
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-main,build-beta,build-flask)
|
||||
<UserPreferencedCurrencyDisplay
|
||||
className="account-menu__balance"
|
||||
data-testid="account-menu__balance"
|
||||
value={identity.balance}
|
||||
type={PRIMARY}
|
||||
/>
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
}
|
||||
</div>
|
||||
<KeyRingLabel keyring={keyring} />
|
||||
{iconAndNameForOpenSubject ? (
|
||||
<div className="account-menu__icon-list">
|
||||
<SiteIcon
|
||||
icon={iconAndNameForOpenSubject.icon}
|
||||
name={iconAndNameForOpenSubject.name}
|
||||
size={32}
|
||||
/>
|
||||
</div>
|
||||
) : null}
|
||||
</button>
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
resetSearchQuery() {
|
||||
this.setSearchQuery('');
|
||||
}
|
||||
|
||||
setSearchQuery(searchQuery) {
|
||||
this.setState({ searchQuery });
|
||||
}
|
||||
|
||||
setShouldShowScrollButton = () => {
|
||||
if (!this.accountsRef) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { scrollTop, offsetHeight, scrollHeight } = this.accountsRef;
|
||||
const canScroll = scrollHeight > offsetHeight;
|
||||
const atAccountListBottom = scrollTop + offsetHeight >= scrollHeight;
|
||||
const shouldShowScrollButton = canScroll && !atAccountListBottom;
|
||||
|
||||
this.setState({ shouldShowScrollButton });
|
||||
};
|
||||
|
||||
onScroll = debounce(this.setShouldShowScrollButton, 25);
|
||||
|
||||
handleScrollDown = (e) => {
|
||||
e.stopPropagation();
|
||||
|
||||
const { scrollHeight } = this.accountsRef;
|
||||
this.accountsRef.scroll({ left: 0, top: scrollHeight, behavior: 'smooth' });
|
||||
|
||||
this.setShouldShowScrollButton();
|
||||
};
|
||||
|
||||
renderScrollButton() {
|
||||
if (!this.state.shouldShowScrollButton) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
className="account-menu__scroll-button"
|
||||
onClick={this.handleScrollDown}
|
||||
>
|
||||
<i className="fa fa-arrow-down" title={this.context.t('scrollDown')} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
const { t, trackEvent } = this.context;
|
||||
const {
|
||||
shouldShowAccountsSearch,
|
||||
isAccountMenuOpen,
|
||||
toggleAccountMenu,
|
||||
lockMetamask,
|
||||
history,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
unreadNotificationsCount,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
mmiPortfolioEnabled,
|
||||
mmiPortfolioUrl,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
} = this.props;
|
||||
|
||||
if (!isAccountMenuOpen) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let supportText = t('support');
|
||||
let supportLink = SUPPORT_LINK;
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-beta,build-flask)
|
||||
supportText = t('needHelpSubmitTicket');
|
||||
supportLink = SUPPORT_REQUEST_LINK;
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
return (
|
||||
<div className="account-menu">
|
||||
<div className="account-menu__close-area" onClick={toggleAccountMenu} />
|
||||
<AccountMenuItem className="account-menu__header">
|
||||
{t('myAccounts')}
|
||||
<Button
|
||||
className="account-menu__lock-button"
|
||||
type="secondary"
|
||||
onClick={() => {
|
||||
lockMetamask();
|
||||
history.push(DEFAULT_ROUTE);
|
||||
}}
|
||||
>
|
||||
{t('lock')}
|
||||
</Button>
|
||||
</AccountMenuItem>
|
||||
<div className="account-menu__divider" />
|
||||
<div className="account-menu__accounts-container">
|
||||
{shouldShowAccountsSearch ? this.renderAccountsSearch() : null}
|
||||
<div
|
||||
className="account-menu__accounts"
|
||||
onScroll={this.onScroll}
|
||||
ref={(ref) => {
|
||||
this.accountsRef = ref;
|
||||
}}
|
||||
>
|
||||
{this.renderAccounts()}
|
||||
</div>
|
||||
{this.renderScrollButton()}
|
||||
</div>
|
||||
<div className="account-menu__divider" />
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.AccountAddSelected,
|
||||
properties: {
|
||||
account_type: MetaMetricsEventAccountType.Default,
|
||||
location: 'Main Menu',
|
||||
},
|
||||
});
|
||||
history.push(NEW_ACCOUNT_ROUTE);
|
||||
}}
|
||||
icon={<Icon name={IconName.Add} color={IconColor.iconAlternative} />}
|
||||
text={t('createAccount')}
|
||||
/>
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.AccountAddSelected,
|
||||
properties: {
|
||||
account_type: MetaMetricsEventAccountType.Imported,
|
||||
location: 'Main Menu',
|
||||
},
|
||||
});
|
||||
history.push(IMPORT_ACCOUNT_ROUTE);
|
||||
}}
|
||||
icon={
|
||||
<Icon name={IconName.Import} color={IconColor.iconAlternative} />
|
||||
}
|
||||
text={t('importAccount')}
|
||||
/>
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.AccountAddSelected,
|
||||
properties: {
|
||||
account_type: MetaMetricsEventAccountType.Hardware,
|
||||
location: 'Main Menu',
|
||||
},
|
||||
});
|
||||
if (getEnvironmentType() === ENVIRONMENT_TYPE_POPUP) {
|
||||
global.platform.openExtensionInBrowser(CONNECT_HARDWARE_ROUTE);
|
||||
} else {
|
||||
history.push(CONNECT_HARDWARE_ROUTE);
|
||||
}
|
||||
}}
|
||||
icon={
|
||||
<Icon name={IconName.Hardware} color={IconColor.iconAlternative} />
|
||||
}
|
||||
text={t('connectHardwareWallet')}
|
||||
/>
|
||||
{
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
<>
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event:
|
||||
MetaMetricsEventName.UserClickedConnectCustodialAccount,
|
||||
});
|
||||
if (getEnvironmentType() === ENVIRONMENT_TYPE_POPUP) {
|
||||
global.platform.openExtensionInBrowser(CUSTODY_ACCOUNT_ROUTE);
|
||||
} else {
|
||||
history.push(CUSTODY_ACCOUNT_ROUTE);
|
||||
}
|
||||
}}
|
||||
Icon={
|
||||
<Icon
|
||||
name={IconName.Custody}
|
||||
color={IconColor.primaryDefault}
|
||||
/>
|
||||
}
|
||||
text={t('connectCustodialAccountMenu')}
|
||||
/>
|
||||
{mmiPortfolioEnabled && (
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.UserClickedPortfolioButton,
|
||||
});
|
||||
window.open(mmiPortfolioUrl, '_blank');
|
||||
}}
|
||||
Icon={
|
||||
<Icon
|
||||
name={IconName.MmmiPortfolioDashboard}
|
||||
color={IconColor.primaryDefault}
|
||||
/>
|
||||
}
|
||||
text={t('portfolioDashboard')}
|
||||
/>
|
||||
)}
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.UserClickedCompliance,
|
||||
});
|
||||
if (getEnvironmentType() === ENVIRONMENT_TYPE_POPUP) {
|
||||
global.platform.openExtensionInBrowser(
|
||||
COMPLIANCE_FEATURE_ROUTE,
|
||||
);
|
||||
} else {
|
||||
history.push(COMPLIANCE_FEATURE_ROUTE);
|
||||
}
|
||||
}}
|
||||
Icon={
|
||||
<Icon
|
||||
name={IconName.Compliance}
|
||||
color={IconColor.primaryDefault}
|
||||
/>
|
||||
}
|
||||
text={t('compliance')}
|
||||
/>
|
||||
</>
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
}
|
||||
<div className="account-menu__divider" />
|
||||
{
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
<>
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
history.push(NOTIFICATIONS_ROUTE);
|
||||
}}
|
||||
icon={
|
||||
<div className="account-menu__notifications">
|
||||
<Icon name={IconName.Notification} size={IconSize.Lg} />
|
||||
{unreadNotificationsCount > 0 && (
|
||||
<div className="account-menu__notifications__count">
|
||||
{unreadNotificationsCount}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
}
|
||||
text={t('notifications')}
|
||||
/>
|
||||
<div className="account-menu__divider" />
|
||||
</>
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
}
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
trackEvent(
|
||||
{
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.SupportLinkClicked,
|
||||
properties: {
|
||||
url: supportLink,
|
||||
},
|
||||
},
|
||||
{
|
||||
contextPropsIntoEventProperties: [
|
||||
MetaMetricsContextProp.PageTitle,
|
||||
],
|
||||
},
|
||||
);
|
||||
global.platform.openTab({ url: supportLink });
|
||||
}}
|
||||
icon={
|
||||
<Icon name={IconName.Messages} color={IconColor.iconAlternative} />
|
||||
}
|
||||
text={supportText}
|
||||
/>
|
||||
|
||||
<AccountMenuItem
|
||||
onClick={() => {
|
||||
toggleAccountMenu();
|
||||
history.push(SETTINGS_ROUTE);
|
||||
this.context.trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.NavSettingsOpened,
|
||||
properties: {
|
||||
location: 'Main Menu',
|
||||
},
|
||||
});
|
||||
}}
|
||||
icon={
|
||||
<Icon
|
||||
name={IconName.Setting}
|
||||
color={IconColor.iconAlternative}
|
||||
ariaLabel={t('settings')}
|
||||
/>
|
||||
}
|
||||
text={t('settings')}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
import { connect } from 'react-redux';
|
||||
import { compose } from 'redux';
|
||||
import { withRouter } from 'react-router-dom';
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
import {
|
||||
getMmiPortfolioEnabled,
|
||||
getMmiPortfolioUrl,
|
||||
getCustodyAccountDetails,
|
||||
} from '../../../selectors/institutional/selectors';
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
import {
|
||||
toggleAccountMenu,
|
||||
setSelectedAccount,
|
||||
lockMetamask,
|
||||
hideWarning,
|
||||
} from '../../../store/actions';
|
||||
import {
|
||||
getAddressConnectedSubjectMap,
|
||||
getMetaMaskAccountsOrdered,
|
||||
getMetaMaskKeyrings,
|
||||
getOriginOfCurrentTab,
|
||||
getSelectedAddress,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
getUnreadNotificationsCount,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
} from '../../../selectors';
|
||||
import AccountMenu from './account-menu.component';
|
||||
|
||||
/**
|
||||
* The min amount of accounts to show search field
|
||||
*/
|
||||
const SHOW_SEARCH_ACCOUNTS_MIN_COUNT = 5;
|
||||
|
||||
function mapStateToProps(state) {
|
||||
const {
|
||||
metamask: { isAccountMenuOpen },
|
||||
} = state;
|
||||
const accounts = getMetaMaskAccountsOrdered(state);
|
||||
const origin = getOriginOfCurrentTab(state);
|
||||
const selectedAddress = getSelectedAddress(state);
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
const unreadNotificationsCount = getUnreadNotificationsCount(state);
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
return {
|
||||
isAccountMenuOpen,
|
||||
addressConnectedSubjectMap: getAddressConnectedSubjectMap(state),
|
||||
originOfCurrentTab: origin,
|
||||
selectedAddress,
|
||||
keyrings: getMetaMaskKeyrings(state),
|
||||
accounts,
|
||||
shouldShowAccountsSearch: accounts.length >= SHOW_SEARCH_ACCOUNTS_MIN_COUNT,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
unreadNotificationsCount,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
mmiPortfolioUrl: getMmiPortfolioUrl(state),
|
||||
mmiPortfolioEnabled: getMmiPortfolioEnabled(state),
|
||||
custodyAccountDetails: getCustodyAccountDetails(state),
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
};
|
||||
}
|
||||
|
||||
function mapDispatchToProps(dispatch) {
|
||||
return {
|
||||
toggleAccountMenu: () => dispatch(toggleAccountMenu()),
|
||||
setSelectedAccount: (address) => {
|
||||
dispatch(setSelectedAccount(address));
|
||||
dispatch(toggleAccountMenu());
|
||||
},
|
||||
lockMetamask: () => {
|
||||
dispatch(lockMetamask());
|
||||
dispatch(hideWarning());
|
||||
dispatch(toggleAccountMenu());
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export default compose(
|
||||
withRouter,
|
||||
connect(mapStateToProps, mapDispatchToProps),
|
||||
)(AccountMenu);
|
@ -1,208 +0,0 @@
|
||||
import React from 'react';
|
||||
import sinon from 'sinon';
|
||||
import configureMockStore from 'redux-mock-store';
|
||||
import { fireEvent, screen } from '@testing-library/react';
|
||||
import { renderWithProvider } from '../../../../test/lib/render-helpers';
|
||||
import { KeyringType } from '../../../../shared/constants/keyring';
|
||||
import AccountMenu from '.';
|
||||
|
||||
const initialProps = {
|
||||
isAccountMenuOpen: true,
|
||||
addressConnectedSubjectMap: {},
|
||||
accounts: [
|
||||
{
|
||||
address: '0x00',
|
||||
name: 'Account 1',
|
||||
balance: '0x0',
|
||||
},
|
||||
{
|
||||
address: '0x1',
|
||||
name: 'Imported Account 1',
|
||||
balance: '0x0',
|
||||
},
|
||||
],
|
||||
keyrings: [
|
||||
{
|
||||
type: KeyringType.hdKeyTree,
|
||||
accounts: ['0xAdress'],
|
||||
},
|
||||
{
|
||||
type: KeyringType.imported,
|
||||
accounts: ['0x1'],
|
||||
},
|
||||
],
|
||||
prevIsAccountMenuOpen: false,
|
||||
lockMetamask: sinon.spy(),
|
||||
setSelectedAccount: sinon.spy(),
|
||||
showRemoveAccountConfirmationModal: sinon.spy(),
|
||||
toggleAccountMenu: sinon.spy(),
|
||||
history: {
|
||||
push: sinon.spy(),
|
||||
},
|
||||
};
|
||||
|
||||
const mockStore = {
|
||||
metamask: {
|
||||
providerConfig: {
|
||||
type: 'test',
|
||||
},
|
||||
preferences: {
|
||||
useNativeCurrencyAsPrimaryCurrency: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const renderComponent = ({ props = initialProps } = {}) => {
|
||||
const store = configureMockStore()(mockStore);
|
||||
return renderWithProvider(<AccountMenu.WrappedComponent {...props} />, store);
|
||||
};
|
||||
|
||||
describe('Account Menu', () => {
|
||||
beforeEach(() => renderComponent());
|
||||
|
||||
afterEach(() => {
|
||||
initialProps.toggleAccountMenu.resetHistory();
|
||||
initialProps.history.push.resetHistory();
|
||||
});
|
||||
|
||||
describe('Render Content', () => {
|
||||
it('returns account name from identities', () => {
|
||||
const accountName = screen.queryAllByTestId('account-menu__account');
|
||||
expect(accountName).toHaveLength(2);
|
||||
});
|
||||
|
||||
it('renders user preference currency display balance from account balance', () => {
|
||||
const accountBalance = screen.queryAllByTestId('account-menu__balance');
|
||||
|
||||
expect(accountBalance).toHaveLength(4);
|
||||
});
|
||||
|
||||
it('simulate click', () => {
|
||||
const click = screen.getAllByTestId('account-menu__account');
|
||||
fireEvent.click(click[0]);
|
||||
|
||||
expect(initialProps.setSelectedAccount.calledOnce).toStrictEqual(true);
|
||||
expect(initialProps.setSelectedAccount.getCall(0).args[0]).toStrictEqual(
|
||||
'0x00',
|
||||
);
|
||||
});
|
||||
|
||||
it('render imported account label', () => {
|
||||
const importedAccount = screen.getByText('Imported');
|
||||
expect(importedAccount).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('should not render keyring label if keyring tyoe is Custody - JSONRPC', () => {
|
||||
const props = {
|
||||
...initialProps,
|
||||
keyrings: [
|
||||
{
|
||||
type: 'Custody - JSONRPC',
|
||||
accounts: ['0xAdress'],
|
||||
},
|
||||
{
|
||||
type: 'Custody - JSONRPC',
|
||||
accounts: ['0x1'],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const { container } = renderComponent({ props });
|
||||
|
||||
expect(container).toMatchSnapshot();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Log Out', () => {
|
||||
it('logout', () => {
|
||||
const logout = screen.getByText('Lock');
|
||||
expect(logout).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('simulate click', () => {
|
||||
const logout = screen.getByText('Lock');
|
||||
fireEvent.click(logout);
|
||||
expect(initialProps.lockMetamask.calledOnce).toStrictEqual(true);
|
||||
expect(initialProps.history.push.getCall(0).args[0]).toStrictEqual('/');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Create Account', () => {
|
||||
it('renders create account item', () => {
|
||||
const createAccount = screen.getByText('Create account');
|
||||
expect(createAccount).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('calls toggle menu and push new-account route to history', () => {
|
||||
const createAccount = screen.getByText('Create account');
|
||||
fireEvent.click(createAccount);
|
||||
expect(initialProps.toggleAccountMenu.calledOnce).toStrictEqual(true);
|
||||
expect(initialProps.history.push.getCall(0).args[0]).toStrictEqual(
|
||||
'/new-account',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Import Account', () => {
|
||||
it('renders import account item', () => {
|
||||
const importAccount = screen.getByText('Import account');
|
||||
expect(importAccount).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('calls toggle menu and push /new-account/import route to history', () => {
|
||||
const importAccount = screen.getByText('Import account');
|
||||
fireEvent.click(importAccount);
|
||||
expect(initialProps.toggleAccountMenu.calledOnce).toStrictEqual(true);
|
||||
expect(initialProps.history.push.getCall(0).args[0]).toStrictEqual(
|
||||
'/new-account/import',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Connect hardware wallet', () => {
|
||||
it('renders import account item', () => {
|
||||
const connectHardwareWallet = screen.getByText('Connect hardware wallet');
|
||||
expect(connectHardwareWallet).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('calls toggle menu and push /new-account/connect route to history', () => {
|
||||
const connectHardwareWallet = screen.getByText('Connect hardware wallet');
|
||||
fireEvent.click(connectHardwareWallet);
|
||||
expect(initialProps.toggleAccountMenu.calledOnce).toStrictEqual(true);
|
||||
expect(initialProps.history.push.getCall(0).args[0]).toStrictEqual(
|
||||
'/new-account/connect',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Support', () => {
|
||||
global.platform = { openTab: sinon.spy() };
|
||||
|
||||
it('renders import account item', () => {
|
||||
const support = screen.getByText('Submit a ticket');
|
||||
expect(support).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('opens support link when clicked', () => {
|
||||
const support = screen.getByText('Submit a ticket');
|
||||
fireEvent.click(support);
|
||||
expect(global.platform.openTab.calledOnce).toStrictEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Settings', () => {
|
||||
it('renders import account item', () => {
|
||||
const settings = screen.getByText('Settings');
|
||||
expect(settings).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('calls toggle menu and push /new-account/connect route to history', () => {
|
||||
const settings = screen.getByText('Settings');
|
||||
fireEvent.click(settings);
|
||||
expect(initialProps.toggleAccountMenu.calledOnce).toStrictEqual(true);
|
||||
expect(initialProps.history.push.getCall(0).args[0]).toStrictEqual(
|
||||
'/settings',
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
@ -1 +0,0 @@
|
||||
export { default } from './account-menu.container';
|
@ -1,291 +0,0 @@
|
||||
.account-menu {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
top: 58px;
|
||||
width: 320px;
|
||||
border-radius: 4px;
|
||||
background: var(--color-background-default);
|
||||
box-shadow: var(--shadow-size-sm) var(--color-shadow-default);
|
||||
min-width: 150px;
|
||||
color: var(--color-text-default);
|
||||
|
||||
@include screen-sm-max {
|
||||
right: 16px;
|
||||
}
|
||||
|
||||
@include screen-sm-min {
|
||||
right: calc((100vw - 85vw) / 2);
|
||||
}
|
||||
|
||||
@include screen-md-min {
|
||||
right: calc((100vw - 80vw) / 2);
|
||||
}
|
||||
|
||||
@include screen-lg-min {
|
||||
right: calc((100vw - 65vw) / 2);
|
||||
}
|
||||
|
||||
&__item {
|
||||
padding: 18px;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
z-index: 201;
|
||||
border: 0;
|
||||
background: none;
|
||||
width: 100%;
|
||||
|
||||
@include screen-sm-max {
|
||||
padding: 0 14px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
&--clickable {
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--color-background-default-hover);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: var(--color-background-default-hover);
|
||||
}
|
||||
}
|
||||
|
||||
&__icon {
|
||||
margin-right: 8px;
|
||||
display: flex;
|
||||
color: var(--color-icon-alternative);
|
||||
|
||||
i {
|
||||
text-align: center;
|
||||
width: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
&__text {
|
||||
@include H6;
|
||||
|
||||
@include screen-md-min {
|
||||
@include Paragraph;
|
||||
}
|
||||
|
||||
color: var(--color-text-default);
|
||||
}
|
||||
|
||||
&__subtext {
|
||||
@include H7;
|
||||
|
||||
padding: 5px 0 0 30px;
|
||||
}
|
||||
}
|
||||
|
||||
&__divider {
|
||||
background-color: var(--color-border-muted);
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
&__close-area {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
&__icon {
|
||||
margin-left: 1rem;
|
||||
cursor: pointer;
|
||||
|
||||
&--disabled {
|
||||
cursor: initial;
|
||||
}
|
||||
}
|
||||
|
||||
&__header {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
& &__lock-button {
|
||||
@include H7;
|
||||
|
||||
padding: 0.25rem 0.5rem;
|
||||
min-width: 59px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
&__accounts-container {
|
||||
display: flex;
|
||||
position: relative;
|
||||
flex-direction: column;
|
||||
z-index: 200;
|
||||
}
|
||||
|
||||
&__accounts {
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
max-height: 256px;
|
||||
scrollbar-width: auto;
|
||||
|
||||
@include screen-sm-max {
|
||||
max-height: 240px;
|
||||
}
|
||||
|
||||
// If window is smaller than extension popover height
|
||||
// reduce scrollable accounts window height
|
||||
@media screen and (max-height: 600px) {
|
||||
max-height: 130px;
|
||||
}
|
||||
|
||||
.keyring-label {
|
||||
@include H9;
|
||||
|
||||
z-index: 1;
|
||||
border-radius: 10px;
|
||||
padding: 4px;
|
||||
text-align: center;
|
||||
height: 15px;
|
||||
margin-top: 5px;
|
||||
margin-right: 10px;
|
||||
background-color: var(--color-background-alternative);
|
||||
border: 1px solid var(--color-border-default);
|
||||
color: var(--color-text-default);
|
||||
font-weight: normal;
|
||||
letter-spacing: 0.5px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
&__notifications {
|
||||
position: relative;
|
||||
|
||||
&__count {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
min-width: 12px;
|
||||
min-height: 12px;
|
||||
font-size: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-primary-default);
|
||||
color: var(--color-primary-inverse);
|
||||
}
|
||||
}
|
||||
|
||||
&__no-accounts {
|
||||
@include H6;
|
||||
|
||||
padding: 16px 14px;
|
||||
}
|
||||
|
||||
&__account {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
padding: 16px 14px;
|
||||
flex: 0 0 auto;
|
||||
background: none;
|
||||
border: 0;
|
||||
width: 100%;
|
||||
|
||||
@include screen-sm-max {
|
||||
padding: 12px 14px;
|
||||
}
|
||||
|
||||
.remove-account-icon {
|
||||
width: 15px;
|
||||
margin-left: 10px;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.remove-account-icon::after {
|
||||
content: '\00D7';
|
||||
font-size: 25px;
|
||||
color: var(--color-text-default);
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
margin-top: -5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__account-info {
|
||||
flex: 1 0 auto;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
}
|
||||
|
||||
&__check-mark {
|
||||
margin-right: 8px;
|
||||
flex: 0 0 auto;
|
||||
min-width: 24px;
|
||||
}
|
||||
|
||||
.identicon {
|
||||
margin: 0 12px 0 0;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
&__name {
|
||||
@include H6;
|
||||
|
||||
@include screen-md-min {
|
||||
@include Paragraph;
|
||||
}
|
||||
|
||||
color: var(--color-text-default);
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
max-width: 200px;
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
&__balance {
|
||||
@include H6;
|
||||
|
||||
color: var(--color-text-alternative);
|
||||
}
|
||||
|
||||
&__action {
|
||||
@include Paragraph;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&__scroll-button {
|
||||
position: absolute;
|
||||
bottom: 12px;
|
||||
right: 12px;
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
border-radius: 14px;
|
||||
border: 1px solid var(--color-border-default);
|
||||
background: var(--color-background-alternative);
|
||||
color: var(--color-icon-default);
|
||||
z-index: 201;
|
||||
cursor: pointer;
|
||||
opacity: 0.8;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
&__icon-list {
|
||||
display: flex;
|
||||
}
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import { useI18nContext } from '../../../hooks/useI18nContext';
|
||||
import { HardwareKeyringNames } from '../../../../shared/constants/hardware-wallets';
|
||||
import { KeyringType } from '../../../../shared/constants/keyring';
|
||||
|
||||
export default function KeyRingLabel({ keyring }) {
|
||||
const t = useI18nContext();
|
||||
let label = null;
|
||||
|
||||
// Keyring value might take a while to get a value
|
||||
if (!keyring) {
|
||||
return null;
|
||||
}
|
||||
const { type } = keyring;
|
||||
|
||||
switch (type) {
|
||||
case KeyringType.qr:
|
||||
label = HardwareKeyringNames.qr;
|
||||
break;
|
||||
case KeyringType.imported:
|
||||
label = t('imported');
|
||||
break;
|
||||
case KeyringType.trezor:
|
||||
label = HardwareKeyringNames.trezor;
|
||||
break;
|
||||
case KeyringType.ledger:
|
||||
label = HardwareKeyringNames.ledger;
|
||||
break;
|
||||
case KeyringType.lattice:
|
||||
label = HardwareKeyringNames.lattice;
|
||||
break;
|
||||
default:
|
||||
label = null;
|
||||
}
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
if (type.startsWith('Custody') && /JSONRPC/u.test(type)) {
|
||||
label = type.split(' - ')[1];
|
||||
return null;
|
||||
}
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
if (label === null) {
|
||||
return label;
|
||||
}
|
||||
|
||||
return (
|
||||
<>{label ? <div className="keyring-label allcaps">{label}</div> : null}</>
|
||||
);
|
||||
}
|
||||
|
||||
KeyRingLabel.propTypes = {
|
||||
keyring: PropTypes.object,
|
||||
};
|
@ -1,14 +1,10 @@
|
||||
/** Please import your files in alphabetical order **/
|
||||
@import 'account-list-item/index';
|
||||
@import 'account-menu/index';
|
||||
@import 'add-network/index';
|
||||
@import 'advanced-gas-inputs/index';
|
||||
@import 'app-loading-spinner/index';
|
||||
@import 'import-token-link/index';
|
||||
@import 'advanced-gas-controls/index';
|
||||
@import 'alerts/alerts';
|
||||
@import 'app-header/index';
|
||||
@import 'asset-list-item/asset-list-item';
|
||||
@import 'beta-header/index';
|
||||
@import 'cancel-speedup-popover/index';
|
||||
@import 'confirm-page-container/index';
|
||||
@ -49,7 +45,6 @@
|
||||
@import 'hold-to-reveal-button/index';
|
||||
@import 'home-notification/index';
|
||||
@import 'info-box/index';
|
||||
@import 'menu-bar/index';
|
||||
@import 'modal/index';
|
||||
@import 'modals/index';
|
||||
@import 'multilayer-fee-message/index';
|
||||
@ -94,7 +89,6 @@
|
||||
@import 'advanced-gas-fee-popover/advanced-gas-fee-input-subtext/index';
|
||||
@import 'advanced-gas-fee-popover/advanced-gas-fee-defaults/index';
|
||||
@import 'currency-input/index';
|
||||
@import 'asset-list/detected-tokens-link/index';
|
||||
@import 'detected-token/detected-token-address/index';
|
||||
@import 'detected-token/detected-token-aggregators/index';
|
||||
@import 'detected-token/detected-token-values/index';
|
||||
|
@ -1,301 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`App Header should match snapshot 1`] = `
|
||||
<div>
|
||||
<div
|
||||
class="app-header"
|
||||
>
|
||||
<div
|
||||
class="app-header__contents"
|
||||
>
|
||||
<div
|
||||
class="app-header__logo-container app-header__logo-container--clickable"
|
||||
data-testid="app-header-logo"
|
||||
>
|
||||
<svg
|
||||
class="app-header__metafox-logo--horizontal"
|
||||
height="30"
|
||||
viewBox="0 0 1311 242"
|
||||
width="162"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<g
|
||||
fill="none"
|
||||
>
|
||||
<g
|
||||
fill="var(--color-text-default)"
|
||||
transform="translate(361 61)"
|
||||
>
|
||||
<path
|
||||
d="m796.7 60.9c-6.8-4.5-14.3-7.7-21.4-11.7-4.6-2.6-9.5-4.9-13.5-8.2-6.8-5.6-5.4-16.6 1.7-21.4 10.2-6.8 27.1-3 28.9 10.9 0 .3.3.5.6.5h15.4c.4 0 .7-.3.6-.7-.8-9.6-4.5-17.6-11.3-22.7-6.5-4.9-13.9-7.5-21.8-7.5-40.7 0-44.4 43.1-22.5 56.7 2.5 1.6 24 12.4 31.6 17.1s10 13.3 6.7 20.1c-3 6.2-10.8 10.5-18.6 10-8.5-.5-15.1-5.1-17.4-12.3-.4-1.3-.6-3.8-.6-4.9 0-.3-.3-.6-.6-.6h-16.7c-.3 0-.6.3-.6.6 0 12.1 3 18.8 11.2 24.9 7.7 5.8 16.1 8.2 24.8 8.2 22.8 0 34.6-12.9 37-26.3 2.1-13.1-1.8-24.9-13.5-32.7z"
|
||||
/>
|
||||
<path
|
||||
d="m71.6 2.3h-7.4-8.1c-.3 0-.5.2-.6.4l-13.7 45.2c-.2.6-1 .6-1.2 0l-13.7-45.2c-.1-.3-.3-.4-.6-.4h-8.1-7.4-10c-.3 0-.6.3-.6.6v115.4c0 .3.3.6.6.6h16.7c.3 0 .6-.3.6-.6v-87.7c0-.7 1-.8 1.2-.2l13.8 45.5 1 3.2c.1.3.3.4.6.4h12.8c.3 0 .5-.2.6-.4l1-3.2 13.8-45.5c.2-.7 1.2-.5 1.2.2v87.7c0 .3.3.6.6.6h16.7c.3 0 .6-.3.6-.6v-115.4c0-.3-.3-.6-.6-.6z"
|
||||
/>
|
||||
<path
|
||||
d="m541 2.3c-.3 0-.5.2-.6.4l-13.7 45.2c-.2.6-1 .6-1.2 0l-13.7-45.2c-.1-.3-.3-.4-.6-.4h-25.4c-.3 0-.6.3-.6.6v115.4c0 .3.3.6.6.6h16.7c.3 0 .6-.3.6-.6v-87.7c0-.7 1-.8 1.2-.2l13.8 45.5 1 3.2c.1.3.3.4.6.4h12.8c.3 0 .5-.2.6-.4l1-3.2 13.8-45.5c.2-.7 1.2-.5 1.2.2v87.7c0 .3.3.6.6.6h16.7c.3 0 .6-.3.6-.6v-115.4c0-.3-.3-.6-.6-.6z"
|
||||
/>
|
||||
<path
|
||||
d="m325.6 2.3h-31.1-16.7-31.1c-.3 0-.6.3-.6.6v14.4c0 .3.3.6.6.6h30.5v100.4c0 .3.3.6.6.6h16.7c.3 0 .6-.3.6-.6v-100.4h30.5c.3 0 .6-.3.6-.6v-14.4c0-.3-.2-.6-.6-.6z"
|
||||
/>
|
||||
<path
|
||||
d="m424.1 118.9h15.2c.4 0 .7-.4.6-.8l-31.4-115.8c-.1-.3-.3-.4-.6-.4h-5.8-10.2-5.8c-.3 0-.5.2-.6.4l-31.4 115.8c-.1.4.2.8.6.8h15.2c.3 0 .5-.2.6-.4l9.1-33.7c.1-.3.3-.4.6-.4h33.6c.3 0 .5.2.6.4l9.1 33.7c.1.2.4.4.6.4zm-39.9-51 12.2-45.1c.2-.6 1-.6 1.2 0l12.2 45.1c.1.4-.2.8-.6.8h-24.4c-.4 0-.7-.4-.6-.8z"
|
||||
/>
|
||||
<path
|
||||
d="m683.3 118.9h15.2c.4 0 .7-.4.6-.8l-31.4-115.8c-.1-.3-.3-.4-.6-.4h-5.8-10.2-5.8c-.3 0-.5.2-.6.4l-31.4 115.8c-.1.4.2.8.6.8h15.2c.3 0 .5-.2.6-.4l9.1-33.7c.1-.3.3-.4.6-.4h33.6c.3 0 .5.2.6.4l9.1 33.7c.1.2.3.4.6.4zm-39.9-51 12.2-45.1c.2-.6 1-.6 1.2 0l12.2 45.1c.1.4-.2.8-.6.8h-24.4c-.4 0-.7-.4-.6-.8z"
|
||||
/>
|
||||
<path
|
||||
d="m149.8 101.8v-35.8c0-.3.3-.6.6-.6h44.5c.3 0 .6-.3.6-.6v-14.4c0-.3-.3-.6-.6-.6h-44.5c-.3 0-.6-.3-.6-.6v-30.6c0-.3.3-.6.6-.6h50.6c.3 0 .6-.3.6-.6v-14.4c0-.3-.3-.6-.6-.6h-51.2-17.3c-.3 0-.6.3-.6.6v15 31.9 15.6 37 15.8c0 .3.3.6.6.6h17.3 53.3c.3 0 .6-.3.6-.6v-15.2c0-.3-.3-.6-.6-.6h-52.8c-.3-.1-.5-.3-.5-.7z"
|
||||
/>
|
||||
<path
|
||||
d="m949.3 117.9-57.8-59.7c-.2-.2-.2-.6 0-.8l52-54c.4-.4.1-1-.4-1h-21.3c-.2 0-.3.1-.4.2l-44.1 45.8c-.4.4-1 .1-1-.4v-45c0-.3-.3-.6-.6-.6h-16.7c-.3 0-.6.3-.6.6v115.4c0 .3.3.6.6.6h16.7c.3 0 .6-.3.6-.6v-50.8c0-.5.7-.8 1-.4l50 51.6c.1.1.3.2.4.2h21.3c.4-.1.7-.8.3-1.1z"
|
||||
/>
|
||||
</g>
|
||||
<g
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
transform="translate(1 1)"
|
||||
>
|
||||
<path
|
||||
d="m246.1.2-101.1 75 18.8-44.2z"
|
||||
fill="#e17726"
|
||||
stroke="#e17726"
|
||||
/>
|
||||
<g
|
||||
fill="#e27625"
|
||||
stroke="#e27625"
|
||||
transform="translate(2)"
|
||||
>
|
||||
<path
|
||||
d="m10.9.2 100.2 75.7-17.9-44.9z"
|
||||
/>
|
||||
<path
|
||||
d="m207.7 174.1-26.9 41.2 57.6 15.9 16.5-56.2z"
|
||||
/>
|
||||
<path
|
||||
d="m.2 175 16.4 56.2 57.5-15.9-26.8-41.2z"
|
||||
/>
|
||||
<path
|
||||
d="m71 104.5-16 24.2 57 2.6-1.9-61.5z"
|
||||
/>
|
||||
<path
|
||||
d="m184 104.5-39.7-35.4-1.3 62.2 57-2.6z"
|
||||
/>
|
||||
<path
|
||||
d="m74.1 215.3 34.5-16.7-29.7-23.2z"
|
||||
/>
|
||||
<path
|
||||
d="m146.4 198.6 34.4 16.7-4.7-39.9z"
|
||||
/>
|
||||
</g>
|
||||
<g
|
||||
fill="#d5bfb2"
|
||||
stroke="#d5bfb2"
|
||||
transform="translate(76 198)"
|
||||
>
|
||||
<path
|
||||
d="m106.8 17.3-34.4-16.7 2.8 22.4-.3 9.5z"
|
||||
/>
|
||||
<path
|
||||
d="m.1 17.3 32 15.2-.2-9.5 2.7-22.4z"
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
d="m108.7 160.6-28.6-8.4 20.2-9.3z"
|
||||
fill="#233447"
|
||||
stroke="#233447"
|
||||
/>
|
||||
<path
|
||||
d="m150.3 160.6 8.4-17.7 20.3 9.3z"
|
||||
fill="#233447"
|
||||
stroke="#233447"
|
||||
/>
|
||||
<g
|
||||
fill="#cc6228"
|
||||
stroke="#cc6228"
|
||||
transform="translate(49 128)"
|
||||
>
|
||||
<path
|
||||
d="m27.1 87.3 5-41.2-31.8.9z"
|
||||
/>
|
||||
<path
|
||||
d="m128.9 46.1 4.9 41.2 26.9-40.3z"
|
||||
/>
|
||||
<path
|
||||
d="m153 .7-57 2.6 5.3 29.3 8.4-17.7 20.3 9.3z"
|
||||
/>
|
||||
<path
|
||||
d="m31.1 24.2 20.2-9.3 8.4 17.7 5.3-29.3-57-2.6z"
|
||||
/>
|
||||
</g>
|
||||
<g
|
||||
fill="#e27525"
|
||||
stroke="#e27525"
|
||||
transform="translate(57 128)"
|
||||
>
|
||||
<path
|
||||
d="m0 .7 23.9 46.7-.8-23.2z"
|
||||
/>
|
||||
<path
|
||||
d="m122 24.2-.9 23.2 23.9-46.7z"
|
||||
/>
|
||||
<path
|
||||
d="m57 3.3-5.3 29.3 6.7 34.6 1.5-45.6z"
|
||||
/>
|
||||
<path
|
||||
d="m88 3.3-2.8 18.2 1.4 45.7 6.7-34.6z"
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
d="m150.3 160.6-6.7 34.6 4.8 3.4 29.7-23.2.9-23.2z"
|
||||
fill="#f5841f"
|
||||
stroke="#f5841f"
|
||||
/>
|
||||
<path
|
||||
d="m80.1 152.2.8 23.2 29.7 23.2 4.8-3.4-6.7-34.6z"
|
||||
fill="#f5841f"
|
||||
stroke="#f5841f"
|
||||
/>
|
||||
<path
|
||||
d="m150.9 230.5.3-9.5-2.6-2.2h-38.2l-2.5 2.2.2 9.5-32-15.2 11.2 9.2 22.7 15.7h38.9l22.8-15.7 11.1-9.2z"
|
||||
fill="#c0ac9d"
|
||||
stroke="#c0ac9d"
|
||||
/>
|
||||
<path
|
||||
d="m148.4 198.6-4.8-3.4h-28.2l-4.8 3.4-2.7 22.4 2.5-2.2h38.2l2.6 2.2z"
|
||||
fill="#161616"
|
||||
stroke="#161616"
|
||||
/>
|
||||
<g
|
||||
fill="#763e1a"
|
||||
stroke="#763e1a"
|
||||
>
|
||||
<path
|
||||
d="m250.4 80.1 8.5-41.4-12.8-38.5-97.7 72.5 37.6 31.8 53.1 15.5 11.7-13.7-5.1-3.7 8.1-7.4-6.2-4.8 8.1-6.2z"
|
||||
/>
|
||||
<path
|
||||
d="m.1 38.7 8.6 41.4-5.5 4.1 8.2 6.2-6.2 4.8 8.1 7.4-5.1 3.7 11.7 13.7 53.1-15.5 37.6-31.8-97.7-72.5z"
|
||||
/>
|
||||
</g>
|
||||
<g
|
||||
fill="#f5841f"
|
||||
stroke="#f5841f"
|
||||
>
|
||||
<path
|
||||
d="m239.1 120-53.1-15.5 16 24.2-23.9 46.7 31.6-.4h47.2z"
|
||||
/>
|
||||
<path
|
||||
d="m73 104.5-53.1 15.5-17.7 55h47.1l31.6.4-23.9-46.7z"
|
||||
/>
|
||||
<path
|
||||
d="m145 131.3 3.4-58.6 15.4-41.7h-68.6l15.4 41.7 3.4 58.6 1.3 18.4.1 45.5h28.2l.1-45.5z"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<img
|
||||
alt=""
|
||||
class="app-header__metafox-logo--icon"
|
||||
src="./images/logo/metamask-fox.svg"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="app-header__account-menu-container"
|
||||
>
|
||||
<div
|
||||
class="app-header__network-component-wrapper"
|
||||
>
|
||||
<div
|
||||
class="network-display network-display--clickable chip chip--with-left-icon chip--with-right-icon chip--border-color-border-default chip--background-color-undefined chip--max-content"
|
||||
data-testid="network-display"
|
||||
role="button"
|
||||
tabindex="0"
|
||||
>
|
||||
<div
|
||||
class="chip__left-icon"
|
||||
>
|
||||
<div
|
||||
class="color-indicator color-indicator--filled color-indicator--color-icon-muted color-indicator--size-lg"
|
||||
data-testid="color-icon-icon-muted"
|
||||
>
|
||||
<i
|
||||
class="color-indicator__icon fa fa-question"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<span
|
||||
class="box box--margin-top-1 box--margin-bottom-1 box--flex-direction-row typography chip__label typography--h7 typography--weight-normal typography--style-normal typography--color-text-alternative"
|
||||
>
|
||||
Private network
|
||||
</span>
|
||||
<div
|
||||
class="chip__right-icon"
|
||||
>
|
||||
<span
|
||||
class="box mm-icon mm-icon--size-xs box--display-inline-block box--flex-direction-row box--color-inherit"
|
||||
style="mask-image: url('./images/icons/arrow-down.svg');"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
class="account-menu__icon"
|
||||
data-testid="account-menu-icon"
|
||||
>
|
||||
<div
|
||||
class="identicon__address-wrapper"
|
||||
style="height: 40px; width: 40px; border-radius: 20px;"
|
||||
>
|
||||
<div
|
||||
class="identicon"
|
||||
style="height: 32px; width: 32px; border-radius: 16px;"
|
||||
>
|
||||
<div
|
||||
style="border-radius: 50px; overflow: hidden; padding: 0px; margin: 0px; width: 32px; height: 32px; display: inline-block; background: rgb(250, 58, 0);"
|
||||
>
|
||||
<svg
|
||||
height="32"
|
||||
width="32"
|
||||
x="0"
|
||||
y="0"
|
||||
>
|
||||
<rect
|
||||
fill="#18CDF2"
|
||||
height="32"
|
||||
transform="translate(-1.04839350379394 -3.3042840694604987) rotate(328.9 16 16)"
|
||||
width="32"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
<rect
|
||||
fill="#035E56"
|
||||
height="32"
|
||||
transform="translate(-18.298461708832043 10.5924618717486) rotate(176.2 16 16)"
|
||||
width="32"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
<rect
|
||||
fill="#F26602"
|
||||
height="32"
|
||||
transform="translate(16.667842018223922 -14.205139722997082) rotate(468.9 16 16)"
|
||||
width="32"
|
||||
x="0"
|
||||
y="0"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="account-menu__icon__notification-count"
|
||||
>
|
||||
1
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
@ -1,195 +0,0 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import classnames from 'classnames';
|
||||
import Identicon from '../../ui/identicon';
|
||||
import MetaFoxLogo from '../../ui/metafox-logo';
|
||||
import { DEFAULT_ROUTE } from '../../../helpers/constants/routes';
|
||||
import {
|
||||
MetaMetricsEventCategory,
|
||||
MetaMetricsEventName,
|
||||
} from '../../../../shared/constants/metametrics';
|
||||
import NetworkDisplay from '../network-display';
|
||||
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-beta)
|
||||
import BetaHeader from '../beta-header';
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
|
||||
export default class AppHeader extends PureComponent {
|
||||
static propTypes = {
|
||||
history: PropTypes.object,
|
||||
networkDropdownOpen: PropTypes.bool,
|
||||
showNetworkDropdown: PropTypes.func,
|
||||
hideNetworkDropdown: PropTypes.func,
|
||||
toggleAccountMenu: PropTypes.func,
|
||||
selectedAddress: PropTypes.string,
|
||||
isUnlocked: PropTypes.bool,
|
||||
hideNetworkIndicator: PropTypes.bool,
|
||||
disabled: PropTypes.bool,
|
||||
disableNetworkIndicator: PropTypes.bool,
|
||||
isAccountMenuOpen: PropTypes.bool,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
unreadNotificationsCount: PropTypes.number,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
desktopEnabled: PropTypes.bool,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-beta)
|
||||
showBetaHeader: PropTypes.bool,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
onClick: PropTypes.func,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
custodianIcon: PropTypes.string,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
};
|
||||
|
||||
static contextTypes = {
|
||||
t: PropTypes.func,
|
||||
trackEvent: PropTypes.func,
|
||||
};
|
||||
|
||||
handleNetworkIndicatorClick(event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
const {
|
||||
networkDropdownOpen,
|
||||
showNetworkDropdown,
|
||||
hideNetworkDropdown,
|
||||
disabled,
|
||||
disableNetworkIndicator,
|
||||
} = this.props;
|
||||
|
||||
if (disabled || disableNetworkIndicator) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (networkDropdownOpen === false) {
|
||||
this.context.trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.NavNetworkMenuOpened,
|
||||
properties: {},
|
||||
});
|
||||
showNetworkDropdown();
|
||||
} else {
|
||||
hideNetworkDropdown();
|
||||
}
|
||||
}
|
||||
|
||||
renderAccountMenu() {
|
||||
const {
|
||||
isUnlocked,
|
||||
toggleAccountMenu,
|
||||
selectedAddress,
|
||||
disabled,
|
||||
isAccountMenuOpen,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
unreadNotificationsCount,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
isUnlocked && (
|
||||
<button
|
||||
data-testid="account-menu-icon"
|
||||
className={classnames('account-menu__icon', {
|
||||
'account-menu__icon--disabled': disabled,
|
||||
})}
|
||||
disabled={Boolean(disabled)}
|
||||
onClick={() => {
|
||||
if (!disabled) {
|
||||
!isAccountMenuOpen &&
|
||||
this.context.trackEvent({
|
||||
category: MetaMetricsEventCategory.Navigation,
|
||||
event: MetaMetricsEventName.NavMainMenuOpened,
|
||||
properties: {},
|
||||
});
|
||||
toggleAccountMenu();
|
||||
}
|
||||
}}
|
||||
>
|
||||
<Identicon address={selectedAddress} diameter={32} addBorder />
|
||||
{
|
||||
///: BEGIN:ONLY_INCLUDE_IN(snaps)
|
||||
unreadNotificationsCount > 0 && (
|
||||
<div className="account-menu__icon__notification-count">
|
||||
{unreadNotificationsCount}
|
||||
</div>
|
||||
)
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
}
|
||||
</button>
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
const {
|
||||
history,
|
||||
hideNetworkIndicator,
|
||||
disableNetworkIndicator,
|
||||
disabled,
|
||||
onClick,
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-beta)
|
||||
showBetaHeader,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
desktopEnabled,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
custodianIcon,
|
||||
isUnlocked,
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<>
|
||||
{
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-beta)
|
||||
showBetaHeader ? <BetaHeader /> : null
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
}
|
||||
|
||||
<div className="app-header">
|
||||
<div className="app-header__contents">
|
||||
<MetaFoxLogo
|
||||
unsetIconHeight
|
||||
onClick={async () => {
|
||||
if (onClick) {
|
||||
await onClick();
|
||||
}
|
||||
history.push(DEFAULT_ROUTE);
|
||||
}}
|
||||
///: BEGIN:ONLY_INCLUDE_IN(build-mmi)
|
||||
custodyImgSrc={custodianIcon}
|
||||
isUnlocked={isUnlocked}
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
/>
|
||||
{
|
||||
///: BEGIN:ONLY_INCLUDE_IN(desktop)
|
||||
desktopEnabled && process.env.METAMASK_DEBUG && (
|
||||
<div data-testid="app-header-desktop-dev-logo">
|
||||
<MetaFoxLogo
|
||||
unsetIconHeight
|
||||
src="./images/logo/desktop.svg"
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
///: END:ONLY_INCLUDE_IN
|
||||
}
|
||||
<div className="app-header__account-menu-container">
|
||||
{!hideNetworkIndicator && (
|
||||
<div className="app-header__network-component-wrapper">
|
||||
<NetworkDisplay
|
||||
onClick={(event) => this.handleNetworkIndicatorClick(event)}
|
||||
disabled={disabled || disableNetworkIndicator}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{this.renderAccountMenu()}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user