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

Merge remote-tracking branch 'origin/develop' into master-sync

This commit is contained in:
ryanml 2022-06-23 12:28:06 -07:00
commit 50e7fe9386
119 changed files with 5499 additions and 1325 deletions

View File

@ -20,8 +20,11 @@ To learn how to contribute to the MetaMask project itself, visit our [Internal D
- Install dependencies: `yarn setup` (not the usual install command)
- Copy the `.metamaskrc.dist` file to `.metamaskrc`
- Replace the `INFURA_PROJECT_ID` value with your own personal [Infura Project ID](https://infura.io/docs).
- If debugging MetaMetrics, you'll need to add a value for `SEGMENT_WRITE_KEY` [Segment write key](https://segment.com/docs/connections/find-writekey/), see [Developing on MetaMask](./development/README.md).
- If debugging MetaMetrics, you'll need to add a value for `SEGMENT_WRITE_KEY` [Segment write key](https://segment.com/docs/connections/find-writekey/), see [Developing on MetaMask - Segment](./development/README.md#segment).
- If debugging unhandled exceptions, you'll need to add a value for `SENTRY_DSN` [Sentry Dsn](https://docs.sentry.io/product/sentry-basics/dsn-explainer/), see [Developing on MetaMask - Sentry](./development/README.md#sentry).
- Optionally, replace the `PASSWORD` value with your development wallet password to avoid entering it each time you open the app.
- Build the project to the `./dist/` folder with `yarn dist`.
- Optionally, you may run `yarn start` to run dev mode.
Uncompressed builds can be found in `/dist`, compressed builds can be found in `/builds` once they're built.

View File

@ -62,6 +62,13 @@
"message": "$1 kann auf dieses Asset zugreifen und es ausgeben",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Greifen Sie mit Ihrer geheimen Wiederherstellungsphrase auf Ihr Wallet zu"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask kann Ihr Passwort nicht wiederherstellen. Wir verwenden Ihre geheime Wiederherstellungsphrase, um Ihr Eigentum zu bestätigen, Ihr Wallet wiederherzustellen und ein neues Passwort festzulegen. Geben Sie zunächst die geheime Wiederherstellungsphrase ein, die Sie erhalten haben, als Sie Ihr Wallet erstellt haben. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Zugriff auf Ihre Kamera …"
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Netzwerk hinzufügen"
},
"addNetworkTooltipWarning": {
"message": "Diese Netzwerkverbindung ist von Dritten abhängig. Diese Verbindung könnte unzuverlässiger sein oder Dritten erlauben, Ihre Aktivitäten zu verfolgen. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Vorgeschlagene Token hinzufügen"
},
@ -400,6 +411,14 @@
"message": "$1 kaufen",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "1 $ mit Coinbase Pay kaufen",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Sie können mit Ihrem Coinbase-Konto bequem Kryptowährungen kaufen oder überweisen.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "$1 mit MoonPay kaufen",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Für eine Transaktion im Wert von $1 muss die Gasgebühr um mindestens 10 % erhöht werden, damit sie vom Netz erkannt wird.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Swap abbrechen"
},
"cancellationGasFee": {
"message": "Stornierungs-Gasgebühr"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Weiter"
},
"continueToCoinbasePay": {
"message": "Weiter zu Coinbase Pay"
},
"continueToMoonPay": {
"message": "Weiter zu MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Alle Flask-APIs sind experimentell. Sie können ohne Vorankündigung geändert oder entfernt werden oder sie können auf unbestimmte Zeit in Flask bleiben, ohne jemals in die stabile MetaMask migriert zu werden. Die Verwendung erfolgt auf eigene Gefahr.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Stellen Sie sicher, dass Sie Ihre normale MetaMask-Erweiterung deaktivieren, wenn Sie Flask verwenden.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Ich akzeptiere die Risiken",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Ausblenden"
},
"hideFullTransactionDetails": {
"message": "Vollständige Transaktionsdetails ausblenden"
},
"hideSeedPhrase": {
"message": "Seed-Phrase ausblenden"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Verlauf"
},
"ignoreAll": {
"message": "Alle ignorieren"
},
"ignoreTokenWarning": {
"message": "Wenn Sie Token ignorieren, werden Sie nicht in Ihrem Wallet angezeigt. Sie können sie jedoch weiterhin hinzufügen, indem Sie nach ihnen suchen."
},
"import": {
"message": "Importieren",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Wallet importieren"
},
"importWithCount": {
"message": "$1 importieren",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Ihre bestehende Wallet mit einer Geheime Wiederherstellungsphrase importieren"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "Richtungspfeil"
},
"lightTheme": {
"message": "Leicht"
},
"likeToImportTokens": {
"message": "Möchtest du diese Token hinzufügen?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Neu bei MetaMask?"
},
"newTokensImportedMessage": {
"message": "Sie haben $1 erfolgreich importiert.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Token importiert"
},
"newTotal": {
"message": "Neue Summe"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Wir machen Transaktionen leichter lesbar."
},
"notificationsEmptyText": {
"message": "Hier gibt es nichts zu sehen."
},
"notificationsHeader": {
"message": "Benachrichtigungen"
},
"notificationsInfos": {
"message": "$1 von $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Alle als gelesen markieren"
},
"numberOfNewTokensDetected": {
"message": "$1 neue Tokens in diesem Konto gefunden\n",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Ursprung"
},
"osTheme": {
"message": "System"
},
"padlock": {
"message": "Schloss"
},
"parameters": {
"message": "Parameter"
},
@ -2371,6 +2439,10 @@
"message": "Siehe Adresse, Kontostand, Aktivität und Einleitung von Transaktionen",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Für unbestimmte Zeit ausführen.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Verwalten Sie Ihre „$1“-Konten und Vermögenswerte.",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 mehr",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Beliebte benutzerdefinierte Netzwerke"
},
"preferredLedgerConnectionType": {
"message": "Bevorzugter Ledger-Verbindungstyp",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Vergewissern Sie sich, dass Sie die richtige geheime Wiederherstellungsphrase verwenden, bevor Sie fortfahren. Sie können dies nicht mehr rückgängig machen."
},
"restartMetamask": {
"message": "MetaMask neu starten"
},
"restore": {
"message": "Wiederherstellen"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Betrag senden"
},
"sendBugReport": {
"message": "Übermitteln Sie uns einen Fehlerbericht."
},
"sendSpecifiedTokens": {
"message": "$1 senden",
"description": "Symbol of the specified token"
@ -2998,7 +3079,7 @@
"message": "Status"
},
"statusConnected": {
"message": "Verbinden"
"message": "Verbunden"
},
"statusNotConnected": {
"message": "Nicht verbunden"
@ -3031,6 +3112,9 @@
"message": "Verbinden Sie Ihre Wallet direkt mit Ihrem Computer. Entsperren Sie Ihren Ledger und öffnen Sie die Ethereum-App. Für weitere Informationen zur Verwendung Ihres Hardware-Wallet-Geräts, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Erhalten Sie diese Meldung immer noch?"
},
"storePhrase": {
"message": "Speichern Sie diesen Schlüssel in einem Passwortmanager wie 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Sie können Ihre Token immer noch tauschen, selbst während intelligente Transaktionen nicht verfügbar sind."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Ihr Swap wird privat eingereicht ..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Ihr Swap wird öffentlich eingereicht ..."
},
"stxSubDescription": {
"message": "* Intelligente Transaktionen versuchen mehrmals, Ihre Transaktion privat zu übermitteln. Wenn alle Versuche fehlschlagen, wird die Transaktion öffentlich übertragen, um sicherzustellen, dass Ihr Swap erfolgreich durchgeführt wird."
},
@ -3093,6 +3183,10 @@
"message": "Ihr $1 ist jetzt verfügbar.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Swap abgeschlossen in <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Simulieren Sie Transaktionen vor der Übermittlung, um die Transaktionskosten zu senken und Ausfälle zu vermeiden."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Slippage muss größer oder gleich Null sein"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Liquiditätsquelle"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Tokensymbol"
},
"tokensFoundTitle": {
"message": "$1 neue Token gefunden",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Ich verstehe"
},
@ -3706,6 +3808,9 @@
"message": "Wir hatten Probleme mit der Verbindung zu Ihrem $1, versuchen Sie, $2 zu überprüfen und versuchen es erneut.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Passwort eingeben"
},
"typeYourSRP": {
"message": "Geben Sie Ihre geheime Wiederherstellungsphrase ein"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Wallet-Erstellung erfolgreich"
},
"warning": {
"message": "Warnung"
},
"weak": {
"message": "Schwach"
},

View File

@ -62,6 +62,13 @@
"message": "Το $1 ίσως αποκτήσει πρόσβαση και δαπανήσει αυτό το περιουσιακό στοιχείο",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Αποκτήστε πρόσβαση στο πορτοφόλι σας με τη Μυστική σας Φράση Ανάκτησης"
},
"accessYourWalletWithSRPDescription": {
"message": "Το MetaMask δεν μπορεί να ανακτήσει τον κωδικό σας. Θα χρησιμοποιήσουμε τη Μυστική σας Φράση Ανάκτησης για να επιβεβαιώσουμε την κυριότητά σας, να ανακτήσουμε το πορτοφόλι σας και να ορίσουμε ένα νέο κωδικό. Πρώτα, εισάγετε τη Μυστική Φράση σας Ανάκτησης που σας δόθηκε όταν δημιουργήσατε το πορτοφόλι σας. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Πρόσβαση στην κάμερά σας..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Προσθήκη Δικτύου"
},
"addNetworkTooltipWarning": {
"message": "Αυτή η σύνδεση δικτύου βασίζεται σε τρίτους. H σύνδεση ενδέχεται να είναι λιγότερο αξιόπιστη ή να επιτρέπει σε τρίτους να παρακολουθούν τη δραστηριότητα. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Προσθέστε τα Προτεινόμενα Tokens"
},
@ -400,6 +411,14 @@
"message": "Αγορά $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Αγορά $1 με Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Μπορείτε να αγοράσετε ή να μεταφέρετε εύκολα κρυπτονομίσματα με τον λογαριασμό σας στο Coinbase.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Αγορά $1 με MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Για να $1 τη συναλλαγή, τα τέλη συναλλαγής πρέπει να αυξηθούν κατά τουλάχιστον 10% ώστε να αναγνωριστούν από το δίκτυο.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Ακύρωση ανταλλαγής"
},
"cancellationGasFee": {
"message": "Ακύρωση Χρέωσης Αερίου"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Συνέχεια"
},
"continueToCoinbasePay": {
"message": "Συνέχεια στο Coinbase Pay"
},
"continueToMoonPay": {
"message": "Συνέχεια στη MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Όλα τα API του Flask είναι πειραματικά. Μπορεί να αλλάξουν ή να αφαιρεθούν χωρίς προειδοποίηση ή μπορεί να παραμείνουν στο Flask επ' αόριστον, χωρίς ποτέ να μεταφερθούν στο σταθερό MetaMask. Χρησιμοποιήστε τα με δική σας ευθύνη.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Βεβαιωθείτε ότι έχετε απενεργοποιήσει την κανονική σας επέκταση MetaMask όταν χρησιμοποιείτε το Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Αποδέχομαι τον κίνδυνο",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Απόκρυψη"
},
"hideFullTransactionDetails": {
"message": "Απόκρυψη αναλυτικών στοιχείων συναλλαγών"
},
"hideSeedPhrase": {
"message": "Απόκρυψη φράσης ανάκτησης"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Ιστορικό"
},
"ignoreAll": {
"message": "Αγνόηση όλων"
},
"ignoreTokenWarning": {
"message": "Εάν κάνετε απόκρυψη των token, δεν θα εμφανίζονται στο πορτοφόλι σας. Ωστόσο, μπορείτε ακόμα να τα προσθέσετε εάν κάνετε αναζήτηση για αυτά."
},
"import": {
"message": "Εισαγωγή",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Εισαγωγή Πορτοφολιού"
},
"importWithCount": {
"message": "Εισαγωγή $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Εισαγωγή υπάρχοντος πορτοφολιού με Μυστική Φράση Ανάκτησης"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "βέλος αλλαγής επιπέδου"
},
"lightTheme": {
"message": "Ανοιχτόχρωμο"
},
"likeToImportTokens": {
"message": "Θέλετε να προσθέσετε αυτά τα token;"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Καινούριος στο MetaMask;"
},
"newTokensImportedMessage": {
"message": "Εισάγατε επιτυχώς το $1.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Τα token εισήχθησαν"
},
"newTotal": {
"message": "Νέο Σύνολο"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Κάνουμε τις συναλλαγές ευκολότερες στο διάβασμα."
},
"notificationsEmptyText": {
"message": "Δεν υπάρχει κάτι να δείτε εδώ."
},
"notificationsHeader": {
"message": "Ειδοποιήσεις"
},
"notificationsInfos": {
"message": "$1 από $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Επισήμανση όλων ως αναγνωσμένων"
},
"numberOfNewTokensDetected": {
"message": "$1 νέα token βρέθηκαν σε αυτόν τον λογαριασμό",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Προέλευση"
},
"osTheme": {
"message": "Σύστημα"
},
"padlock": {
"message": "Padlock"
},
"parameters": {
"message": "Παράμετροι"
},
@ -2371,6 +2439,10 @@
"message": "Βλέπε διεύθυνση, υπόλοιπο λογαριασμού, δραστηριότητα και έναρξη συναλλαγών",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Εκτέλεση επ' αόριστον.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Ελέγξτε τους λογαριασμούς και τα περιουσιακά σας στοιχεία σας στο \"$1\".",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 ακόμη",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Δημοφιλή προσαρμοσμένα δίκτυα"
},
"preferredLedgerConnectionType": {
"message": "Προτιμώμενος Τύπος Σύνδεσης Ledger",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή Μυστική Φράση Ανάκτησης πριν συνεχίσετε. Αυτή η ενέργεια είναι μη αναστρέψιμη."
},
"restartMetamask": {
"message": "Επανεκκίνηση MetaMask"
},
"restore": {
"message": "Επαναφορά"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Αποστολή Ποσού"
},
"sendBugReport": {
"message": "Στείλτε μας μια αναφορά σφάλματος."
},
"sendSpecifiedTokens": {
"message": "Αποστολή $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Συνδέστε το πορτοφόλι σας απευθείας στον υπολογιστή σας. Ξεκλειδώστε το Ledger και ανοίξτε την εφαρμογή Ethereum. Για περισσότερες πληροφορίες σχετικά με τη χρήση της συσκευής πορτοφολιού σας, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Λαμβάνετε ακόμα αυτό το μήνυμα;"
},
"storePhrase": {
"message": "Αποθηκεύστε αυτήν τη φράση σε έναν διαχειριστή κωδικών πρόσβασης όπως το 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Μπορείτε να ανταλλάξετε ακόμα τα token σας, ακόμα και αν οι Έξυπνες Συναλλαγές δεν είναι διαθέσιμες."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Ιδιωτική υποβολή της Ανταλλαγής σας..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Δημόσια υποβολή της Ανταλλαγής σας..."
},
"stxSubDescription": {
"message": "* Οι Έξυπνες Συναλλαγές θα προσπαθήσουν να υποβάλουν τη συναλλαγή σας ιδιωτικά, πολλές φορές. Εάν όλες οι προσπάθειες αποτύχουν, η συναλλαγή θα μεταδοθεί δημόσια για να διασφαλιστεί η επιτυχής πραγματοποίηση της ανταλλαγής σας."
},
@ -3093,6 +3183,10 @@
"message": "Τα $1 σας είναι πλέον διαθέσιμα.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Η Ανταλλαγή θα ολοκληρωθεί σε <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Προσομοίωση συναλλαγών πριν από την υποβολή για μείωση του κόστους συναλλαγής και των αποτυχιών."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Η ολίσθηση πρέπει να είναι μεγαλύτερη ή ίση με το μηδέν"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Πηγή ρευστότητας"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Σύμβολο Token"
},
"tokensFoundTitle": {
"message": "Βρέθηκαν $1 νέα tokens",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Καταλαβαίνω"
},
@ -3706,6 +3808,9 @@
"message": "Είχαμε πρόβλημα να συνδεθούμε με το $1 σας, δοκιμάστε να ξαναδείτε το $2 και προσπαθήστε ξανά.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"troubleStarting": {
"message": "Το MetaMask αντιμετώπισε πρόβλημα κατά την εκκίνηση. Αυτό το σφάλμα μπορεί να είναι τυχαίο, γι' αυτό προσπαθήστε να επανεκκινήσετε την επέκταση."
},
"troubleTokenBalances": {
"message": "Είχαμε πρόβλημα να φορτώσουμε τα υπόλοιπα του διακριτικού σας. Μπορείτε να τα δείτε ",
"description": "Followed by a link (here) to view token balances"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Πληκτρολογήστε τον κωδικό πρόσβασής σας MetaMask"
},
"typeYourSRP": {
"message": "Πληκτρολογήστε τη Μυστική σας Φράση Ανάκτησης"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Επιτυχής δημιουργία πορτοφολιού"
},
"warning": {
"message": "Προειδοποίηση"
},
"weak": {
"message": "Αδύναμος"
},

View File

@ -466,8 +466,12 @@
"message": "To $1 a transaction the gas fee must be increased by at least 10% for it to be recognized by the network.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Cancel swap"
"cancelSwapForFee": {
"message": "Cancel swap for ~$1",
"description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction"
},
"cancelSwapForFree": {
"message": "Cancel swap for free"
},
"cancellationGasFee": {
"message": "Cancellation Gas Fee"

View File

@ -62,6 +62,13 @@
"message": "$1 puede acceder y gastar este activo",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Acceda a su billetera con la frase secreta de respaldo"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask no puede recuperar su contraseña. Usaremos su frase secreta de respaldo para validar su propiedad, restaurar su billetera y configurar una nueva contraseña. Primero, ingrese la frase secreta de respaldo que recibió cuando creó su billetera. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Accediendo a la cámara…"
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Agregar red"
},
"addNetworkTooltipWarning": {
"message": "Esta conexión de red depende de terceros. Y puede ser menos confiable o permite que terceros rastreen la actividad. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Agregar tokens sugeridos"
},
@ -400,6 +411,14 @@
"message": "Comprar $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Comprar $1 con Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Puede comprar o transferir criptomonedas fácilmente por medio de su cuenta de Coinbase.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Comprar $1 con MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Para $1 una transacción, la tarifa de gas debe aumentar al menos un 10% para que sea reconocida por la red.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Cancelar swap"
},
"cancellationGasFee": {
"message": "Cuota de gas por cancelación"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Continuar"
},
"continueToCoinbasePay": {
"message": "Continuar a Coinbase Pay"
},
"continueToMoonPay": {
"message": "Continuar a MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Todas las API de Flask son experimentales. Se pueden cambiar o eliminadar sin previo aviso o pueden permanecer en Flask indefinidamente sin ser migradas a MetaMask estable. Úselas bajo su propia responsabilidad.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Asegúrese de deshabilitar su extensión recurrente de MetaMask cuando use Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Acepto los riesgos",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Ocultar"
},
"hideFullTransactionDetails": {
"message": "Esconder los detalles completos de la transacción"
},
"hideSeedPhrase": {
"message": "Ocultar frase inicial"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Historial"
},
"ignoreAll": {
"message": "Ignorar todo"
},
"ignoreTokenWarning": {
"message": "Si oculta tokens, estos no se mostrarán en su billetera. Sin embargo, aún puede agregarlos buscándolos."
},
"import": {
"message": "Importar",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Importar cartera"
},
"importWithCount": {
"message": "Importar $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Importar la cartera existente con una frase secreta de recuperación"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "flecha de nivel"
},
"lightTheme": {
"message": "Claro"
},
"likeToImportTokens": {
"message": "¿Le gustaría agregar estos tokens?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "¿Es nuevo en MetaMask?"
},
"newTokensImportedMessage": {
"message": "Ha importado $1 exitosamente.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Token importado"
},
"newTotal": {
"message": "Total nuevo"
},
@ -2083,6 +2129,9 @@
"notEnoughGas": {
"message": "No hay gas suficiente"
},
"notifications": {
"message": "Notificaciones"
},
"notifications10ActionText": {
"message": "Vaya 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."
@ -2109,7 +2158,7 @@
"message": "Habilitar modo oscuro"
},
"notifications12Description": {
"message": "Se habilitará el modo oscuro para los nuevos usuarios según las preferencias de su sistema. Para usuarios existentes, habilite el modo oscuro de forma manual en Configuración -> Experimental."
"message": "¡El modo oscuro en Extension finalmente está aquí! Para encenderlo, vaya a Configuración -> Experimental y seleccione una de las opciones de visualización: Claro, Oscuro, Sistema."
},
"notifications12Title": {
"message": "¿Cuándo estará disponible el modo oscuro? ¡Ahora! 🕶️🦊"
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Estamos facilitando la lectura de las transacciones."
},
"notificationsEmptyText": {
"message": "Nada que ver aquí."
},
"notificationsHeader": {
"message": "Notificaciones"
},
"notificationsInfos": {
"message": "$1 de $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Marcar todo como leído"
},
"numberOfNewTokensDetected": {
"message": "Se encontraron tokens nuevos de $1 en esta cuenta",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Origen"
},
"osTheme": {
"message": "Sistema"
},
"padlock": {
"message": "Candado"
},
"parameters": {
"message": "Parámetros"
},
@ -2371,6 +2439,10 @@
"message": "Ver las direcciones de las cuentas permitidas (requerido)",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Ejecutar indefinidamente.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Controle sus cuentas y activos \"$1\".",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 más",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Redes populares personalizadas"
},
"preferredLedgerConnectionType": {
"message": "Tipo de conexión de Ledger preferida",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Asegúrese de usar la frase de recuperación secreta correcta antes de continuar. No podrá deshacer esto."
},
"restartMetamask": {
"message": "Reiniciar MetaMask"
},
"restore": {
"message": "Restaurar"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Enviar monto"
},
"sendBugReport": {
"message": "Envíenos un informe de error."
},
"sendSpecifiedTokens": {
"message": "Enviar $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Conecte la cartera directamente al equipo. Desbloquee su Ledger y abra la aplicación de Ethereum. Para más información sobre el uso de su dispositivo de cartera de hardware, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "¿Sigue recibiendo este mensaje?"
},
"storePhrase": {
"message": "Guarde esta frase en un administrador de contraseñas como 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Todavía puede intercambiar sus tokens incluso cuando las transacciones inteligentes no están disponibles."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Enviando su swap de forma privada..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Enviando su swap de forma pública..."
},
"stxSubDescription": {
"message": "* Transacciones inteligentes intentará enviar su transacción de forma privada varias veces. Si todos los intentos fallan, la transacción se transmitirá públicamente para garantizar que su swap se realice con éxito."
},
@ -3093,6 +3183,10 @@
"message": "Su $1 ya está disponible.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "El swap finalizará en <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Simule transacciones antes de enviarlas para disminuir los costos de transacción y reducir las fallas."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "El desfase debe ser mayor o igual que cero"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Fuente de liquidez"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Símbolo del token"
},
"tokensFoundTitle": {
"message": "$1 nuevos tokens encontrados",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Comprendo"
},
@ -3706,6 +3808,9 @@
"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"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Escriba su contraseña de MetaMask"
},
"typeYourSRP": {
"message": "Escriba la frase secreta de respaldo"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Creación exitosa de la cartera"
},
"warning": {
"message": "Advertencia"
},
"weak": {
"message": "Débil"
},

View File

@ -62,6 +62,13 @@
"message": "$1 peut accéder à cet actif et le dépenser",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Accédez à votre portefeuille en utilisant votre phrase secrète de récupération"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask ne peut pas récupérer votre mot de passe. Nous utiliserons votre phrase secrète de récupération pour vérifier votre identité, restaurer votre portefeuille et définir un nouveau mot de passe. Veuillez tout dabord saisir la phrase secrète de récupération qui vous a été fournie lorsque vous avez créé votre portefeuille. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Accès à votre appareil photo..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Ajouter un réseau"
},
"addNetworkTooltipWarning": {
"message": "Cette connexion réseau repose sur des tiers. Elle peut être moins fiable ou permettre à des tiers de suivre lactivité des utilisateurs. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Ajouter les jetons suggérés"
},
@ -400,6 +411,14 @@
"message": "Acheter $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Achetez des $1 avec Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Vous pouvez facilement acheter et transférer des cryptomonnaies en utilisant votre compte Coinbase.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Acheter $1 avec MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Pour $1 la transaction, les gas fees doivent être augmentés dau moins 10 % pour être reconnus par le réseau.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Annuler le swap"
},
"cancellationGasFee": {
"message": "Frais dannulation de carburant"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Continuer"
},
"continueToCoinbasePay": {
"message": "Accéder à Coinbase Pay"
},
"continueToMoonPay": {
"message": "Continuer vers MoonPay"
},
@ -860,7 +879,7 @@
"message": "Téléchargez cette phrase de sauvegarde secrète et conservez-la en lieu sûr sur un disque dur ou un support de stockage externe chiffré."
},
"downloadStateLogs": {
"message": "Télécharger les Logs d'état"
"message": "Télécharger les Logs détat"
},
"dropped": {
"message": "Déconnecté"
@ -1225,6 +1244,10 @@
"message": "Toutes les API de Flask sont expérimentales. Elles peuvent être modifiées ou supprimées sans préavis. Elles peuvent aussi rester sur Flask indéfiniment sans jamais être migrées vers le MetaMask stable. Utilisez-les à vos risques et périls.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Assurez-vous de désactiver lextension MetaMask que vous utilisez habituellement lorsque vous utilisez Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Jaccepte les risques",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1280,7 +1303,7 @@
"message": "La limite de carburant est la quantité maximale dunités dessence que vous consentez à dépenser."
},
"gasLimitRecommended": {
"message": "La limite recommandée de gas est de $1. Si la limite de gas est inférieure à cette valeur, l'opération peut échouer."
"message": "La limite recommandée de gas est de $1. Si la limite de gas est inférieure à cette valeur, lopération peut échouer."
},
"gasLimitTooLow": {
"message": "La limite de carburant doit être dau moins 21000"
@ -1376,7 +1399,7 @@
"message": "Réseau de test Goerli"
},
"gotIt": {
"message": "J'ai compris !"
"message": "Jai compris !"
},
"grantedToWithColon": {
"message": "Accordé à :"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Masquer"
},
"hideFullTransactionDetails": {
"message": "Masquer tous les détails de la transaction"
},
"hideSeedPhrase": {
"message": "Masquer la phrase mnémonique"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Historique"
},
"ignoreAll": {
"message": "Ignorer tout"
},
"ignoreTokenWarning": {
"message": "Si vous masquez des jetons, ils napparaîtront pas dans votre portefeuille. Cependant, vous pouvez toujours les ajouter en les recherchant."
},
"import": {
"message": "Importer",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Importer le portefeuille"
},
"importWithCount": {
"message": "Importer $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Importez votre portefeuille existant à laide dune phrase secrète de récupération"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "flèche de niveau"
},
"lightTheme": {
"message": "Clair"
},
"likeToImportTokens": {
"message": "Souhaitez-vous ajouter ces jetons ?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Nouveau sur MetaMask ?"
},
"newTokensImportedMessage": {
"message": "Vous avez importé avec succès $1.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Jeton importé"
},
"newTotal": {
"message": "Nouveau total"
},
@ -2083,6 +2129,9 @@
"notEnoughGas": {
"message": "Pas assez de carburant"
},
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Nous simplifions la lisibilité des transactions."
},
"notificationsEmptyText": {
"message": "Rien à voir ici."
},
"notificationsHeader": {
"message": "Notifications"
},
"notificationsInfos": {
"message": "Le $1 de $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Marquer tout comme lu"
},
"numberOfNewTokensDetected": {
"message": "$1 nouveaux jetons trouvés dans ce compte",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Origine"
},
"osTheme": {
"message": "Système"
},
"padlock": {
"message": "Cadenas"
},
"parameters": {
"message": "Paramètres"
},
@ -2371,6 +2439,10 @@
"message": "Consultez ladresse, le solde du compte et lactivité, et lancez des transactions",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Fonctionner indéfiniment.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Contrôlez vos comptes et actifs « $1 ».",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 de plus",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Réseaux personnalisés populaires"
},
"preferredLedgerConnectionType": {
"message": "Type de connexion Ledger préféré",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Vérifiez que vous avez saisi correctement la phrase de récupération secrète avant de continuer. Vous ne pourrez pas annuler cette action."
},
"restartMetamask": {
"message": "Redémarrer MetaMask"
},
"restore": {
"message": "Restaurer"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Envoyer le montant"
},
"sendBugReport": {
"message": "Envoyez-nous un rapport de bogue."
},
"sendSpecifiedTokens": {
"message": "Envoyer $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Connectez votre portefeuille directement à votre ordinateur. Déverrouillez votre Ledger et ouvrez lapplication Ethereum. Pour en savoir plus sur lutilisation de votre portefeuille matériel, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Vous recevez toujours ce message ?"
},
"storePhrase": {
"message": "Stockez cette phrase dans un gestionnaire de mots de passe comme 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Vous pouvez toujours faire un swap de tokens, même si les transactions intelligentes ne sont pas disponibles."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Soumission privée de votre Swap..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Soumission publique de votre Swap..."
},
"stxSubDescription": {
"message": "* Avec les transactions intelligentes, votre transaction sera soumise plusieurs fois en privé. Si toutes les tentatives échouent, la transaction sera diffusée publiquement pour sassurer de la réussite de votre swap."
},
@ -3093,6 +3183,10 @@
"message": "Votre $1 est maintenant disponible.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Le Swap sera effectué dans <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Simulez les transactions avant de les soumettre pour réduire les coûts et les échecs de transaction."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Le glissement doit être supérieur ou égal à zéro"
},
"swapSlippagePercent": {
"message": "$1 %",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Source de liquidité"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Symbole du jeton"
},
"tokensFoundTitle": {
"message": "$1 nouveaux jetons trouvés",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Je comprends"
},
@ -3706,6 +3808,9 @@
"message": "Nous avons eu des difficultés à nous connecter à votre $1. Essayez de vérifier votre $2 et réessayez.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Entrez votre mot de passe"
},
"typeYourSRP": {
"message": "Saisissez votre phrase secrète de récupération"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Portefeuille créé avec succès"
},
"warning": {
"message": "Avertissement"
},
"weak": {
"message": "Faible"
},

View File

@ -62,6 +62,13 @@
"message": "$1 एक्सेस कर सकता है और इस एसेट को खर्च कर सकता है",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "अपने गुप्त रिकवरी वाक्यांश का इस्तेमाल कर अपने वॉलेट तक पहुंच प्राप्त करें"
},
"accessYourWalletWithSRPDescription": {
"message": "मेटामास्क आपका पासवर्ड रिकवर नहीं कर सकता। हम आपके स्वामित्व को मान्य करने, आपके वॉलेट को रीस्टोर करने और एक नया पासवर्ड सेट करने के लिए आपके गुप्त रिकवरी वाक्यांश का उपयोग करेंगे। सबसे पहले, अपना वह गुप्त रिकवरी वाक्यांश दर्ज करें जिसे आपको अपना बटुआ बनाते समय दिया गया था। $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "आपके कैमरे तक पहुँच रहा है..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "नेटवर्क जोड़ें"
},
"addNetworkTooltipWarning": {
"message": "यह नेटवर्क कनेक्शन तृतीय पक्षों पर निर्भर करता है। यह कनेक्शन संभवतः कम विश्वसनीय है या तृतीय-पक्षों को एक्टिविटी को ट्रैक करने में सक्षम कर सकता है। $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "सुझाए गए टोकन जोड़ें"
},
@ -400,6 +411,14 @@
"message": "$1 खरीदें",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "कॉइनबेस पे से $1 खरीदें",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "अपने कॉइनबेस अकाउंट के साथ आप क्रिप्टो को आसानी से खरीद या ट्रांसफर कर सकते हैं।",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "MoonPay से $1 खरीदें",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "किसी लेनदेन को $1 करने के लिए गैस शुल्क में कम से कम 10% की वृद्धि की जानी चाहिए ताकि उसे नेटवर्क द्वारा मान्यता मिल सके।",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "स्वैप रद्द करें"
},
"cancellationGasFee": {
"message": "रद्दीकरण गैस शुल्क"
},
@ -606,6 +622,9 @@
"continue": {
"message": "जारी रखें"
},
"continueToCoinbasePay": {
"message": "कॉइनबेस-पे पर जारी रहें"
},
"continueToMoonPay": {
"message": "MoonPay के लिए जारी रखें"
},
@ -1225,6 +1244,10 @@
"message": "सभी Flask के API प्रयोगात्मक हैं। उन्हें बिना किसी सूचना के बदला या हटाया जा सकता है, या वो स्थायी MetaMask में माइग्रेट किए बिना अनिश्चित काल तक Flask पर रह सकते हैं। अपने जोखिम पर उनका उपयोग करें।",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Flask का उपयोग करते समय अपने नियमित MetaMask एक्सटेंशन को निष्क्रिय करना अवश्य सुनिश्चित करें।",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "जोख़िमों को मैं स्वीकर करता हूं।",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "छिपाएं"
},
"hideFullTransactionDetails": {
"message": "लेन-देन की पूर्ण जानकारी छिपा कर रखें"
},
"hideSeedPhrase": {
"message": "सीड फ्रेज़ छुपा दें"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "इतिहास"
},
"ignoreAll": {
"message": "सभी को अनदेखा करें"
},
"ignoreTokenWarning": {
"message": "यदि आप टोकन छिपाते हैं, तो वे आपके वॉलेट में नहीं दिखाए जाएंगे। हालांकि, आप अभी भी उन्हें खोज कर जोड़ सकते हैं।"
},
"import": {
"message": "आयात करें",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "वॉलेट आयात करें"
},
"importWithCount": {
"message": "$1 इम्पोर्ट करें",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "गुप्त रिकवरी फ्रेज का उपयोग करके अपने मौजूदा वॉलेट को आयात करें"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "लेवल ऐरो"
},
"lightTheme": {
"message": "हल्की"
},
"likeToImportTokens": {
"message": "क्या आप इन टोकन को इंपोर्ट करना चाहते हैं?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "MetaMask पर नए हैं?"
},
"newTokensImportedMessage": {
"message": "आपने सफलतापूर्वक $1 इम्पोर्ट कर लिया है।",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "टोकन इम्पोर्ट हो गया"
},
"newTotal": {
"message": "नया कुलयोग"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 हम लेन-देन को पढ़ना आसान बना रहे हैं।"
},
"notificationsEmptyText": {
"message": "यहाँ देखने के लिए कुछ नहीं है।"
},
"notificationsHeader": {
"message": "सूचनाएं"
},
"notificationsInfos": {
"message": "$1 से $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "सभी को पढ़ा हुआ मार्क करें"
},
"numberOfNewTokensDetected": {
"message": "इस खाते में $1 के नए टोकन पाए गए",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "उत्पत्ति"
},
"osTheme": {
"message": "सिस्टम"
},
"padlock": {
"message": "पैडलॉक"
},
"parameters": {
"message": "पैरामीटर"
},
@ -2371,6 +2439,10 @@
"message": "पता, खाते की शेषराशि, गतिविधि देखें और लेन-देन शुरू करें",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "अनिश्चित काल तक चलाएं।",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "आपके \"$1\" अकाउंट्स और एसेट्स नियंत्रित करें।",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 अधिक",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "लोकप्रिय कस्टम नेटवर्क"
},
"preferredLedgerConnectionType": {
"message": "वरीयता वाले लेजर कनेक्शन के प्रकार",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "आगे बढ़ने से पहले ये सुनिश्चित करें कि आप सही सीक्रेट रिकवरी फ़्रेज़ का इस्तेमाल कर रहे हैं। इसे आप अनडू नहीं कर पाएंगे।"
},
"restartMetamask": {
"message": "मेटामास्क को पुनरारंभ करें"
},
"restore": {
"message": "पुनर्स्थापित करें"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "राशि भेजें"
},
"sendBugReport": {
"message": "हमें एक बग रिपोर्ट भेजें।"
},
"sendSpecifiedTokens": {
"message": "$1 भेजें",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "अपने वॉलेट को सीधे अपने कंप्यूटर से कनेक्ट करें। अपने Ledger को अनलॉक करें और Ethereum ऐप खोलें। अपने हार्डवेयर वॉलेट डिवाइस के उपयोग के बारे में अधिक जानकारी के लिए, $1।",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "अभी भी यह संदेश मिल रहा है?"
},
"storePhrase": {
"message": "इस फ्रेज को 1Password जैसे किसी पासवर्ड मैनेजर में संग्रहीत करें।"
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "स्मार्ट लेनदेन अनुपलब्ध होने पर भी आप अपने टोकनों को स्वैप कर सकते हैं।"
},
"stxPendingPrivatelySubmittingSwap": {
"message": "आपका स्वैप निजी रूप से भेजा जा रहा है..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "आपका स्वैप सार्वजनिक रूप से भेजा जा रहा है..."
},
"stxSubDescription": {
"message": "* स्मार्ट लेनदेन आपके लेनदेन को निजी तौर पर, अनेक बार जमा करने का प्रयास करेंगे। यदि सभी प्रयास विफल हो जाते हैं, तो लेनदेन को सार्वजनिक रूप से प्रसारित किया जाएगा ताकि यह सुनिश्चित हो सके कि आपका स्वैप सफलतापूर्वक पूरा हो।"
},
@ -3093,6 +3183,10 @@
"message": "आपका $1 अब उपलब्ध है।",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "स्वैप < में पूरा होगा",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "लेनदेन की लागतें घटाने और विफलताओं को कम करने के लिए सबमिट करने से पहले लेनदेन को सिम्युलेट करें।"
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "स्लिपेज शून्य से अधिक या बराबर होना चाहिए"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "चलनिधि का स्रोत"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "टोकन का प्रतीक"
},
"tokensFoundTitle": {
"message": "$1 नए टोकन मिले",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "मैं समझता हूं"
},
@ -3706,6 +3808,9 @@
"message": "हमें आपके $1 से कनेक्ट करने में परेशानी हुई, $2 की समीक्षा करने का प्रयास करें और दोबारा कोशिश करें।",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"troubleStarting": {
"message": "मेटामास्क को शुरू करने में दिक्कत हुई। यह त्रुटि रुक-रुक कर हो सकती है, इसलिए एक्सटेंशन को पुनरारंभ करने का प्रयास करें।"
},
"troubleTokenBalances": {
"message": "हमें आपके टोकन की शेषराशि लोड करने में परेशानी हुई। आप उन्हें देख सकते हैं ",
"description": "Followed by a link (here) to view token balances"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "अपना MetaMask पासवर्ड टाइप करें"
},
"typeYourSRP": {
"message": "अपना गुप्त रिकवरी वाक्यांश लिखें"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "वॉलेट का निर्माण सफल हुआ"
},
"warning": {
"message": "चेतावनी"
},
"weak": {
"message": "कमज़ोर"
},

View File

@ -62,6 +62,13 @@
"message": "$1 dapat mengakses dan membelanjakan aset ini",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Akses dompet Anda dengan Frasa Pemulihan Rahasia"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask tidak dapat memulihkan kata sandi Anda. Kami akan menggunakan Frasa Pemulihan Rahasia untuk memvalidasi kepemilikan Anda, memulihkan dompet Anda, dan mengatur kata sandi baru. Pertama, masukkan Frasa Pemulihan Rahasia yang diberikan saat membuat dompet. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Mengakses kamera Anda..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Tambahkan Jaringan"
},
"addNetworkTooltipWarning": {
"message": "Koneksi jaringan ini mengandalkan pihak ketiga. Koneksi ini mungkin kurang bisa diandalkan atau memungkinkan pihak ketiga melacak aktivitas. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Tambahkan Token yang Disarankan"
},
@ -400,6 +411,14 @@
"message": "Beli $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Beli $1 melalui Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Anda dapat dengan mudah membeli atau mentransfer kripto dengan akun Coinbase Anda.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Beli $1 melalui MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Untuk $1 suatu transaksi, biaya gas harus dinaikkan minimal 10% agar dapat dikenali oleh jaringan.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Batalkan pertukaran"
},
"cancellationGasFee": {
"message": "Biaya Pembatalan Gas"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Lanjutkan"
},
"continueToCoinbasePay": {
"message": "Lanjutkan ke Coinbase Pay"
},
"continueToMoonPay": {
"message": "Lanjutkan ke MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Semua API Flask bersifat eksperimental. API dapat diubah atau dihapus tanpa pemberitahuan, atau tetap berada di Flask tanpa batas waktu dan tanpa pernah dimigrasikan ke MetaMask yang stabil. Gunakan API dengan risiko Anda sendiri.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Pastikan untuk menonaktifkan ekstensi MetaMask reguler Anda saat menggunakan Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Saya menerima risikonya",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Sembunyikan"
},
"hideFullTransactionDetails": {
"message": "Sembunyikan detail transaksi lengkap"
},
"hideSeedPhrase": {
"message": "Sembunyikan frasa seed"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Riwayat"
},
"ignoreAll": {
"message": "Abaikan semua"
},
"ignoreTokenWarning": {
"message": "Jika Anda menyembunyikan token, token tersebut tidak akan ditampilkan di dompet Anda. Namun, Anda masih dapat menambahkannya dengan mencarinya."
},
"import": {
"message": "Impor",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Impor dompet"
},
"importWithCount": {
"message": "Impor $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Impor dompet Anda yang ada menggunakan Frasa Pemulihan Rahasia"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "panah tingkat"
},
"lightTheme": {
"message": "Terang"
},
"likeToImportTokens": {
"message": "Apakah Anda ingin menambahkan token ini?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Baru menggunakan MetaMask?"
},
"newTokensImportedMessage": {
"message": "Anda berhasil mengimpor $1.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Token diimpor"
},
"newTotal": {
"message": "Total Baru"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": ".👓 Kami membuat transaksi lebih mudah untuk dibaca."
},
"notificationsEmptyText": {
"message": "Tak ada yang bisa dilihat di sini."
},
"notificationsHeader": {
"message": "Notifikasi"
},
"notificationsInfos": {
"message": "$1 dari $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Tandai semua telah dibaca"
},
"numberOfNewTokensDetected": {
"message": "$1 token baru ditemukan di akun ini",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Asal"
},
"osTheme": {
"message": "Sistem"
},
"padlock": {
"message": "Gembok"
},
"parameters": {
"message": "Parameter"
},
@ -2371,6 +2439,10 @@
"message": "Lihat alamat, saldo akun, aktivitas, dan mulai transaksi",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Operasikan sepanjang waktu.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Kontrol akun dan aset \"$1\" Anda.",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 lagi",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Jaringan khusus populer"
},
"preferredLedgerConnectionType": {
"message": "Jenis Koneksi Ledger Pilihan",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Pastikan Anda menggunakan Frasa Pemulihan Rahasia yang benar sebelum melanjutkan. Anda tidak dapat membatalkan tindakan ini."
},
"restartMetamask": {
"message": "Mulai ulang MetaMask"
},
"restore": {
"message": "Pulihkan"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Kirim Jumlah"
},
"sendBugReport": {
"message": "Kirimi kami laporan bug."
},
"sendSpecifiedTokens": {
"message": "Kirim $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Hubungkan dompet Anda langsung ke komputer. Buka Ledger dan buka aplikasi Ethereum. Untuk selengkapnya seputar penggunaan perangkat dompet perangkat keras Anda, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Masih menerima pesan ini?"
},
"storePhrase": {
"message": "Simpan frasa ini dalam pengelola kata sandi seperti 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Anda masih bisa menukar token meskipun Transaksi Pintar tidak tersedia."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Kirimkan Swap Anda secara pribadi..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Kirimkan Swap Anda secara publik..."
},
"stxSubDescription": {
"message": "* Transaksi Pintar akan mencoba mengirimkan transaksi Anda secara pribadi, beberapa kali. Jika semua upaya gagal, transaksi akan disiarkan secara publik untuk memastikan Pertukaran telah berhasil dilakukan."
},
@ -3093,6 +3183,10 @@
"message": "$1 kini telah tersedia.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Swap akan selesai dalam <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Simulasikan transaksi sebelum dikirim untuk mengurangi biaya transaksi dan mengurangi kegagalan."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Slippage harus lebih besar atau sama dengan nol"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Sumber likuiditas"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Simbol Token"
},
"tokensFoundTitle": {
"message": "$1 token baru ditemukan",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Saya paham"
},
@ -3706,6 +3808,9 @@
"message": "Kami mengalami masalah saat mencoba terhubung ke $1 Anda, tinjau kembali $2 dan coba lagi.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Ketikkan kata sandi MetaMask Anda"
},
"typeYourSRP": {
"message": "Ketik Frasa Pemulihan Rahasia"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Dompet berhasil dibuat"
},
"warning": {
"message": "Peringatan"
},
"weak": {
"message": "Lemah"
},

View File

@ -62,6 +62,13 @@
"message": "$1 はこのアセットにアクセスし、使用できます",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "秘密のリカバリーフレーズでウォレットにアクセス"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMaskはユーザーのパスワードを復元できません。代わりに秘密のリカバリーフレーズを使用して所有者を確認し、ウォレットを復元して新しいパスワードを設定します。まずはじめに、ウォレットの作成時に提供された秘密のリカバリーフレーズを入力してください。$1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "カメラにアクセス中..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "ネットワークを追加"
},
"addNetworkTooltipWarning": {
"message": "このネットワーク接続はサードパーティに依存しているため、信頼性が低かったり、サードパーティによるアクティビティの追跡が可能になる可能性があります。$1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "推奨されたトークンを追加"
},
@ -400,6 +411,14 @@
"message": "$1 を購入",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Coinbase Pay で $1 を購入",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Coinbase アカウントで簡単に仮想通貨を購入または送金できます。",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "MoonPay で $1 を購入",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "トランザクションを$1するには、ネットワークに認識されるようにガス代を 10% 以上増額する必要があります。",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "スワップをキャンセル"
},
"cancellationGasFee": {
"message": "キャンセルのガス代"
},
@ -606,6 +622,9 @@
"continue": {
"message": "続行"
},
"continueToCoinbasePay": {
"message": "Coinbase Pay に進む"
},
"continueToMoonPay": {
"message": "MoonPay に進む"
},
@ -1225,6 +1244,10 @@
"message": "Flask API はすべて実験的なものです。これらは通知なしに変更または削除される可能性があり、安定した MetaMask に移行することなく永久に Flask に残る可能性もあります。自己責任でご使用ください。",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Flask の使用中は、通常の MetaMask 拡張機能を無効にしてください。",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "リスクを受け入れる",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "非表示"
},
"hideFullTransactionDetails": {
"message": "完全なトランザクション情報を非表示"
},
"hideSeedPhrase": {
"message": "シードフレーズを非表示"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "履歴"
},
"ignoreAll": {
"message": "すべて無視"
},
"ignoreTokenWarning": {
"message": "トークンを非表示にするとウォレットに表示されなくなりますが、検索して追加することはできます。"
},
"import": {
"message": "インポート",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "ウォレットをインポート"
},
"importWithCount": {
"message": "$1 をインポート",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "シークレットリカバリーフレーズを使用して既存のウォレットをインポート"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "水平矢印"
},
"lightTheme": {
"message": "ライト"
},
"likeToImportTokens": {
"message": "これらのトークンを追加しますか?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "MetaMaskを初めてご利用の場合"
},
"newTokensImportedMessage": {
"message": "$1 をインポートしました。",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "トークンがインポートされました"
},
"newTotal": {
"message": "新しい総額"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 トランザクションが読みやすくなりました。"
},
"notificationsEmptyText": {
"message": "ここに表示する内容はありません。"
},
"notificationsHeader": {
"message": "通知"
},
"notificationsInfos": {
"message": "$2 から $1 ",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "すべて既読にする"
},
"numberOfNewTokensDetected": {
"message": "$1 の新しいトークンがこのアカウントで見つかりました",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "起点"
},
"osTheme": {
"message": "システム"
},
"padlock": {
"message": "南京錠"
},
"parameters": {
"message": "パラメーター"
},
@ -2371,6 +2439,10 @@
"message": "アドレス、アカウント残高、アクティビティを表示してトランザクションを開始",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "無期限で実行。",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "「$1」アカウントとアセットをコントロールします。",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "他 + $1",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "人気のカスタムネットワーク"
},
"preferredLedgerConnectionType": {
"message": "優先Ledger接続タイプ",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "続行する前に、正しい秘密のリカバリーフレーズを使用していることを確認してください。これは元に戻せません。"
},
"restartMetamask": {
"message": "MetaMask を再起動"
},
"restore": {
"message": "復元"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "送金額"
},
"sendBugReport": {
"message": "バグレポートをお送りください。"
},
"sendSpecifiedTokens": {
"message": "$1を送金",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "コンピューターにウォレットを直接接続します。Ledgerのロックを解除し、イーサリアムアプリを開きます。ハードウェアウォレットデバイスの使い方の詳細については、$1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "まだこのメッセージが表示されますか?"
},
"storePhrase": {
"message": "このフレーズを1Passwordのようなパスワードマネージャーに保存します。"
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "スマートトランザクションが利用できなくても、トークンのスワップは可能です。"
},
"stxPendingPrivatelySubmittingSwap": {
"message": "スワップを非公開で送信中..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "スワップを公開で送信中..."
},
"stxSubDescription": {
"message": "* スマートトランザクションは、非公開でトランザクションのの送信を数回試みます。すべての試みが失敗した場合、スワップが成功するようトランザクションが公開されます。"
},
@ -3093,6 +3183,10 @@
"message": "$1 が利用可能になりました。",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "スワップ完了まで残り <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "送信前にトランザクションのシミュレーションを行い、トランザクションのコストと失敗率を減らします。"
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "スリッページは0以上でなければなりません。"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "流動性ソース"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "トークンシンボル"
},
"tokensFoundTitle": {
"message": "$1 種類の新しいトークンが見つかりました",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "理解しました"
},
@ -3706,6 +3808,9 @@
"message": "$1に接続できませんでした。$2を確認してから、もう一度実行してください。",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"troubleStarting": {
"message": "MetaMask がうまく起動しませんでした。このエラーは断続的に発生する可能性があるため、拡張機能を再起動してみてください。"
},
"troubleTokenBalances": {
"message": "トークンバランスのロードに問題があります。トークンバランスを表示できます",
"description": "Followed by a link (here) to view token balances"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "MetaMaskパスワードを入力してください"
},
"typeYourSRP": {
"message": "秘密のリカバリーフレーズを入力してください"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "ウォレットが作成されました"
},
"warning": {
"message": "警告"
},
"weak": {
"message": "弱"
},

View File

@ -62,6 +62,13 @@
"message": "$1(은)는 이 자산에 접근하여 사용할 수 있습니다",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "비밀 복구 구문으로 지갑에 액세스하세요"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask는 사용자의 비밀번호를 복구할 수 없습니다. 사용자의 비밀 복구 구문을 이용하여 사용자의 소유권을 확인한 후, 지갑을 복구하고 새 비밀번호를 설정해 드립니다. 먼저 지갑을 생성할 때 받은 비밀 복구 구문을 입력하세요. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "카메라에 접근 중..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "네트워크 추가"
},
"addNetworkTooltipWarning": {
"message": "이 네트워크 연결은 타사 서비스를 이용합니다. 연결의 보안이 취약하거나 타사에 연결 내용이 노출될 수 있습니다. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "추천 토큰 추가"
},
@ -400,6 +411,14 @@
"message": "$1 구매",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Coinbase Pay로 $1 구매",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Coinbase 계정으로 손쉽게 암호화폐를 구매하거나 전송할 수 있습니다.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "문페이(MoonPay)로 $1 구매",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "거래를 $1하려면 가스비를 최소 10%를 인상해야 네트워크에서 인식될 수 있습니다.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "스왑 취소"
},
"cancellationGasFee": {
"message": "가스 수수료 취소"
},
@ -606,6 +622,9 @@
"continue": {
"message": "계속"
},
"continueToCoinbasePay": {
"message": "Coinbase Pay로 계속하기"
},
"continueToMoonPay": {
"message": "문페이로 계속하기"
},
@ -1225,6 +1244,10 @@
"message": "모든 플라스크의 API는 실험 단계입니다. 따라서 예고 없이 변경, 제거되거나 안정적인 MetaMask로 마이그레이션되지 않고 플라스크에 무기한 남아 있을 수 있습니다. 사용 시 위험은 자기 책임입니다.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Flask를 사용할 때는 정규 MetaMask 익스텐션을 비활성화하세요.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "본인은 위험을 감수합니다",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "숨기기"
},
"hideFullTransactionDetails": {
"message": "전체 거래 세부정보 숨기기"
},
"hideSeedPhrase": {
"message": "시드 구문 숨기기"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "기록"
},
"ignoreAll": {
"message": "모두 무시"
},
"ignoreTokenWarning": {
"message": "토큰을 숨기면 지갑에 표시되지 않습니다. 하지만 이를 검색하여 추가할 수 있습니다."
},
"import": {
"message": "가져오기",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "지갑 가져오기"
},
"importWithCount": {
"message": "$1 불러오기",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "비밀 복구 구문을 사용하여 기존 지갑 가져오기"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "수평 화살표"
},
"lightTheme": {
"message": "라이트"
},
"likeToImportTokens": {
"message": "이 토큰을 추가할까요?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "MetaMask가 처음이세요?"
},
"newTokensImportedMessage": {
"message": "$1 토큰을 성공적으로 불러왔습니다.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "불러온 토큰"
},
"newTotal": {
"message": "새 합계"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 사용자가 거래를 이해하기 쉽게 도와드립니다."
},
"notificationsEmptyText": {
"message": "표시할 항목이 없습니다."
},
"notificationsHeader": {
"message": "알림"
},
"notificationsInfos": {
"message": "$1($2)",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "모두 읽음으로 표시"
},
"numberOfNewTokensDetected": {
"message": "계정에서 $1개의 새로운 토큰이 발견됨",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "원본"
},
"osTheme": {
"message": "시스템"
},
"padlock": {
"message": "패드락"
},
"parameters": {
"message": "매개변수"
},
@ -2371,6 +2439,10 @@
"message": "허용되는 계정의 주소 보기(필수)",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "무기한 운용됩니다.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "'$1' 계정과 자산을 통제합니다.",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ 그 외 $1개",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "인기 사용자 정의 네트워크"
},
"preferredLedgerConnectionType": {
"message": "선호하는 Ledger 연결 유형",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "계속하기 전에 비밀 복구 구문이 정확한지 확인하세요. 이 작업은 취소할 수 없습니다."
},
"restartMetamask": {
"message": "MetaMask 재시작"
},
"restore": {
"message": "복구"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "송금"
},
"sendBugReport": {
"message": "버그 리포트 전송"
},
"sendSpecifiedTokens": {
"message": "$1 보내기",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "지갑을 컴퓨터에 바로 연결합니다. Ledger를 잠금 해제하고 이더리움 앱을 엽니다. 하드웨어 지갑 장치를 사용하는 방법에 관한 자세한 내용은 $1 링크를 참조하세요.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "아직 이 메시지가 표시되시나요?"
},
"storePhrase": {
"message": "이 구문을 1Password 같은 비밀번호 관리자에 저장하세요."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "스마트 거래를 사용할 수 없을 때도 토큰 스왑은 가능합니다."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "스왑을 비공개로 제출하는 중..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "스왑을 공개로 제출하는 중..."
},
"stxSubDescription": {
"message": "*스마트 거래는 비공개로 거래를 제출하기 위해 여러 번 시도할 것입니다. 모든 시도가 실패하면 성공적인 스왑을 위해 거래는 공개적으로 브로드캐스트될 것입니다."
},
@ -3093,6 +3183,10 @@
"message": "현재 $1(을)를 사용할 수 있습니다.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "스왑 완료까지 남은 시간:",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "제출하기 전에 거래를 시뮬레이션하면 거래 비용을 줄이고 실패율을 낮출 수 있습니다."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "슬리패지는 0보다 크거나 같아야 합니다."
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "유동성 소스"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "토큰 기호"
},
"tokensFoundTitle": {
"message": "$1개의 새 토큰을 찾았습니다",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "이해했습니다"
},
@ -3706,6 +3808,9 @@
"message": "$1 연결 도중 문제가 발생했습니다. $2을(를) 검토하고 다시 시도해 보세요.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"troubleStarting": {
"message": "MetaMask 실행 중 오류가 발생했습니다. 일시적인 오류일 수 있으니 확장 프로그램을 재시작해 보세요."
},
"troubleTokenBalances": {
"message": "토큰 잔액을 로드하는 도중 문제가 발생했습니다. 다음에서 잔액을 확인하세요. ",
"description": "Followed by a link (here) to view token balances"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "MetaMask 비밀번호를 입력하세요"
},
"typeYourSRP": {
"message": "비밀 복구 구문을 입력하세요"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "지갑 생성 성공"
},
"warning": {
"message": "경고"
},
"weak": {
"message": "약함"
},

View File

@ -62,6 +62,13 @@
"message": "$1 pode(m) acessar e usar esse ativo",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Acesse sua carteira com sua Frase de Recuperação Secreta"
},
"accessYourWalletWithSRPDescription": {
"message": "A MetaMask não consegue recuperar sua senha. Usaremos sua Frase de Recuperação Secreta para validar sua posse, restaurar sua carteira e definir uma nova senha. Primeiro, insira a Frase de Recuperação Secreta que você recebeu ao criar sua carteira. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Acessando sua câmera..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Adicionar rede"
},
"addNetworkTooltipWarning": {
"message": "Esta conexão de rede depende de terceiros. Esta conexão pode ser menos confiável ou permitir que terceiros rastreiem atividades. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Adicionar tokens sugeridos"
},
@ -400,6 +411,14 @@
"message": "Comprar $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Comprar $1 com o Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Você pode comprar ou transferir criptomoedas facilmente com sua conta na Coinbase.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Compre $1 com o MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Para $1 uma transação, a taxa de gás deve ser aumentada em pelo menos 10% para que seja reconhecida pela rede.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Cancelar swap"
},
"cancellationGasFee": {
"message": "Taxa de gás por cancelamento"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Continuar"
},
"continueToCoinbasePay": {
"message": "Prosseguir para o Coinbase Pay"
},
"continueToMoonPay": {
"message": "Continuar para o MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Todas as APIs do Flask são experimentais. Elas podem ser alteradas ou removidas sem aviso prévio, ou podem permanecer no Flask indefinidamente, sem jamais serem migradas para a MetaMask estável. Use-as com cautela.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Certifique-se de desativar sua extensão MetaMask regular ao usar o Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Eu aceito os riscos",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Ocultar"
},
"hideFullTransactionDetails": {
"message": "Ocultar detalhes completos da transação"
},
"hideSeedPhrase": {
"message": "Ocultar seed phrase (frase de recuperação)"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Histórico"
},
"ignoreAll": {
"message": "Ignorar tudo"
},
"ignoreTokenWarning": {
"message": "Se você ocultar tokens, eles não serão exibidos em sua carteira. No entanto, você ainda pode pesquisá-los para adicioná-los."
},
"import": {
"message": "Importar",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Importar carteira"
},
"importWithCount": {
"message": "Importar $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Importe sua carteira existente usando uma Frase de Recuperação Secreta"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "seta de nível"
},
"lightTheme": {
"message": "Claro"
},
"likeToImportTokens": {
"message": "Gostaria de adicionar estes tokens?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Novo na MetaMask?"
},
"newTokensImportedMessage": {
"message": "Você importou $1 com sucesso.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Token importado"
},
"newTotal": {
"message": "Novo total"
},
@ -2083,6 +2129,9 @@
"notEnoughGas": {
"message": "Não há gás suficiente"
},
"notifications": {
"message": "Notificações"
},
"notifications10ActionText": {
"message": "Veja em 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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Estamos facilitando a leitura das transações."
},
"notificationsEmptyText": {
"message": "Nada para ver aqui."
},
"notificationsHeader": {
"message": "Notificações"
},
"notificationsInfos": {
"message": "$1 de $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Marcar todas como lidas"
},
"numberOfNewTokensDetected": {
"message": "$1 novos tokens encontrados nesta conta",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Origem"
},
"osTheme": {
"message": "Sistema"
},
"padlock": {
"message": "Cadeado"
},
"parameters": {
"message": "Parâmetros"
},
@ -2371,6 +2439,10 @@
"message": "Ver endereço, saldo da conta, atividade e iniciar transações",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Executar indefinidamente.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Controlar suas contas e ativos do \"$1\".",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "E mais $1",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Redes personalizadas populares"
},
"preferredLedgerConnectionType": {
"message": "Tipo de conexão preferencial com o Ledger",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Certifique-se de usar a frase secreta de recuperação correta antes de prosseguir. Você não poderá desfazer isso."
},
"restartMetamask": {
"message": "Reiniciar a MetaMask"
},
"restore": {
"message": "Restaurar"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Enviar valor"
},
"sendBugReport": {
"message": "Envie-nos um relatório de erros."
},
"sendSpecifiedTokens": {
"message": "Enviar $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Conecte sua carteira diretamente ao seu computador. Desbloqueie seu Ledger e abra o aplicativo do Ethereum. Para obter mais informações sobre como usar seu dispositivo de carteira de hardware, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Ainda está recebendo essa mensagem?"
},
"storePhrase": {
"message": "Guarde essa frase em um gerenciador de senhas, como o 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Você ainda pode fazer swap com seus tokens mesmo quando as Transações Inteligentes estiverem indisponíveis."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Enviando seu swap de forma privada..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Enviando seu swap de forma pública..."
},
"stxSubDescription": {
"message": "* A função de Transações Inteligentes tentará enviar a sua transação várias vezes de forma privada. Se todas as tentativas falharem, a transação será transmitida publicamente para garantir que sua Swap seja realizada com sucesso."
},
@ -3093,6 +3183,10 @@
"message": "Seu $1 já está disponível.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "O swap será concluído em <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Simule as transações antes de finalizar para diminuir os custos de transação e reduzir a possibilidade de falhas."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "O slippage deve ser maior ou igual a zero"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Fonte de liquidez"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Símbolo do Token"
},
"tokensFoundTitle": {
"message": "$1 novos tokens encontrados",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Eu compreendo"
},
@ -3706,6 +3808,9 @@
"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"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Digite a sua Palavra-passe"
},
"typeYourSRP": {
"message": "Digite sua Frase de Recuperação Secreta"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Carteira criada com sucesso"
},
"warning": {
"message": "Atenção"
},
"weak": {
"message": "Fraca"
},

View File

@ -62,6 +62,13 @@
"message": "$1 может получить доступ к этому активу и потратить его",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Получайте доступ к кошельку с помощью секретной фразы для восстановления"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask не может восстановить ваш пароль. Мы используем вашу cекретную фразу для восстановления, чтобы подтвердить ваше право собственности, восстановить ваш кошелек и установить новый пароль. Сначала введите секретную фразу для восстановления, которую вы получили при создании кошелька. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Доступ к камере..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Добавить сеть"
},
"addNetworkTooltipWarning": {
"message": "Это сетевое подключение зависит от третьих сторон. Оно может быть менее надежным или позволять третьим лицам отслеживать активность. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Добавить рекомендованные токены"
},
@ -400,6 +411,14 @@
"message": "Купить $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Купите $1 с помощью Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Вы можете легко купить или перевести криптовалюту с помощью своего счета Coinbase.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Купить $1 с помощью MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Чтобы $1 транзакции плата за газ должна быть увеличена как минимум на 10%. Это позволит обеспечить прием транзакции сетью.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Отменить обмен"
},
"cancellationGasFee": {
"message": "Плата за газ при отмене"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Продолжить"
},
"continueToCoinbasePay": {
"message": "Перейти на Coinbase Pay"
},
"continueToMoonPay": {
"message": "Перейти в MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Все API Flask являются экспериментальными. Они могут быть изменены или удалены без предварительного уведомления или могут оставаться во Flask на неопределенный срок без переноса в стабильную версию MetaMask. Используйте их на свой страх и риск.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Обязательно отключите свое обычное расширение MetaMask при использовании Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Я принимаю риски",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Скрыть"
},
"hideFullTransactionDetails": {
"message": "Скрыть полную информацию о транзакции"
},
"hideSeedPhrase": {
"message": "Скрыть сид-фразу"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "История"
},
"ignoreAll": {
"message": "Игнорировать все"
},
"ignoreTokenWarning": {
"message": "Если вы скроете токены, они не будут отображаться в вашем кошельке. Однако вы все равно можете добавить их, выполнив поиск по ним."
},
"import": {
"message": "Импорт",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Импорт кошелька"
},
"importWithCount": {
"message": "Импортировать $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Импортируйте существующий кошелек, используя начальную секретную фразу восстановления"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "стрелка «уровень»"
},
"lightTheme": {
"message": "Светлая"
},
"likeToImportTokens": {
"message": "Вы хотели бы импортировать эти токены?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Впервые в MetaMask?"
},
"newTokensImportedMessage": {
"message": "Вы успешно импортировали $1.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Токен импортирован"
},
"newTotal": {
"message": "Новая общая сумма"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Мы упрощаем просмотр реквизитов транзакций."
},
"notificationsEmptyText": {
"message": "Здесь не на что смотреть."
},
"notificationsHeader": {
"message": "Уведомления"
},
"notificationsInfos": {
"message": "$1 из $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Отметить все как прочитанные"
},
"numberOfNewTokensDetected": {
"message": "$1 новых токена(-ов) найдены в этом аккаунте",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Источник"
},
"osTheme": {
"message": "Системная"
},
"padlock": {
"message": "Замок"
},
"parameters": {
"message": "Параметры"
},
@ -2371,6 +2439,10 @@
"message": "См. адрес, баланс счета, активность и инициируйте транзакции",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Выполнять бесконечно.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Контролируйте свои счета и активы «$1».",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ еще $1",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Популярные пользовательские сети"
},
"preferredLedgerConnectionType": {
"message": "Предпочтительный тип подключения к леджеру",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Прежде чем продолжить, убедитесь, что вы используете правильную секретную фразу восстановления. Вы не сможете отменить это."
},
"restartMetamask": {
"message": "Перезапустить MetaMask"
},
"restore": {
"message": "Восстановить"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Сумма для отправки"
},
"sendBugReport": {
"message": "Отправьте нам сообщение об ошибке."
},
"sendSpecifiedTokens": {
"message": "Отправить $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Подключите кошелек напрямую к компьютеру. Разблокируйте леджер и откройте приложение Ethereum. Для получения дополнительной информации об использовании аппаратного кошелька $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Все еще получаете это сообщение?"
},
"storePhrase": {
"message": "Сохраните эту фразу в диспетчере паролей, например, в 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Вы по-прежнему можете обменивать свои токены, даже если смарт-транзакции недоступны."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Приватная отправка вашей операции обмена..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Публичная отправка вашей операции обмена..."
},
"stxSubDescription": {
"message": "* Смарт-транзакции попытаются несколько раз отправить вашу транзакцию в конфиденциальном порядке. Если все попытки не увенчаются успехом, транзакция будет показана публично, чтобы гарантировать успешное завершение вашего обмена."
},
@ -3093,6 +3183,10 @@
"message": "Ваши $1 уже доступны.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Обмен завершится через <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Моделируйте транзакции перед отправкой, чтобы снизить транзакционные издержки и сократить число отказов."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Проскальзывание должно быть больше нуля или равно нулю"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Источник ликвидности"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Символ токена"
},
"tokensFoundTitle": {
"message": "Найдены $1 новых токена(-ов)",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Я понимаю"
},
@ -3706,6 +3808,9 @@
"message": "Не удалось подключиться к вашему $1, попробуйте проверить $2 и повторите попытку.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"troubleStarting": {
"message": "У MetaMask возникли проблемы с запуском. Эта ошибка может быть непостоянной, поэтому попробуйте перезапустить расширение."
},
"troubleTokenBalances": {
"message": "У нас возникли проблемы с загрузкой вашего баланса токенов. Вы можете просмотреть их ",
"description": "Followed by a link (here) to view token balances"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Введите свой пароль MetaMask"
},
"typeYourSRP": {
"message": "Введите секретную фразу для восстановления"
},
"u2f": {
"message": "U2F:",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Кошелек создан"
},
"warning": {
"message": "Предупреждение"
},
"weak": {
"message": "Слабый"
},

View File

@ -62,6 +62,13 @@
"message": "$1 maaaring i-access at gamitin ang asset na ito",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "I-access ang iyong wallet gamit ang iyong Secret Recovery Phrase"
},
"accessYourWalletWithSRPDescription": {
"message": "Hindi mabawi ng MetaMask ang iyong password. Gagamitin namin ang iyong Secret Recovery Phrase upang patunayan ang iyong pagmamay-ari, i-restore ang iyong wallet at mag-set up ng bagong password. Una, ilagay ang Secret Recovery Phrase na ibinigay sa iyo noong ginawa mo ang iyong wallet. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Ina-access ang iyong camera..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Magdagdag ng Network"
},
"addNetworkTooltipWarning": {
"message": "Ang koneksyon sa network na ito ay umaasa sa mga third party. Ang koneksyon na ito ay maaaring hindi gaanong maaasahan o binibigyang-daan ang mga third-party na mag-track ng aktibidad. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Magdagdag ng Mga Iminumungkahing Token"
},
@ -338,7 +349,7 @@
"message": "Panimula"
},
"betaMetamaskDescription": {
"message": "Ang MetaMask na pinagkakatiwalaan ng milyun-milyon ay isang ligtas na wallet na ginagawang accessible ang mundo ng web3 para sa lahat."
"message": "Ang Metamask na pinagkakatiwalaan ng milyun-milyon ay isang ligtas na wallet na ginagawang accessible ang mundo ng web3 para sa lahat."
},
"betaMetamaskDescriptionExplanation": {
"message": "Gamitin ang bersyong ito para subukan ang mga paparating na feature bago ilabas ang mga ito. Ang iyong paggamit at feedback ay nakakatulong sa amin na bumuo ng posibleng pinakamahusay na bersyon ng MetaMask. Ang paggamit mo ng MetaMask Beta ay napapailalim sa aming karaniwang $1 gayundin sa aming $2. Bilang Beta, maaaring tumaas ang panganib ng mga bug. Sa pagpapatuloy, tinatanggap at kinikilala mo ang mga panganib na ito, gayundin ang mga panganib na makikita sa aming Mga Tuntunin at Mga Tuntunin ng Beta.",
@ -400,6 +411,14 @@
"message": "Bumili ng $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Bumili ng $1 gamit ang Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Madali kang makakabili o makakapagtransfer ng crypto gamit ang iyong Coinbase account.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Bumili ng $1 gamit ang MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -419,7 +438,7 @@
"message": "Bumili ng $1 gamit ang Wyre"
},
"buyWithWyreDescription": {
"message": "Nagbibigay-daan sa iyo ang Wyre na gumamit ng debit card para mag-deposit ng $1 sa mismong MetaMask account mo."
"message": "Madaling onboarding para sa mga pagbili hanggang $ 1000. Mabilis na interactive na high limit na pag-verify ng pagbili. Sinusuportahan ang Debit/Credit Card, Apple Pay, Bank Transfers. Available sa 100+ na mga bansa. Deposito ng mga token sa iyong MetaMask Account"
},
"bytes": {
"message": "Bytes"
@ -447,9 +466,6 @@
"message": "Sa $1 na transaksyon ang singil sa gas ay dapat tumaas nang hindi bababa sa 10% para ito ay makilala ng network.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Kanselahin ang pagpapalit"
},
"cancellationGasFee": {
"message": "Bayarin sa Gasolina para sa Pagkansela"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Magpatuloy"
},
"continueToCoinbasePay": {
"message": "Magpatuloy sa Coinbase Pay"
},
"continueToMoonPay": {
"message": "Magpatuloy sa MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Ang lahat ng API ng Flask ay eksperimental. Maaaring baguhin o alisin ang mga ito nang walang abiso, o maaari silang manatili sa Flask nang walang katapusan nang hindi nalilipat sa matatag na MetaMask. Gamitin ang mga ito sa iyong sariling pananagutan.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Siguraduhing i-disable ang iyong regular na MetaMask extension kapag ginagamit ang Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Tinatanggap ko ang mga panganib",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Itago"
},
"hideFullTransactionDetails": {
"message": "Itago ang buong detalye ng transaksyon"
},
"hideSeedPhrase": {
"message": "Itago ang seed phrase"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "History"
},
"ignoreAll": {
"message": "Huwag pansinin ang lahat"
},
"ignoreTokenWarning": {
"message": "Kung itatago mo ang mga token, hindi ipapakita ang mga ito sa iyong wallet. Gayunpaman, maaari mo pa ring idagdag ang mga ito sa pamamagitan ng paghahanap sa kanila."
},
"import": {
"message": "Mag-import",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "I-import ang wallet"
},
"importWithCount": {
"message": "Mag-isport ng $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "I-import ang iyong kasalukuyang wallet gamit ang isang Secret Recovery Phrase"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "arrow ng level"
},
"lightTheme": {
"message": "Maliwanag"
},
"likeToImportTokens": {
"message": "Gusto mo bang idagdag ang mga token na ito?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Bago ka ba sa MetaMask?"
},
"newTokensImportedMessage": {
"message": "Matagumpay mong na-import ang $1.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Na-import ang token"
},
"newTotal": {
"message": "Bagong Kabuuan"
},
@ -2083,6 +2129,9 @@
"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."
@ -2109,7 +2158,7 @@
"message": "Paganahin ang dark mode"
},
"notifications12Description": {
"message": "Pagaganahin ang Dark Mode para sa mga bagong user depende sa kanilang mga kagustuhan sa sistema. Para sa mga kasalukuyang user, manu-manong paganahin ang Dark Mode sa ilalim ng Mga Setting -> Eksperimental."
"message": "Nandito na sa wakas ang dark mode sa Extension! Upang i-on ito, pumunta sa Mga Setting -> Eksperimental at pumili ng isa sa mga opsyon sa pagpapakita: Light, Dark, System."
},
"notifications12Title": {
"message": "Wen dark mode? Ngayon dark mode! 🕶️🦊"
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Pinadadali naming mabasa ang mga transaksyon."
},
"notificationsEmptyText": {
"message": "Walang makikita dito."
},
"notificationsHeader": {
"message": "Mga Abiso"
},
"notificationsInfos": {
"message": "$1 mula $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Markahan ang lahat bilang nabasa na"
},
"numberOfNewTokensDetected": {
"message": "$1 bagong token ang nakita sa account na ito",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Pinagmulan"
},
"osTheme": {
"message": "Sistema"
},
"padlock": {
"message": "Padlock"
},
"parameters": {
"message": "Mga Parameter"
},
@ -2371,6 +2439,10 @@
"message": "Tingnan ang mga address, balanse ng account, aktibidad at simulan ang iyong mga transaksyon",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Patakbuhin ng walang katapusan.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Kontrolin ang iyong mga account at asset sa \"$1\".",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 pa",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Mga sikat na custom na network"
},
"preferredLedgerConnectionType": {
"message": "Napiling Uri ng Ledger Connection",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Tiyakin na ginagamit mo ang wastong Secret Recovery Phrase bago magpatuloy. Hindi mo na ito maaaring pawalang-bisa."
},
"restartMetamask": {
"message": "I-restart ang MetaMask"
},
"restore": {
"message": "I-restore"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Halaga ng Ipapadala"
},
"sendBugReport": {
"message": "Padalhan kami ng ulat ng bug."
},
"sendSpecifiedTokens": {
"message": "Magpadala ng $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Direktang ikonekta ang iyong wallet sa iyong computer. I-unlock ang iyong Ledger at buksan ang Ethereum app. Para sa higit pa sa paggamit ng iyong hardware wallet device, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Nakukuha pa rin ang mensaheng ito?"
},
"storePhrase": {
"message": "I-store ang phrase na ito sa isang password manager gaya ng 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Maaari mo parin papalitan ang iyong mga token kahit na hindi available ang mga Smart Transaction."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Pribadong isinusumite ang iyong Swap..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Pampublikong isinusumite ang iyong Swap..."
},
"stxSubDescription": {
"message": "* Susubukan ng mga Smart Transaction na isumite nang pribado ang iyong transaksyon, maraming beses. Kapag nabigo ang lahat ng pagsubok, ipapakita sa publiko ang transaksyon upang matiyak na ang Pagpapalit ay naging matagupay."
},
@ -3093,6 +3183,10 @@
"message": "Ang iyong $1 ay available na ngayon.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Matatapos ang Swap sa <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Gayahin ang mga transaksyon bago isumite upang bumaba ang gastos sa transaksyon at mabawasan ang mga pagkabigo."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Ang slippage ay dapat mas malaki o katumbas ng zero"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Pinagkunan ng liquidity"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Simbolo ng Token"
},
"tokensFoundTitle": {
"message": "$1 bagong token ang nakita",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Nauunawaan ko"
},
@ -3706,6 +3808,9 @@
"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"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Uri ng password ng iyong MetaMask"
},
"typeYourSRP": {
"message": "I-type ang iyong Secret Recovery Phrase"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Matagumpay ang paggawa ng wallet"
},
"warning": {
"message": "Babala"
},
"weak": {
"message": "Madali"
},
@ -3920,7 +4031,7 @@
"message": "Magsimula na tayo"
},
"welcomeToMetaMaskIntro": {
"message": "Ang MetaMask na pinagkakatiwalaan ng milyun-milyon ay isang ligtas na wallet na ginagawang accessible ang mundo ng web3 para sa lahat."
"message": "Ang Metamask na pinagkakatiwalaan ng milyun-milyon ay isang ligtas na wallet na ginagawang accessible ang mundo ng web3 para sa lahat."
},
"whatsNew": {
"message": "Ano'ng bago",

View File

@ -62,6 +62,13 @@
"message": "$1 bu varlığa erişebilir ve harcayabilir",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Gizli Kurtarma İfadenizle cüzdanınıza erişin"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask parolanızı kurtaramaz. Sahipliğinizi doğrulamak, cüzdanınızı yenilemek ve yeni bir parola belirlemek için Gizli Kurtarma İfadenizi kullanırız. İlk olarak, cüzdanınızı oluştururken size verilmiş olan Gizli Kurtarma İfadenizi girin. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Kameranıza erişim sağlanıyor..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Ağ ekle"
},
"addNetworkTooltipWarning": {
"message": "Bu ağ bağlantısı üçüncü taraflara dayalıdır. Bu bağlantı daha az güvenli olabilir veya üçüncü tarafların aktiviteleri takip etmesine olanak sağlayabilir. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Önerilen Tokenleri ekle"
},
@ -400,6 +411,14 @@
"message": "$1 satın al",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Coinbase Pay ile 1 USD al",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Coinbase hesabınla kolayca kripto para satın alabilir veya transfer edebilirsin.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "MoonPay ile $1 satın al",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "İşlemi $1 için, gaz ücretinin ağ tarafından tanınması amacıyla en az %10 oranında artırılması gerekir.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Takası iptal et"
},
"cancellationGasFee": {
"message": "İptal İşlemi Gaz Ücreti"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Devam et"
},
"continueToCoinbasePay": {
"message": "Coinbase Pay'e devam et"
},
"continueToMoonPay": {
"message": "MoonPay'e devam et"
},
@ -1225,6 +1244,10 @@
"message": "Tüm Flask API'leri deneyseldir. Önceden haber verilmeksizin değiştirilebilir veya kaldırılabilirler ya da kararlı MetaMask'e taşınmadan süresiz olarak Flask'ta kalabilirler. Bunları kendi sorumluluğunda kullan.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Flask kullanırken normal MetaMask uzantınızı devre dışı bıraktığınızdan emin olun.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Riskleri kabul ediyorum",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Gizle"
},
"hideFullTransactionDetails": {
"message": "Tam işlem bilgilerini gizle"
},
"hideSeedPhrase": {
"message": "Tohum ifadesini gizle"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Geçmiş"
},
"ignoreAll": {
"message": "Tümünü yoksay"
},
"ignoreTokenWarning": {
"message": "Gizlediğiniz tokenler cüzdanınızda gösterilmez. Ancak, yine de onları bulup ekleyebilirsiniz."
},
"import": {
"message": "İçe Aktar",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Cüzdanı içe aktar"
},
"importWithCount": {
"message": "$1 tokeni içe aktar",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Gizli Kurtarma İfadesi kullanarak mevcut cüzdanınızı içe aktarın"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "seviye oku"
},
"lightTheme": {
"message": "Aydınlık"
},
"likeToImportTokens": {
"message": "Bu tokenleri içe aktarmak ister misiniz?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "MetaMask'te yeni misiniz?"
},
"newTokensImportedMessage": {
"message": "$1 tokeni başarılı bir şekilde içe aktardın.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Token içe aktarıldı"
},
"newTotal": {
"message": "Yeni Toplam"
},
@ -2083,6 +2129,9 @@
"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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 İşlemlerin okunmasını daha kolay hale getiriyoruz."
},
"notificationsEmptyText": {
"message": "Burada gösterilecek bir şey yok."
},
"notificationsHeader": {
"message": "Bildirimler"
},
"notificationsInfos": {
"message": "$1 tarihli bildirim: $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Tümünü okundu olarak işaretle"
},
"numberOfNewTokensDetected": {
"message": "Bu hesapta $1 yeni token bulundu",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Köken"
},
"osTheme": {
"message": "Sistem"
},
"padlock": {
"message": "Asma Kilit"
},
"parameters": {
"message": "Parametreler"
},
@ -2371,6 +2439,10 @@
"message": "Adrese, hesap bakiyesine, aktiviteye bakın ve işlemleri başlatın",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Süresiz çalıştır.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "\"$1\" hesaplarını ve varlıklarını kontrol et.",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 tane daha",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Popüler özel ağlar"
},
"preferredLedgerConnectionType": {
"message": "Tercih Edilen Kayıt Defteri Bağlantı Türü",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Devam etmeden önce doğru Gizli Kurtarma İfadesini kullandığından emin ol. Bunu geri alamazsın."
},
"restartMetamask": {
"message": "MetaMask'i yeniden başlat"
},
"restore": {
"message": "Geri Yükle"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Tutarı Gönder"
},
"sendBugReport": {
"message": "Bize bir hata raporu gönder."
},
"sendSpecifiedTokens": {
"message": "$1 Gönder",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Cüzdanınızı doğrudan bilgisayara bağlayın. Kayıt defterinizin kilidini açın ve Ethereum uygulamasınıın. Donanım cüzdanı cihazınızın kullanımı hakkında daha fazla bilgi için $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Bu mesajı almaya devam mı ediyorsun?"
},
"storePhrase": {
"message": "Bu ifadeyi 1Password gibi bir parola yöneticisinde saklayın."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Akıllı İşlemler kullanılamazken bile token'larını değiştirebilirsin."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Swap işlemin özel olarak gönderiliyor..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Swap işlemin herkese açık olarak gönderiliyor..."
},
"stxSubDescription": {
"message": "* Akıllı İşlemler, işlemini birden çok kez özel olarak göndermeye çalışır. Tüm denemeler başarısız olursa Takas'ının başarılı bir şekilde gerçekleşmesini sağlamak için işlem herkese açık olarak yayınlanacaktır."
},
@ -3093,6 +3183,10 @@
"message": "$1 artık kullanılabilir.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Swap işleminin tamamlanmasına kalan süre <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "İşlem maliyetlerini azaltmak ve arızaları azaltmak için göndermeden önce işlemleri simüle et."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Fark en az sıfır olmalıdır"
},
"swapSlippagePercent": {
"message": "%$1",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Likidite kaynağı"
},
@ -3485,7 +3583,7 @@
"message": "Hesaplarınızı ve bilgilerinizi mobil cihazınızla senkronize edebilirsiniz. MetaMask mobil uygulamasınıın, \"Ayarlar\" kısmına gidin ve \"Tarayıcı Uzantısından Senkronize Et\" seçeneğine dokunun"
},
"syncWithMobileDescNewUsers": {
"message": "MetaMask Mobil uygulamasını ilk defa açıyorsanız telefonunuzdaki adımları izleyin."
"message": "Metamask Mobil uygulamasını ilk defa açıyorsanız telefonunuzdaki adımları izleyin."
},
"syncWithMobileScanThisCode": {
"message": "MetaMask mobil uygulamanızla bu kodu tarayın"
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Token Sembolü"
},
"tokensFoundTitle": {
"message": "$1 yeni token bulundu",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Anladım"
},
@ -3706,6 +3808,9 @@
"message": "$1 ile bağlantı kurmada sorun yaşıyoruz, $2 kısmını inceleyip tekrar deneyin.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "MetaMask parolanızı girin"
},
"typeYourSRP": {
"message": "Gizli Kurtarma İfadenizi girin"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Cüzdan oluşturma başarılı"
},
"warning": {
"message": "Uyarı"
},
"weak": {
"message": "Zayıf"
},

View File

@ -62,6 +62,13 @@
"message": "$1 có thể truy cập và chi tiêu tài sản này",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "Truy cập ví của bạn bằng Cụm từ khôi phục bí mật"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask không thể khôi phục mật khẩu của bạn. Chúng tôi sẽ sử dụng Cụm từ khôi phục bí mật của bạn để xác thực quyền sở hữu, khôi phục ví và thiết lập mật khẩu mới. Trước tiên, hãy nhập Cụm từ khôi phục bí mật mà bạn đã được cấp khi tạo ví. $1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "Đang truy cập máy ảnh..."
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "Thêm mạng"
},
"addNetworkTooltipWarning": {
"message": "Kết nối mạng này dựa vào các bên thứ ba. Kết nối này có thể kém tin cậy hơn hoặc cho phép các bên thứ ba theo dõi hoạt động. $1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "Thêm token được đề xuất"
},
@ -400,6 +411,14 @@
"message": "Mua $1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "Mua $1 bằng Coinbase Pay",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "Bạn có thể dễ dàng mua hoặc chuyển khoản tiền điện tử bằng tài khoản Coinbase của mình.",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "Mua $1 bằng MoonPay",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "Để $1 một giao dịch, phí gas phải tăng tối thiểu 10% để mạng nhận ra giao dịch này.",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "Hủy hoán đổi"
},
"cancellationGasFee": {
"message": "Phí gas hủy"
},
@ -606,6 +622,9 @@
"continue": {
"message": "Tiếp tục"
},
"continueToCoinbasePay": {
"message": "Tiếp tục đến Coinbase Pay"
},
"continueToMoonPay": {
"message": "Tiếp tục đến MoonPay"
},
@ -1225,6 +1244,10 @@
"message": "Tất cả các API của Flask đều là thử nghiệm. Chúng có thể bị thay đổi hoặc xóa mà không cần thông báo, hoặc chúng có thể ở trên Flask vô thời hạn mà không bao giờ được chuyển sang phiên bản MetaMask ổn định. Bạn phải tự chịu rủi ro khi sử dụng chúng.",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "Đảm bảo bạn đã tắt tiện ích mở rộng MetaMask thông thường khi sử dụng Flask.",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "Tôi chấp nhận những rủi ro này",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1416,6 +1439,9 @@
"hide": {
"message": "Ẩn"
},
"hideFullTransactionDetails": {
"message": "Ẩn chi tiết giao dịch đầy đủ"
},
"hideSeedPhrase": {
"message": "Ẩn cụm từ khôi phục bí mật"
},
@ -1445,6 +1471,12 @@
"history": {
"message": "Lịch sử"
},
"ignoreAll": {
"message": "Bỏ qua tất cả"
},
"ignoreTokenWarning": {
"message": "Nếu bạn ẩn token, chúng sẽ không hiển thị trong ví của bạn. Tuy nhiên, bạn vẫn có thể thêm chúng thông qua tìm kiếm."
},
"import": {
"message": "Nhập",
"description": "Button to import an account from a selected file"
@ -1494,6 +1526,10 @@
"importWallet": {
"message": "Nhập ví"
},
"importWithCount": {
"message": "Nhập $1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "Nhập ví hiện tại của bạn bằng Cụm mật khẩu khôi phục bí mật"
},
@ -1688,6 +1724,9 @@
"levelArrow": {
"message": "mũi tên cấp độ"
},
"lightTheme": {
"message": "Sáng"
},
"likeToImportTokens": {
"message": "Bạn có muốn nhập những token này không?"
},
@ -2001,6 +2040,13 @@
"newToMetaMask": {
"message": "Bạn mới sử dụng MetaMask?"
},
"newTokensImportedMessage": {
"message": "Bạn đã nhập thành công $1.",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "Đã nhập token"
},
"newTotal": {
"message": "Tổng mới"
},
@ -2083,6 +2129,9 @@
"notEnoughGas": {
"message": "Không đủ gas"
},
"notifications": {
"message": "Thông báo"
},
"notifications10ActionText": {
"message": "Xem trong 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."
@ -2203,6 +2252,19 @@
"notifications9Title": {
"message": "👓 Chúng tôi đang làm cho các giao dịch dễ đọc hơn."
},
"notificationsEmptyText": {
"message": "Không có gì ở đây."
},
"notificationsHeader": {
"message": "Thông báo"
},
"notificationsInfos": {
"message": "$1 từ $2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "Đánh dấu đã đọc tất cả"
},
"numberOfNewTokensDetected": {
"message": "Tìm thấy $1 token mới trong tài khoản này",
"description": "$1 is the number of new tokens detected"
@ -2301,6 +2363,12 @@
"origin": {
"message": "Nguồn gốc"
},
"osTheme": {
"message": "Hệ thống"
},
"padlock": {
"message": "Ổ khóa"
},
"parameters": {
"message": "Tham số"
},
@ -2371,6 +2439,10 @@
"message": "Xem địa chỉ, số dư tài khoản, hoạt động và bắt đầu giao dịch",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "Chạy không giới hạn.",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "Kiểm soát các tài khoản và tài sản \"$1\" của bạn.",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2400,6 +2472,9 @@
"message": "+ $1 khác",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "Mạng tùy chỉnh phổ biến"
},
"preferredLedgerConnectionType": {
"message": "Dạng Kết Nối Ledger Ưu Tiên",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2574,6 +2649,9 @@
"resetWalletWarning": {
"message": "Đảm bảo bạn đang sử dụng đúng Cụm từ khôi phục bí mật trước khi tiếp tục vì bạn sẽ không thể hoàn tác."
},
"restartMetamask": {
"message": "Khởi động lại MetaMask"
},
"restore": {
"message": "Khôi phục"
},
@ -2758,6 +2836,9 @@
"sendAmount": {
"message": "Gửi khoản tiền"
},
"sendBugReport": {
"message": "Gửi báo cáo lỗi."
},
"sendSpecifiedTokens": {
"message": "Gửi $1",
"description": "Symbol of the specified token"
@ -3031,6 +3112,9 @@
"message": "Kết nối ví của bạn trực tiếp với máy tính. Mở khóa Ledger của bạn và mở ứng dụng Ethereum. Để biết thêm thông tin về cách sử dụng thiết bị ví cứng của bạn, $1.",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "Vẫn nhận được thông báo này?"
},
"storePhrase": {
"message": "Lưu trữ cụm mật khẩu này trong trình quản lý mật khẩu chẳng hạn như 1Password."
},
@ -3083,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "Bạn vẫn có thể hoán đổi token ngay cả khi Giao dịch thông minh không khả dụng."
},
"stxPendingPrivatelySubmittingSwap": {
"message": "Đang bí mật gửi yêu cầu Hoán đổi của bạn..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "Đang công khai gửi yêu cầu Hoán đổi của bạn..."
},
"stxSubDescription": {
"message": "* Giao dịch thông minh sẽ cố gắng gửi giao dịch của bạn nhiều lần theo cách riêng tư. Nếu tất cả các lần thử đều không thành công, giao dịch sẽ được phát công khai để đảm bảo Hoán đổi của bạn được thực hiện thành công."
},
@ -3093,6 +3183,10 @@
"message": "$1 của bạn hiện đã có sẵn.",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Hoán đổi sẽ hoàn tất sau <",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "Mô phỏng giao dịch trước khi gửi để giảm chi phí giao dịch và tỷ lệ thất bại."
},
@ -3352,6 +3446,10 @@
"swapSlippageNegative": {
"message": "Mức trượt giá phải lớn hơn hoặc bằng 0"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "Nguồn thanh khoản"
},
@ -3585,6 +3683,10 @@
"tokenSymbol": {
"message": "Ký hiệu token"
},
"tokensFoundTitle": {
"message": "Đã tìm thấy $1 token mới",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "Tôi đã hiểu"
},
@ -3706,6 +3808,9 @@
"message": "Chúng tôi đã gặp phải sự cố khi kết nối với $1 của bạn, hãy thử xem lại $2 và thử lại.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"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"
@ -3728,6 +3833,9 @@
"typePassword": {
"message": "Nhập mật khẩu MetaMask của bạn"
},
"typeYourSRP": {
"message": "Nhập Cụm từ khôi phục bí mật của bạn"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3887,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "Tạo ví thành công"
},
"warning": {
"message": "Cảnh báo"
},
"weak": {
"message": "Yếu"
},

View File

@ -62,6 +62,13 @@
"message": "$1可以访问并使用此资产",
"description": "$1 is the url of the site requesting ability to spend"
},
"accessYourWalletWithSRP": {
"message": "使用账户助记词访问钱包"
},
"accessYourWalletWithSRPDescription": {
"message": "MetaMask无法恢复您的密码。我们将使用您的助记词来验证您的所有权、恢复您的钱包并设置新密码。首先请输入创建钱包时获得的助记词。$1",
"description": "$1 is the words 'Learn More' from key 'learnMore', separated here so that it can be added as a link"
},
"accessingYourCamera": {
"message": "正在访问您的相机……"
},
@ -153,6 +160,10 @@
"addNetwork": {
"message": "添加网络"
},
"addNetworkTooltipWarning": {
"message": "此网络连接依赖于第三方。此连接可能不太可靠,或使第三方可进行活动跟踪。$1",
"description": "$1 is Learn more link"
},
"addSuggestedTokens": {
"message": "添加推荐代币"
},
@ -400,6 +411,14 @@
"message": "购买$1",
"description": "$1 is the ticker symbol of a an asset the user is being prompted to purchase"
},
"buyCryptoWithCoinbasePay": {
"message": "用Coinbase Pay购买$1",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithCoinbasePayDescription": {
"message": "您可以使用Coinbase账户轻松购买或转移加密货币。",
"description": "$1 represents the crypto symbol to be purchased"
},
"buyCryptoWithMoonPay": {
"message": "用MoonPay购买$1",
"description": "$1 represents the cypto symbol to be purchased"
@ -447,9 +466,6 @@
"message": "若要$1交易燃料费用必须增加至少10%才能被网络认可。",
"description": "$1 is string 'cancel' or 'speed up'"
},
"cancelSwap": {
"message": "取消交换"
},
"cancellationGasFee": {
"message": "取消燃料费用"
},
@ -606,6 +622,9 @@
"continue": {
"message": "继续"
},
"continueToCoinbasePay": {
"message": "继续使用Coinbase Pay"
},
"continueToMoonPay": {
"message": "继续使用MoonPay"
},
@ -718,9 +737,6 @@
"customGasSubTitle": {
"message": "提升费用可能会缩短处理时间,但不能保证。"
},
"customNetworks": {
"message": "自定义网络"
},
"customSpendLimit": {
"message": "自定义消费限额"
},
@ -1228,6 +1244,10 @@
"message": "所有Flask API都是实验性的。它们可能会在未事先通知的情况下被更改或删除它们也可能会无限期地留在Flask上而不会迁移到稳定的MetaMask。您需要自行承担使用它们的风险。",
"description": "This message warns developers about unstable Flask APIs"
},
"flaskWelcomeWarning4": {
"message": "确保在使用Flask时禁用常规MetaMask扩展程序。",
"description": "This message calls to pay attention about multiple versions of MetaMask running on the same site (Flask + Prod)"
},
"flaskWelcomeWarningAcceptButton": {
"message": "我接受风险",
"description": "this text is shown on a button, which the user presses to confirm they understand the risks of using Flask"
@ -1419,6 +1439,9 @@
"hide": {
"message": "隐藏"
},
"hideFullTransactionDetails": {
"message": "隐藏完整的交易细节"
},
"hideSeedPhrase": {
"message": "隐藏助记词"
},
@ -1448,6 +1471,12 @@
"history": {
"message": "历史记录"
},
"ignoreAll": {
"message": "忽略所有"
},
"ignoreTokenWarning": {
"message": "如果您隐藏代币,它们将不会在您的钱包中显示。但您仍然可以通过搜索代币来添加它们。"
},
"import": {
"message": "导入",
"description": "Button to import an account from a selected file"
@ -1497,6 +1526,10 @@
"importWallet": {
"message": "导入钱包"
},
"importWithCount": {
"message": "导入$1",
"description": "$1 will the number of detected tokens that are selected for importing, if all of them are selected then $1 will be all"
},
"importYourExisting": {
"message": "使用账户助记词导入您的现有钱包"
},
@ -1659,7 +1692,7 @@
"message": "打开和解锁 Ledger Live 应用程序"
},
"ledgerConnectionPreferenceDescription": {
"message": "自定义连接您的 Ledger 到 MetaMask 的方式。建议使用 $1但也可使用其他选项。请在这里阅读更多信息$2",
"message": "自定义连接您的 Ledger 到 Metamask 的方式。建议使用 $1但也可使用其他选项。请在这里阅读更多信息$2",
"description": "A description that appears above a dropdown where users can select between up to three options - Ledger Live, U2F or WebHID - depending on what is supported in their browser. $1 is the recommended browser option, it will be either WebHID or U2f. $2 is a link to an article where users can learn more, but will be the translation of the learnMore message."
},
"ledgerDeviceOpenFailureMessage": {
@ -1691,6 +1724,9 @@
"levelArrow": {
"message": "水平箭头"
},
"lightTheme": {
"message": "浅色"
},
"likeToImportTokens": {
"message": "您想导入这些代币吗?"
},
@ -2004,6 +2040,13 @@
"newToMetaMask": {
"message": "MetaMask 的新用户?"
},
"newTokensImportedMessage": {
"message": "您已成功导入$1。",
"description": "$1 is the string of symbols of all the tokens imported"
},
"newTokensImportedTitle": {
"message": "已导入代币"
},
"newTotal": {
"message": "新总额"
},
@ -2086,6 +2129,9 @@
"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."
@ -2158,7 +2204,7 @@
"description": "Description of a notification in the 'See What's New' popup. Describes the Ledger support update."
},
"notifications6DescriptionThree": {
"message": "在 MetaMask 中与您的 Ledger 账户交互时,将打开一个新选项卡,并且将要求您打开 Ledger Live 应用程序。应用程序打开后,您将被要求允许 WebSocket 连接到您的 MetaMask 账户。就是这样!",
"message": "在 Metamask 中与您的 Ledger 账户交互时,将打开一个新选项卡,并且将要求您打开 Ledger Live 应用程序。应用程序打开后,您将被要求允许 WebSocket 连接到您的 MetaMask 账户。就是这样!",
"description": "Description of a notification in the 'See What's New' popup. Describes the Ledger support update."
},
"notifications6DescriptionTwo": {
@ -2206,6 +2252,19 @@
"notifications9Title": {
"message": "👓 我们正在使交易更容易阅读。"
},
"notificationsEmptyText": {
"message": "此处无内容。"
},
"notificationsHeader": {
"message": "通知"
},
"notificationsInfos": {
"message": "$1来自$2",
"description": "$1 is the date at which the notification has been dispatched and $2 is the link to the snap that dispatched the notification."
},
"notificationsMarkAllAsRead": {
"message": "将所有标记为已读"
},
"numberOfNewTokensDetected": {
"message": "在此账户中发现 $1 新代币",
"description": "$1 is the number of new tokens detected"
@ -2285,9 +2344,6 @@
"onlyConnectTrust": {
"message": "只连接您信任的网站。"
},
"onlyInteractWith": {
"message": "仅与您信任的实体互动。"
},
"openFullScreenForLedgerWebHid": {
"message": "全屏打开 MetaMask 以通过 WebHID 连接您的 ledger。",
"description": "Shown to the user on the confirm screen when they are viewing MetaMask in a popup window but need to connect their ledger via webhid."
@ -2307,6 +2363,12 @@
"origin": {
"message": "来源"
},
"osTheme": {
"message": "系统"
},
"padlock": {
"message": "挂锁"
},
"parameters": {
"message": "参数"
},
@ -2377,6 +2439,10 @@
"message": "查看您允许的账户的地址(必填)",
"description": "The description for the `eth_accounts` permission"
},
"permission_longRunning": {
"message": "无限期运行。",
"description": "The description for the `endowment:long-running` permission"
},
"permission_manageBip44Keys": {
"message": "控制您的“$1”账户和资产。",
"description": "The description for the `snap_getBip44Entropy_*` permission. $1 is the name of a protocol, e.g. 'Filecoin'."
@ -2406,6 +2472,9 @@
"message": "另外 $1 项",
"description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
},
"popularCustomNetworks": {
"message": "流行自定义网络"
},
"preferredLedgerConnectionType": {
"message": "首选 Ledger 连接类型",
"description": "A header for a dropdown in the advanced section of settings. Appears above the ledgerConnectionPreferenceDescription message"
@ -2580,6 +2649,9 @@
"resetWalletWarning": {
"message": "在继续之前,请确保您所使用的助记词正确无误。您将无法撤消此操作。"
},
"restartMetamask": {
"message": "重新启动MetaMask"
},
"restore": {
"message": "恢复"
},
@ -2764,6 +2836,9 @@
"sendAmount": {
"message": "发送金额"
},
"sendBugReport": {
"message": "向我们发送错误报告。"
},
"sendSpecifiedTokens": {
"message": "发送 $1",
"description": "Symbol of the specified token"
@ -3037,6 +3112,9 @@
"message": "将您的钱包直接连接到电脑。解锁 Ledger 并打开 Ethereum 应用程序。若要了解有关使用您的硬件钱包设备的更多信息,$1。",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"stillGettingMessage": {
"message": "仍然收到此消息?"
},
"storePhrase": {
"message": "通过如 1Password 等密码管理工具保存该账户助记词。"
},
@ -3089,6 +3167,12 @@
"stxFallbackUnavailable": {
"message": "即使智能交易不可用,您仍然可以交换代币。"
},
"stxPendingPrivatelySubmittingSwap": {
"message": "正在秘密提交您的Swap..."
},
"stxPendingPubliclySubmittingSwap": {
"message": "正在公开提交您的Swap..."
},
"stxSubDescription": {
"message": "*智能交易将尝试多次隐秘提交您的交易。如果所有尝试都失败,交易将会公开广播,以确保您的交换能成功进行。"
},
@ -3099,6 +3183,10 @@
"message": "您的$1现在可用。",
"description": "$1 is a token symbol, e.g. ETH"
},
"stxSwapCompleteIn": {
"message": "Swap距离完成尚有<",
"description": "'<' means 'less than', e.g. Swap will complete in < 2:59"
},
"stxTooltip": {
"message": "在提交前模拟交易,以降低交易成本并减少失败。"
},
@ -3358,6 +3446,10 @@
"swapSlippageNegative": {
"message": "滑点必须大于或等于0"
},
"swapSlippagePercent": {
"message": "$1%",
"description": "$1 is the amount of % for slippage"
},
"swapSource": {
"message": "流动性来源"
},
@ -3591,6 +3683,10 @@
"tokenSymbol": {
"message": "代币符号"
},
"tokensFoundTitle": {
"message": "发现$1新代币",
"description": "$1 is the number of new tokens detected"
},
"tooltipApproveButton": {
"message": "我理解"
},
@ -3712,6 +3808,9 @@
"message": "我们在连接您的 $1 时遇到问题,尝试检查 $2 并重试。",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"troubleStarting": {
"message": "MetaMask无法启动。可能发生间歇性错误因此请尝试重新启动扩展程序。"
},
"troubleTokenBalances": {
"message": "我们在加载您的代币余额时遇到问题。您可以查看它们 ",
"description": "Followed by a link (here) to view token balances"
@ -3734,6 +3833,9 @@
"typePassword": {
"message": "输入您的 MetaMask 密码"
},
"typeYourSRP": {
"message": "输入助记词"
},
"u2f": {
"message": "U2F",
"description": "A name on an API for the browser to interact with devices that support the U2F protocol. On some browsers we use it to connect MetaMask to Ledger devices."
@ -3893,6 +3995,9 @@
"walletCreationSuccessTitle": {
"message": "钱包创建成功"
},
"warning": {
"message": "警告"
},
"weak": {
"message": "弱"
},

View File

@ -2,109 +2,91 @@ WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask ist eine neue Möglichkeit, sich mit
Webseiten und Anwendungen zu verbinden.
MetaMask ist eine neue Möglichkeit zur Verbindung mit Webseiten und Applikationen.
2
00:00:04.580 --> 00:00:08.860
Auf traditionellen Webseiten ist eine
zentrale Datenbank für die Steuerung und
00:00:04.580 --> 00:00:08.860
Auf traditionellen Webseiten ist eine zentrale Datenbank verantwortlich für die Kontrolle und
3
00:00:08.860 --> 00:00:10.179
Wiederherstellung der Konten zuständig.
Wiederherstellung Ihrer Konten.
4
00:00:10.179 --> 00:00:15.050
Bei MetaMask gehört all diese Macht dem
Besitzer eines „Hauptschlüssels“.
Auf MetaMask liegt diese Macht aber beim Inhaber des Generalschlüssels.
5
00:00:15.050 --> 00:00:18.460
Wer den Schlüssel besitzt, kontrolliert
das Wallet und damit die Konten.
Wer den Generalschlüssel hat, kontrolliert die Konten.
6
00:00:18.460 --> 00:00:21.110
Der geheime Satz zur Wiederherstellung
Deines Wallets ist der „Hauptschlüssel“.
Ihr geheime Wiederherstellungsphrase ist Ihr „Generalschlüssel“.
7
00:00:21.110 --> 00:00:26.070
Es ist eine Reihe von 12 Wörtern, welche generiert werden,
wenn MetaMask zum ersten Mal eingerichtet wird, diese erlauben dir
Dies ist eine Serie von 12 Worten, die generiert werden, wenn Sie MetaMask zum ersten Mal einrichten, und erlaubt Ihnen
8
00:00:26.070 --> 00:00:30.120
Deinen „Hauptschlüssel“ zu Deinem Wallet wieder herzustellen,
solltest Du jemals den Zugriff darauf verlieren.
Ihr Wallet und Ihr Guthaben wiederherzustellen, falls Sie jemals den Zugriff verlieren sollten.
9
00:00:30.120 --> 00:00:33.451
Es ist wichtig, dass Du Dein Wallet sicherst,
indem Du Deinen geheimen
Es ist wichtig, dass Sie Ihr Wallet sichern, indem Sie
10
00:00:33.451 --> 00:00:37.510
Wiederherstellungssatz sicher
und geheim verwahrst.
ihre geheime Wiederherstellungsphrase an einem sicheren und geheimen Ort aufbewahren.
11
00:00:37.510 --> 00:00:41.429
Wenn jemand Zugriff darauf erhält, hat er
den „Hauptschlüssel“ für Dein Wallet und kann
Wenn jemand den Zugriff darauf erhält, hat diese Person den „Generalschlüssel“ zu Ihrem Wallet und kann
12
00:00:41.429 --> 00:00:45.190
frei auf Deine Konten zugreifen und alle Gelder stehlen.
frei auf Ihr Guthaben zugreifen und es Ihnen wegnehmen.
13
00:00:45.190 --> 00:00:50.109
Um Dein MetaMask-Wallet zu sichern, musst Du Deinen
geheimen Wiederherstellungssatz sicher speichern.
Sie sollten Ihre geheime Wiederherstellungsphrase sicher aufbewahren, um Ihr MetaMask-Wallet zu schützen.
14
00:00:50.109 --> 00:00:54.930
Du kannst ihn aufschreiben, irgendwo verstecken,
in ein Schließfach legen
Sie können sie aufschreiben, irgendwo verstecken, in einem Bankschließfach aufbewahren
15
00:00:54.930 --> 00:00:57.729
oder in einen sicheren Passwort-Manager speichern.
oder einen sicheren Passwortmanager verwenden.
16
00:00:57.729 --> 00:01:01.050
Einige Benutzer gravieren ihren
Satz sogar auf eine Metallplatte.
Einige Benutzer gravieren Ihre Phrase sogar auf eine Metallplatte ein!
17
00:01:01.050 --> 00:01:04.440
Niemand, nicht einmal das Team von MetaMask,
kann Dir dabei helfen
Niemand, nicht einmal das MetaMask-Team, kann Ihnen dabei helfen,
18
00:01:04.440 --> 00:01:07.820
Dein Wallet wiederherzustellen, wenn Du Deinen
geheimen Wiederherstellungssatz verlierst.
ihr Wallet wiederherzustellen, falls Sie Ihre geheime Wiederherstellungsphrase verloren haben.
19
00:01:07.820 --> 00:01:12.072
Wenn Du Deinen geheimen Wiederherstellungssatz noch nicht
aufgeschrieben und an einem sicheren Ort aufbewahrt hast,
Falls Sie sich Ihre geheime Wiederherstellungsphrase nicht aufgeschrieben und diese an einem sicheren Ort aufbewahren,
20
00:01:12.072 --> 00:01:15.492
mach es jetzt. Wir warten solange.
machen Sie es jetzt. Wir warten.
21
00:01:15.500 --> 00:01:20.780
Und denk daran, teilen Deinen geheimen Wiederherstellungssatz
niemals: nicht einmal mit uns.
Und denken Sie daran: Teilen Sie Ihre geheime Wiederherstellungsphrase niemals mit anderen, nicht einmal mit uns.
22
00:01:20.780 --> 00:01:24.910
Wenn dich jemals jemand danach fragt,
versucht er dich zu betrügen.
Sollte Sie jemand danach fragen, ist dies ein Betrugsversuch.
23
00:01:24.910 --> 00:01:26.250
@ -112,5 +94,5 @@ Das ist alles!
24
00:01:26.250 --> 00:01:31.020
Jetzt weist Du, was ein geheimer Wiederherstellungssatz ist
und wie Du dafür sorgst, das Dein Wallete sicher bleibt.
Jetzt wissen Sie, was eine geheime Wiederherstellungsphrase ist und wie Sie Ihr Wallet sicher halten und beschützen.

View File

@ -0,0 +1,98 @@
WEBVTT
1
00:00:00.780 --> 00:00:04.580
Το MetaMask είναι ένας νέος τρόπος για να συνδέεστε σε ισότοπους και εφαρμογές.
2
00:00:04.580 --> 00:00:08.860
Στους παραδοσιακούς ιστότοπους, μια κεντρική βάση δεδομένων ή τράπεζα είναι υπεύθυνη για τον έλεγχο και
3
00:00:08.860 --> 00:00:10.179
την ανάκτηση των λογαριασμών σας.
4
00:00:10.179 --> 00:00:15.050
Αλλά στο MetaMask, ο κάτοχος του κύριου κλειδιού έχει όλη τη δύναμη στα χέρια του.
5
00:00:15.050 --> 00:00:18.460
Όποιος έχει το κλειδί, ελέγχει τους λογαριασμούς.
6
00:00:18.460 --> 00:00:21.110
Η μυστική σας φράση ανάκτησης είναι το «κύριο κλειδί» σας.
7
00:00:21.110 --> 00:00:26.070
Είναι μια σειρά από 12 λέξεις που παράγονται όταν ρυθμίσετε για πρώτη φορά το MetaMask, η οποία σας επιτρέπει
8
00:00:26.070 --> 00:00:30.120
να ανακτήσετε το πορτοφόλι σας και τα χρήματά σας εάν κάποια στιγμή χάσετε την πρόσβαση.
9
00:00:30.120 --> 00:00:33.451
Είναι σημαντικό να θωρακίσετε το πορτοφόλι σας με το να κρατήσετε τη
10
00:00:33.451 --> 00:00:37.510
μυστική σας φράση ανάκτησης απόλυτα ασφαλή και μυστική.
11
00:00:37.510 --> 00:00:41.429
Εάν κάποιος αποκτήσει πρόσβαση σε αυτήν, θα έχει το «κύριο κλειδί» για το πορτοφόλι σας και θα μπορεί
12
00:00:41.429 --> 00:00:45.190
να έχει ελεύθερη πρόσβαση και να πάρει όλα σας τα χρήματα.
13
00:00:45.190 --> 00:00:50.109
Για να θωρακίσετε το πορτοφόλι MetaMask θα πρέπει να αποθηκεύσετε με ασφάλεια την μυστική σας φράση ανάκτησης.
14
00:00:50.109 --> 00:00:54.930
Μπορείτε να την γράψετε σε ένα χαρτί, να την κρύψετε κάπου, να την βάλετε σε μια ασφαλή θυρίδα
15
00:00:54.930 --> 00:00:57.729
ή να χρησιμοποιήσετε έναν ασφαλή διαχειριστή κωδικών.
16
00:00:57.729 --> 00:01:01.050
Μερικοί χρήστες έχουν χαράξει τη φράση τους ακόμα και σε μεταλλική πλάκα!
17
00:01:01.050 --> 00:01:04.440
Κανένας, ούτε καν η ομάδα του MetaMask, δεν μπορεί να σας βοηθήσει να
18
00:01:04.440 --> 00:01:07.820
ανακτήσετε το πορτοφόλι σας εάν χάσετε τη μυστική φράση ανάκτησης.
19
00:01:07.820 --> 00:01:12.072
Αν δεν έχετε καταγράψει την μυστική σας φράση ανάκτησης και δεν την έχετε αποθηκεύσει κάπου με ασφάλεια,
20
00:01:12.072 --> 00:01:15.492
κάντε το τώρα. Θα περιμένουμε.
21
00:01:15.500 --> 00:01:20.780
Και να θυμάστε: μην μοιραστείτε ποτέ και με κανέναν τη μυστική σας φράση ανάκτησης. Ούτε καν με εμάς.
22
00:01:20.780 --> 00:01:24.910
Εάν κάποιος σας την ζητήσει κάποια στιγμή, θα προσπαθεί να σας εξαπατήσει.
23
00:01:24.910 --> 00:01:26.250
Αυτό ήταν!
24
00:01:26.250 --> 00:01:31.020
Τώρα ξέρετε τι είναι η μυστική φράση ανάκτησης και πώς να κρατήσετε το πορτοφόλι σας σίγουρο και ασφαλές.

View File

@ -6,7 +6,7 @@ MetaMask es una nueva forma de conectarse
a sitios y aplicaciones.
2
00:00:04.580 --> 00:00:08.860
00:00:04.580 --> 00:00:08.860
En los sitios web tradicionales, una base de datos
o un banco central es responsable de controlar y
@ -113,3 +113,4 @@ será con intenciones de estafarlo.
00:01:26.250 --> 00:01:31.020
Ahora ya sabe qué es una frase secreta de recuperación
y qué debe hacer para mantener protegida su cartera.

View File

@ -0,0 +1,98 @@
WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask offre une nouvelle façon de se connecter aux sites et aux applications.
2
00:00:04.580 --> 00:00:08.860
Sur les sites traditionnels, une base de données centrale ou une banque est chargée du contrôle et de
3
00:00:08.860 --> 00:00:10.179
la récupération des comptes.
4
00:00:10.179 --> 00:00:15.050
Mais sur MetaMask, tout le pouvoir appartient au détenteur de la clé maîtresse.
5
00:00:15.050 --> 00:00:18.460
Celui qui détient la clé, contrôle les comptes.
6
00:00:18.460 --> 00:00:21.110
Votre phrase de récupération secrète est votre «clé maîtresse».
7
00:00:21.110 --> 00:00:26.070
Il sagit dune série de 12 mots générés lors de la première installation de MetaMask qui vous permet
8
00:00:26.070 --> 00:00:30.120
de récupérer votre portefeuille et vos fonds, si vous en perdez laccès.
9
00:00:30.120 --> 00:00:33.451
Pour éviter tout accès non autorisé à votre portefeuille, veuillez garder votre
10
00:00:33.451 --> 00:00:37.510
phrase de récupération secrète dans un lieu sûr et sécurisé.
11
00:00:37.510 --> 00:00:41.429
Car toute personne ayant accès à votre phrase de récupération secrète, et donc à la « clé maîtresse » de votre portefeuille, pourra
12
00:00:41.429 --> 00:00:45.190
accéder librement à vos fonds et les dérober.
13
00:00:45.190 --> 00:00:50.109
Pour éviter tout accès non autorisé à votre portefeuille MetaMask, veuillez garder votre phrase de récupération secrète dans un lieu sûr et sécurisé.
14
00:00:50.109 --> 00:00:54.930
Vous pouvez lécrire sur un bout de papier et la cacher dans un lieu sûr comme dans un coffre-fort
15
00:00:54.930 --> 00:00:57.729
ou utiliser un gestionnaire de mots de passe sécurisé.
16
00:00:57.729 --> 00:01:01.050
Certains utilisateurs préfèrent même graver leur phrase de récupération secrète sur une plaque de métal !
17
00:01:01.050 --> 00:01:04.440
Personne, pas même léquipe de MetaMask, ne peut vous aider
18
00:01:04.440 --> 00:01:07.820
à récupérer votre portefeuille si vous perdez votre phrase de récupération secrète.
19
00:01:07.820 --> 00:01:12.072
Si vous navez pas encore écrit votre phrase de récupération secrète sur un bout de papier ou ne lavez pas encore cachée dans un endroit sûr,
20
00:01:12.072 --> 00:01:15.492
faites-le maintenant. Nous vous attendrons.
21
00:01:15.500 --> 00:01:20.780
Et noubliez surtout pas que vous ne devriez jamais partager votre phrase de récupération secrète avec quiconque ; pas même avec nous.
22
00:01:20.780 --> 00:01:24.910
Si quelquun vous la demande, cest quil essaie de vous escroquer.
23
00:01:24.910 --> 00:01:26.250
Voilà, cest tout !
24
00:01:26.250 --> 00:01:31.020
Maintenant vous savez ce quest une phrase de récupération secrète et ce que vous devez faire pour protéger votre portefeuille.

View File

@ -2,108 +2,93 @@ WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask साइटों और एप्लिकेशन से
जुड़ने का एक नया तरीका है।
मेटामास्क साइटों और एप्लीकेशन से जुड़ने का एक नया तरीका है।
2
00:00:04.580 --> 00:00:08.860
पारंपरिक वेबसाइटों पर, आपके खातों को नियंत्रित करने और
पुनर्प्राप्त करने के लिए एक केंद्रीय डेटाबेस या
00:00:04.580 --> 00:00:08.860
पारंपरिक वेबसाइटों पर, एक केंद्रीय डेटाबेस
या बैंक नियंत्रित करने के लिए जिम्मेदार है और
3
00:00:08.860 --> 00:00:10.179
बैंक ज़िम्मेदार होता है।
अपने खाते पुनर्प्राप्त करना
4
00:00:10.179 --> 00:00:15.050
लेकिन MetaMask पर, सारी शक्ति
मास्टर कुंजी के धारक की होती है।
लेकिन मेटामास्क पर, समस्त शक्ति मास्टर कुंजी के धारक के पास होती है।
5
00:00:15.050 --> 00:00:18.460
ो भी कुंजी रखता है, वह खातों को नियंत्रित करता है।
िसके पास कुंजी होती है, वह खातों को नियंत्रित करता है।
6
00:00:18.460 --> 00:00:21.110
आपका गुप्त रिकवरी फ्रेज़
आपकी "मास्टर कुंजी" है।
आपका गुप्त पुनर्प्राप्ति वाक्यांश आपकी "मास्टर कुंजी" है।
7
00:00:21.110 --> 00:00:26.070
यह 12 शब्दों की एक सीरीज़ होती है, जो
आपके द्वारा पहली बार MetaMask सेट करने पर जेनरेट होती है, जिससे
यह उत्पन्न होने वाले 12 शब्दों की एक श्रृंखला है
जब आप पहली बार मेटामास्क सेट करते हैं, जो अनुमति देता है
8
00:00:26.070 --> 00:00:30.120
आप कभी भी एक्सेस खोने पर अपने वॉलेट और धन को
पुनर्प्राप्त कर सकते हैं।
एक्सेस खोने की स्थिति में अपने वॉलेट और धन को रिकवर करने की सुविधा प्रदान करती है।
9
00:00:30.120 --> 00:00:33.451
यह महत्वपूर्ण है कि आप
अपने गुप्त रिकवरी फ्रेज़ को
यह महत्वपूर्ण है कि आप अपने वॉलेट को सुरक्षित रखे
10
00:00:33.451 --> 00:00:37.510
बहुत सुरक्षित और बहुत गुप्त रखकर
अपने वॉलेट को सुरक्षित रखें।
गुप्त पुनर्प्राप्ति वाक्यांश बहुत सुरक्षित, और बहुत ही गुप्त।
11
00:00:37.510 --> 00:00:41.429
अगर किसी को भी इसकी सुविधा का एक्सेस मिल जाता है, तो
उनके पास आपके वॉलेट की "मास्टर कुंजी" होगी और
यदि किसी को इसकी एक्सेस मिलती है, तो उनके पास आपके वॉलेट की "मास्टर कुंजी" होगी और वह कर सकता है
12
00:00:41.429 --> 00:00:45.190
े आपके सारे धन को आसानी से एक्सेस कर सकते हैं
ह बहुत आसानी से आपके पूरे फण्ड को एक्सेस करके उसे चुरा सकता है
13
00:00:45.190 --> 00:00:50.109
अपने MetaMask वॉलेट को सुरक्षित करने के लिए आप अपने
गुप्त रिकवरी फ्रेज़ को सुरक्षित रूप से सहेजना चाहेंगे।
अपने मेटामास्क वॉलेट को सुरक्षित रखने के लिए आपको अपने गुप्त पुनर्प्राप्ति वाक्यांश को सुरक्षित ढंग से सहेजना चाहिए।
14
00:00:50.109 --> 00:00:54.930
आप इसे लिख सकते हैं, इसे कहीं छुपा सकते हैं,
इसे सेफ़ डिपोज़िट बॉक्स में रख सकते हैं
आप इसे लिख सकते हैं, इसे कहीं छुपा सकते हैं, इसे सुरक्षित जमा बॉक्स में रख सकते हैं
15
00:00:54.930 --> 00:00:57.729
या सुरक्षित पासवर्ड मैनेजर का उपयोग कर सकत हैं।
या एक सुरक्षित पासवर्ड मैनेजर का उपयोग करें।
16
00:00:57.729 --> 00:01:01.050
कुछ उपयोगकर्ता अपने
फ्रेज़ को धातु की प्लेट पर भी उकेर कर रखते हैं!
कुछ उपयोगकर्ता अपने वाक्यांश को धातु की प्लेट पर भी उकेरते हैं!
17
00:01:01.050 --> 00:01:04.440
यदि आप अपना गुप्त रिकवरी फ्रेज़ खो देते हैं, तो
कोई भी, यहां तक कि MetaMask की टीम भी,
कोई नहीं, यहां तक कि मेटामास्क की टीम भी आपकी मदद नहीं कर सकती
18
00:01:04.440 --> 00:01:07.820
आपके वॉलेट को पुनर्प्राप्त करने में आपकी
सहायता नहीं कर सकती है।
यदि आप अपना गुप्त पुनर्प्राप्ति वाक्यांश खो देते हैं तो अपना वॉलेट पुनर्प्राप्त करें।
19
00:01:07.820 --> 00:01:12.072
यदि आपने अपना गुप्त रिकवरी फ्रेज़
लिखा नहीं है और इसे कहीं सुरक्षित संग्रहीत नहीं किया है,
यदि आपने अपने गुप्त पुनर्प्राप्ति वाक्यांश को लिखकर किसी सुरक्षित स्थान पर स्टोर नहीं किया है
20
00:01:12.072 --> 00:01:15.492
तो अभी करें। हम इंतजार करेंगे।
अभी करें। हम प्रतीक्षा करेंगे।
21
00:01:15.500 --> 00:01:20.780
और याद रखें, कभी भी अपना गुप्त रिकवरी फ्रेज़
किसी के साथ साझा न करें: हमसे भी नहीं।
और याद रखें, कभी भी अपने गुप्त पुनर्प्राप्ति वाक्यांश को किसी के भी साथ, यहां तक हमारे साथ भी, साझा नहीं करें।
22
00:01:20.780 --> 00:01:24.910
यदि कोई आपसे कभी भी इसे मांगता है, तो
वे आपके साथ धोखाधड़ी करने की कोशिश कर सकते हैं।
अगर कभी कोई आपसे इसके लिए पूछे, वे आपको धोखा देने की कोशिश कर रहे हैं।
23
00:01:24.910 --> 00:01:26.250
@ -111,5 +96,5 @@ MetaMask साइटों और एप्लिकेशन से
24
00:01:26.250 --> 00:01:31.020
अब आपको पता चल गया है कि गुप्त रिकवरी फ्रेज़ क्या है
और अपने वॉलेट को कैसे सकुशल और सुरक्षित रखा जाए।
अब आप जानते हैं कि गुप्त पुनर्प्राप्ति वाक्यांश क्या है और अपने वॉलेट को संरक्षित और सुरक्षित कैसे रखें।

View File

@ -2,13 +2,11 @@ WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask adalah cara baru untuk terhubung
ke situs dan aplikasi.
MetaMask adalah cara baru untuk terhubung ke situs dan aplikasi.
2
00:00:04.580 --> 00:00:08.860
Di situs web tradisional, database sentral
atau bank bertanggung jawab untuk mengontrol dan
00:00:04.580 --> 00:00:08.860
Di situs web biasa, basis data pusat atau bank bertanggung jawab untuk mengendalikan dan
3
00:00:08.860 --> 00:00:10.179
@ -16,56 +14,47 @@ memulihkan akun Anda.
4
00:00:10.179 --> 00:00:15.050
Tetapi di MetaMask, semua kuasa milik
pemegang kunci induk.
Namun, di MetaMask, seluruh kuasa milik pemegang kunci utama.
5
00:00:15.050 --> 00:00:18.460
Siapa pun yang memegang kunci tersebut, akan mengontrol akun.
Siapa pun yang memegang kunci, ia mengendalikan akun.
6
00:00:18.460 --> 00:00:21.110
Frasa pemulihan rahasia
adalah "kunci induk" Anda.
Frasa pemulihan rahasia Anda adalah "kunci rahasia" Anda.
7
00:00:21.110 --> 00:00:26.070
Ini adalah rangkaian 12 kata yang dibuat
saat Anda menyiapkan MetaMask pertama kali, yang memungkinkan
Frasa pemulihan ini berupa 12 kata yang dihasilkan saat pertama kali Anda menyiapkan MetaMask, yang memungkinkan
8
00:00:26.070 --> 00:00:30.120
Anda memulihkan dompet dan dana jika Anda
kehilangan akses.
Anda untuk memulihkan dompet dan dana Anda jika Anda kehilangan akses.
9
00:00:30.120 --> 00:00:33.451
Penting agar Anda mengamankan
dompet Anda dengan menjaga
Anda perlu mengamankan dompet Anda dengan menjaga
10
00:00:33.451 --> 00:00:37.510
frasa pemulihan rahasia
Anda dengan sangat aman dan sangat rahasia.
frasa pemulihan rahasia dengan sangat aman, dan sangat rahasia.
11
00:00:37.510 --> 00:00:41.429
Jika seseorang mendapatkan aksesnya, mereka akan memiliki
"kunci induk" ke dompet Anda dan dapat
Jika seseorang mendapatkan akses ke frasa tersebut, ia akan memiliki "kunci utama" ke dompet Anda dan dapat
12
00:00:41.429 --> 00:00:45.190
mengakses secara bebas dan mengambil semua dana Anda.
dengan bebas mengakses serta mengambil seluruh dana Anda.
13
00:00:45.190 --> 00:00:50.109
Untuk mengamankan dompet MetaMask, Anda pasti ingin
menyimpan frasa pemulihan rahasia Anda secara aman.
Untuk mengamankan dompet MetaMask Anda, Anda perlu menyimpan frasa pemulihan rahasia dengan aman.
14
00:00:50.109 --> 00:00:54.930
Anda dapat menuliskannya, menyembunyikannya di suatu tempat,
menempatkannya di kotak deposit yang aman
Anda dapat menuliskannya, menyembunyikannya, menaruhnya di brankas,
15
00:00:54.930 --> 00:00:57.729
@ -73,23 +62,19 @@ atau menggunakan pengelola kata sandi yang aman.
16
00:00:57.729 --> 00:01:01.050
Beberapa pengguna bahkan mengukir frasa
mereka pada pelat logam!
Sebagian pengguna bahkan mengukir frasa yang mereka miliki di lempengan logam!
17
00:01:01.050 --> 00:01:04.440
Tidak ada seorang pun, bahkan tidak juga tim
di MetaMask, dapat membantu Anda
Tidak seorang pun, bahkan tim di MetaMask sekalipun, dapat membantu Anda
18
00:01:04.440 --> 00:01:07.820
memulihkan dompet Anda jika Anda menghilangkan
frasa pemulihan rahasia Anda.
untuk memulihkan dompet jika Anda kehilangan frasa pemulihan rahasia Anda.
19
00:01:07.820 --> 00:01:12.072
Jika belum menuliskan frasa pemulihan rahasia Anda
dan menyimpannya di suatu tempat yang aman,
Jika Anda belum menuliskan frasa pemulihan rahasia dan menyimpannya di tempat yang aman,
20
00:01:12.072 --> 00:01:15.492
@ -97,19 +82,17 @@ lakukan sekarang. Kami akan menunggu.
21
00:01:15.500 --> 00:01:20.780
Dan ingat, jangan membagikan frasa pemulihan rahasia
Anda kepada siapa pun: bahkan tidak kepada kami.
Dan ingat, jangan pernah membagikan frasa pemulihan rahasia kepada siapa pun: bahkan kepada kami.
22
00:01:20.780 --> 00:01:24.910
Jika ada yang menanyakannya,
mereka akan mencoba menipu Anda.
Jika ada orang yang menanyakannya kepada Anda, mereka mencoba menipu Anda.
23
00:01:24.910 --> 00:01:26.250
Begitulah!
Itu saja!
24
00:01:26.250 --> 00:01:31.020
Sekarang, Anda tahu apa itu frasa pemulihan rahasia
dan cara menjaga dompet Anda tetap aman.
Sekarang, Anda mengetahui apa itu frasa pemulihan rahasia dan cara mempertahankan agar dompet Anda tetap aman dan terjaga.

View File

@ -2,108 +2,91 @@ WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask は
をサイトとアプリケーションにつなぐ新たな方法です。
MetaMask はサイトやアプリケーションに接続する新たな手段となります。
2
00:00:04.580 --> 00:00:08.860
従来のウェブサイト上では、中央データベース
または銀行がアカウントの制御と
00:00:04.580 --> 00:00:08.860
従来の Web サイトでは、中央データベースや銀行がアカウントの
3
00:00:08.860 --> 00:00:10.179
回復の責任を負います。
管理と復元を行います。
4
00:00:10.179 --> 00:00:15.050
しかし、MetaMask 上では、全ての権限は
マスターキーの保持者に属します。
一方 MetaMask では、マスターキーの所有者がすべての権限を握っています。
5
00:00:15.050 --> 00:00:18.460
当該のキーの保持者が、アカウントを制御します。
キーを持っている人がアカウントを管理できるのです。
6
00:00:18.460 --> 00:00:21.110
あなたのシークレット リカバリー フレーズ
があなたの「マスターキー」です。
秘密のリカバリーフレーズがその「マスターキー」となります。
7
00:00:21.110 --> 00:00:26.070
これは一連の 12 の単語で
あなたが最初に MetaMask を設定した際に自動生成され、これにより
これは MetaMask のセットアップ時に生成される 12 単語からなるフレーズで、
8
00:00:26.070 --> 00:00:30.120
あなたは万が一アクセス出来なくなった場合に
ウォレットと資金を復元できます。
万が一アクセスできなくなった際にウォレットと資金を復元できます。
9
00:00:30.120 --> 00:00:33.451
ウォレットの安全性を確保することは非常に重要
であり、あなたの
ウォレットの安全を保つため、
10
00:00:33.451 --> 00:00:37.510
シークレット リカバリー フレーズ
を非常に安全かつ秘密に保つことで実現します。
秘密のリカバリーフレーズは厳重に保管し、絶対に秘密にしてください。
11
00:00:37.510 --> 00:00:41.429
誰かがそれにアクセスすれば、彼らは
あなたのウォレットの「マスターキー」を得て、
誰かの手に渡ると、ウォレットへの「マスターキー」として使用され、
12
00:00:41.429 --> 00:00:45.190
あなたの資金に自由にアクセスして全てを奪えます。
すべての資金にアクセスし盗むことが可能になります。
13
00:00:45.190 --> 00:00:50.109
MetaMask ウォレットの安全性を確保するため
あなたは シークレット リカバリー フレーズを安全に保存したくなるでしょう。
MetaMask ウォレットを安全に保つため、秘密のリカバリーフレーズは大切に保管してください。
14
00:00:50.109 --> 00:00:54.930
それを書き留めたり、どこかへ隠したり、
セーフティボックスに入れたり
書き留めて、どこかに隠したり、安全な金庫に保管したり、
15
00:00:54.930 --> 00:00:57.729
または安全確保のためのパスワードマネジャーを使用できます。
セキュアなパスワードマネージャーを使用することもできます。
16
00:00:57.729 --> 00:01:01.050
自分たちの
フレーズをメタルプレートに彫るユーザーさえいます!
金属製のプレートにフレーズを彫るユーザーもいます!
17
00:01:01.050 --> 00:01:04.440
何者も、
MetaMask のチームのメンバーですら、あなたが
秘密のリカバリーフレーズをなくした場合、MetaMask チームを含め、
18
00:01:04.440 --> 00:01:07.820
シークレット リカバリー フレーズを無くしたら
あなたのウォレットを復元する手助けはできません。
誰にもウォレットの復元を行うことはできません。
19
00:01:07.820 --> 00:01:12.072
あなたがシークレット リカバリー
フレーズを書き留め安全な場所に保管していないのならば、
秘密のリカバリーフレーズを書き留めて安全な場所に保管していない場合は、
20
00:01:12.072 --> 00:01:15.492
ぜひ今それを実行してください。お待ちしております。
今すぐ行ってください。その間お待ちします。
21
00:01:15.500 --> 00:01:20.780
さらに、あなたのシークレット リカバリー
フレーズを誰とも決して共有しないことを忘れないでください。私たちでさえも。
繰り返しになりますが、秘密のリカバリーフレーズは MetaMask チームを含め、絶対に誰にも教えないでください。
22
00:01:20.780 --> 00:01:24.910
それを尋ねる者がいたら、
彼らはあなたを騙そうとしているのです。
誰かに尋ねられたら、それは詐欺だと思ってください。
23
00:01:24.910 --> 00:01:26.250
@ -111,5 +94,5 @@ MetaMask のチームのメンバーですら、あなたが
24
00:01:26.250 --> 00:01:31.020
これでシークレット リカバリ フレーズ
が何であるか、あなたのウォレットと資金の安全を確保する方法が判りました。
これで秘密のリカバリーフレーズとウォレットの安全を保つ方法の説明は終わりです。

View File

@ -2,114 +2,97 @@ WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask는 사이트와 애플리케이션에
연결할 수 있는 새로운 방법입니다.
MetaMask는 사이트와 애플리케이션을 연결하는 새로운 방법입니다.
2
00:00:04.580 --> 00:00:08.860
전통적인 웹사이트에서는 중앙 데이터베이스
또는 은행에게 계정을 제어 및
00:00:04.580 --> 00:00:08.860
기존의 웹사이트는 중앙 데이터베이스나 은행에 계정 복구의
3
00:00:08.860 --> 00:00:10.179
복구할 책임이 있습니다.
책임이 있습니다.
4
00:00:10.179 --> 00:00:15.050
하지만 MetaMask에서는 모든 권한이
마스터 키의 소유자에게 있습니다.
MetaMask에서는 모든 권한이 마스터 키 소유자에게 있습니다.
5
00:00:15.050 --> 00:00:18.460
키를 보유하고 있는 사람은 계정을 제어합니다.
마스터 키를 소유한 사람이 해당 계정의 소유자가 됩니다.
6
00:00:18.460 --> 00:00:21.110
계정 시드 구문은
"마스터 키"입니다.
여러분이 가지고 계시는 비밀 복구 구문이 바로 '마스터 키'입니다.
7
00:00:21.110 --> 00:00:26.070
먼저 MetaMask를 설정하면, 일련의
12단어가 생성되어,
이는 처음 MetaMask 계정을 만들 때 생성된 12개의 단어로 이루어진 암호이며
8
00:00:26.070 --> 00:00:30.120
접근 권한을 상실했을 때 지갑과
자금을 복구할 수 있습니다.
이를 사용하면 유사시에 지갑과 자금을 회복할 수 있습니다.
9
00:00:30.120 --> 00:00:33.451
계정 시드 구문을
안전하게 비밀을
따라서 지갑을 안전하게 지키려면 이러한 비밀 복구 구문을
10
00:00:33.451 --> 00:00:37.510
유지하여 지갑을 안전하게
지키는 것이 중요합니다.
매우 안전한 비밀장소에 보관하는 것이 중요합니다.
11
00:00:37.510 --> 00:00:41.429
계정 시드 구문에 액세스하는 사람에게는
지갑에 대한 "마스터 키"가 있어 자유롭게
누구든지 비밀 복구 구문을 알게 되면 해당 지갑에 대한 '마스터 키'를 손에 넣게 되며
12
00:00:41.429 --> 00:00:45.190
액세스하여 모든 자금을 가져갈 수 있습니다.
해당 계정의 자금을 모두 인출할 수 있게 됩니다.
13
00:00:45.190 --> 00:00:50.109
MetaMask 지갑을 안전하게 보호하려면, 계정 시드
구문을 저장할 수 있습니다.
MetaMask 지갑의 보안을 유지하려면 비밀 복구 구문을 안전하게 저장해야 합니다.
14
00:00:50.109 --> 00:00:54.930
계정 시드 구문을 적어서 어딘가에 숨겨두거나
대여 금고에 두거나
이를 적어 별도의 장소나 안전 금고에 보관할 수도 있고
15
00:00:54.930 --> 00:00:57.729
보안 암호 관리자를 사용할 수 있습니다.
비밀번호 관리자를 이용하셔도 좋습니다.
16
00:00:57.729 --> 00:01:01.050
일부 사용자는 자신의 구문을
금속판에 새겨두기도 합니다!
사용자에 따라 이를 금속판에 새겨 놓기도 합니다!
17
00:01:01.050 --> 00:01:04.440
계정 시드 구문을 잊으면,
MetaMask의 팀이라고
이러한 비밀 복구 구문을 분실하면 아무도, 심지어 MetaMask도
18
00:01:04.440 --> 00:01:07.820
해도 지갑을
복구할 수 없습니다.
계정 복구를 도와드릴 수 없습니다.
19
00:01:07.820 --> 00:01:12.072
게정 시드 구문을 적어두지
않으면, 안전한 장소에
아직 비밀 복구 구문을 적어 안전한 곳에 보관하지 않으셨다면,
20
00:01:12.072 --> 00:01:15.492
보관하십시오. 기다리겠습니다.
지금 바로 하세요. 기다리겠습니다.
21
00:01:15.500 --> 00:01:20.780
다른 사람과 계정 시드 구문을
고유하면 안 됩니다. 당사하고도 공유하지 마십시오.
절대로 본인의 비밀 복구 구문을 다른 사람에게 알려주지 마세요. MetaMask에도 알리면 안 됩니다.
22
00:01:20.780 --> 00:01:24.910
계정 시드 구문을 요청하는 사람은
사기를 치려고 하는 것입니다.
이를 묻는 사람이 있다면 피싱 범죄자임에 틀림없습니다.
23
00:01:24.910 --> 00:01:26.250
이제 다 됐습니다.
그렇습니다!
24
00:01:26.250 --> 00:01:31.020
이제 여러분은 계정 시드 구문이 무엇이고
지갑을 안전하게 보관하는 방법을 알고 있습니다.
이제 비밀 복구 구문과 지갑을 안전하게 보관하는 방법에 대하여 확인하였습니다.

View File

@ -2,108 +2,108 @@ WEBVTT
1
00:00:00.780 --> 00:00:04.580
O MetaMask é um novo jeito de se conectar
a sites e aplicativos.
A MetaMask é uma nova forma
de se conectar a sites e aplicativos.
2
00:00:04.580 --> 00:00:08.860
Em websites tradicionais, um banco ou base de dados central
é responsável por controlar e
00:00:04.580 --> 00:00:08.860
Em sites tradicionais, uma base de dados central
ou um banco é responsável por controlar e
3
00:00:08.860 --> 00:00:10.179
recuperar as suas contas.
recuperar suas contas.
4
00:00:10.179 --> 00:00:15.050
Mas, no MetaMask, todo o poder pertence
Mas, na MetaMask, todo o poder pertence
ao titular de uma chave-mestra.
5
00:00:15.050 --> 00:00:18.460
Quem quer que detenha a chave controla as contas.
Quem tiver a chave controla as contas.
6
00:00:18.460 --> 00:00:21.110
A sua frase de recuperação secreta
é a sua "chave-mestra".
Sua frase de recuperação secreta
é sua "chave-mestra".
7
00:00:21.110 --> 00:00:26.070
É uma série de 12 palavras que são geradas
quando você configura o MetaMask na primeira vez, o que permite que
Ela é uma série de 12 palavras geradas quando você
configura a MetaMask pela primeira vez, a qual permite
8
00:00:26.070 --> 00:00:30.120
você recupere a sua carteira e recursos, caso você
venha a perder o acesso.
recuperar sua carteira e fundos
caso você perca o acesso.
9
00:00:30.120 --> 00:00:33.451
É importante que você mantenha protegida
a sua carteira ao manter a sua
É importante que você proteja
sua carteira guardando sua
10
00:00:33.451 --> 00:00:37.510
frase de recuperação secreta
muito segura e muito secreta.
de forma bem segura e sigilosa.
11
00:00:37.510 --> 00:00:41.429
Caso alguém obtenha acesso a ela, essa pessoa terá
a "chave-mestra" para a sua carteira e poderá
Se alguém tiver acesso a ela, terá em mãos
a "chave-mestra" da sua carteira e poderá
12
00:00:41.429 --> 00:00:45.190
acessá-la livremente e tome todos os seus recursos.
acessar e retirar livremente todos os seus fundos.
13
00:00:45.190 --> 00:00:50.109
A fim de proteger a sua carteira MetaMask, você desejará
manter em segurança a sua frase de recuperação secreta.
Para proteger sua carteira MetaMask, recomenda-se
salvar sua frase de recuperação secreta de modo seguro.
14
00:00:50.109 --> 00:00:54.930
Você pode escrevê-la, escondê-la em algum lugar,
colocá-la em um cofre
Você pode anotá-la por escrito, escondê-la
em algum lugar, colocá-la em um cofre
15
00:00:54.930 --> 00:00:57.729
ou usar um gerenciador de senhas seguras.
ou usar um gerenciador de senhas protegido.
16
00:00:57.729 --> 00:01:01.050
Alguns usuários até mesmo gravam sua
frase em uma placa de metal!
Alguns usuários até mesmo gravam
a frase em uma placa de metal!
17
00:01:01.050 --> 00:01:04.440
Ninguém, nem mesmo a equipe
na MetaMask, pode lhe ajudar
da MetaMask, pode ajudar você
18
00:01:04.440 --> 00:01:07.820
a recuperar a sua carteira, caso você perca
a sua frase de recuperação secreta.
a recuperar sua carteira caso perca
sua frase de recuperação secreta.
19
00:01:07.820 --> 00:01:12.072
Caso você não tenha escrito a sua frase de recuperação
secreta e a tenha armazenado em algum lugar seguro,
Se não tiver anotado por escrito sua frase de recuperação
secreta e a armazenado em um lugar seguro,
20
00:01:12.072 --> 00:01:15.492
faça isso agora. Iremos aguardar.
faça isso agora. A gente espera.
21
00:01:15.500 --> 00:01:20.780
E lembre-se de jamais compartilhar a sua frase de recuperação
secreta com ninguém: nem mesmo conosco.
E lembre-se: nunca compartilhe sua frase de recuperação
secreta com ninguém, nem mesmo conosco.
22
00:01:20.780 --> 00:01:24.910
Caso alguém venha a lhe pedir a sua frase de recuperação secreta,
essa pessoa está tentando dar um golpe em você.
Se alguém a pedir a você,
é uma tentativa de fraude.
23
00:01:24.910 --> 00:01:26.250
@ -111,5 +111,6 @@ essa pessoa está tentando dar um golpe em você.
24
00:01:26.250 --> 00:01:31.020
Agora, você sabe o que é uma frase de recuperação secreta
e como manter a sua carteira protegida e segura.
Agora você sabe o que é uma frase de recuperação
secreta e como manter sua carteira segura.

View File

@ -6,9 +6,8 @@ MetaMask — это новый способ подключения
к сайтам и приложениям.
2
00:00:04.580 --> 00:00:08.860
На традиционных сайтах центральная база данных
или банк несет ответственность за контроль и
00:00:04.580 --> 00:00:08.860
На традиционных сайтах центральная база данных или банк отвечает за контроль и
3
00:00:08.860 --> 00:00:10.179
@ -16,80 +15,72 @@ MetaMask — это новый способ подключения
4
00:00:10.179 --> 00:00:15.050
На MetaMask все полномочия находятся
в руках владельца мастер-ключа.
Но в MetaMask все полномочия в руках
обладателя главного ключа.
5
00:00:15.050 --> 00:00:18.460
Тот, в чьих руках находится ключ, контролирует счета.
Тот, кто имеет этот ключ, контролирует счета.
6
00:00:18.460 --> 00:00:21.110
Ваша секретная фраза восстановления
— это ваш «мастер-ключ».
Ваша секретная фраза восстановления — это ваш главный ключ.
7
00:00:21.110 --> 00:00:26.070
Это набор из 12 слов, которые генерируются
при первой настройке MetaMask, он позволяет
Это последовательность из 12 слов, которые генерируются при первой настройке MetaMask и позволяет
8
00:00:26.070 --> 00:00:30.120
вам восстанавливать ваш кошелек и средства, если вы
теряете к ним доступ.
вам восстановить свой кошелек и средства, если вы
когда-либо утратите доступ к ним.
9
00:00:30.120 --> 00:00:33.451
Важно, чтобы вы обезопасили
свой кошелек, храня вашу
свой кошелек, сохранив
10
00:00:33.451 --> 00:00:37.510
секретную фразу восстановления
в очень надежном и тайном месте.
секретную фразу для восстановления
в очень надежном месте и в полной тайне.
11
00:00:37.510 --> 00:00:41.429
Если кто-то получит доступ к ней, у этого человека окажется в руках
«мастер-ключ» от вашего кошелька, и он сможет
Если кто-то узнает ее, у этого человека будет
главный ключ к вашему кошельку, и он сможет
12
00:00:41.429 --> 00:00:45.190
распоряжаться им и завладеть всеми вашими средствами.
получить свободный доступ ко всем вашим средствам и забрать их.
13
00:00:45.190 --> 00:00:50.109
Чтобы обезопасить ваш кошелек MetaMask,
сохраните секретную фразу восстановления в безопасном месте.
Чтобы защитить кошелек MetaMask, вам необходимо безопасно сохранить секретную фразу восстановления.
14
00:00:50.109 --> 00:00:54.930
Вы можете записать ее, спрятать ее где-то,
положить ее в банковский сейф
Вы можете записать ее и спрятать куда-нибудь, положить в сейф
15
00:00:54.930 --> 00:00:57.729
или воспользоваться безопасным диспетчером паролей.
или использовать безопасный менеджер паролей.
16
00:00:57.729 --> 00:01:01.050
Некоторые пользователи даже гравируют свою
фразу на металлической пластине!
Некоторые пользователи даже гравируют свою фразу на металлической пластине!
17
00:01:01.050 --> 00:01:04.440
Никто, даже команда
MetaMask, не сможет помочь вам
Никто, даже команда MetaMask, не сможет вам помочь
18
00:01:04.440 --> 00:01:07.820
восстановить ваш кошелек, если вы потеряете
вашу секретную фразу восстановления.
восстановить кошелек, если вы потеряете секретную фразу для восстановления.
19
00:01:07.820 --> 00:01:12.072
Если вы еще не записали секретную фразу
восстановления и не поместили ее в надежное место,
Если вы не записали свою секретную фразу для восстановления и не сохранили ее в безопасном месте,
20
00:01:12.072 --> 00:01:15.492
@ -97,13 +88,11 @@ MetaMask, не сможет помочь вам
21
00:01:15.500 --> 00:01:20.780
И помните, никогда не сообщайте свою секретную фразу
восстановления никому: даже нам.
И помните: никогда никому не сообщайте свою секретную фразу для восстановления, даже нам.
22
00:01:20.780 --> 00:01:24.910
Если кто-нибудь когда-либо спросит у вас ее,
этот человек пытается вас обмануть.
Если кто-то когда-нибудь попросит вас предоставить ее, этот человек пытается вас обмануть.
23
00:01:24.910 --> 00:01:26.250
@ -111,5 +100,5 @@ MetaMask, не сможет помочь вам
24
00:01:26.250 --> 00:01:31.020
Теперь вы знаете, что такое секретная фраза восстановления
и как обезопасить ваш кошелек.
Теперь вы знаете, что такое секретная фраза для восстановления и как сохранить свой кошелек в целости и сохранности.

View File

@ -6,7 +6,7 @@ Ang MetaMask ay isang bagong paraan para kumonekta
sa mga site at application.
2
00:00:04.580 --> 00:00:08.860
00:00:04.580 --> 00:00:08.860
Sa mga tradisyonal na website, ang isang central database
o bangko ang magiging responsable sa pagkontrol at
@ -113,3 +113,4 @@ sinusubukan ka nilang i-scam.
00:01:26.250 --> 00:01:31.020
Ngayon ay alam mo na kung ano ang lihim na recovery phrase
at kung paano mapapanatiling ligtas ang iyong wallet.

View File

@ -0,0 +1,116 @@
WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask site ve uygulamalara
bağlanmanın yeni bir yoludur.
2
00:00:04.580 --> 00:00:08.860
Geleneksel web sitelerinde,
merkezi bir veritabanı veya banka
3
00:00:08.860 --> 00:00:10.179
hesaplarınızı korumaktan sorumludur.
4
00:00:10.179 --> 00:00:15.050
Ama MetaMask'ta tüm güç
ana anahtar sahibine aittir.
5
00:00:15.050 --> 00:00:18.460
Anahtar kimdeyse hesapları o kontrol eder.
6
00:00:18.460 --> 00:00:21.110
Gizli kurtarma ifadeniz
sizin "ana anahtarınızdır".
7
00:00:21.110 --> 00:00:26.070
MetaMask'ı ilk kurduğunuzda oluşturulan
12 sözcükten oluşan bir dizi olup
8
00:00:26.070 --> 00:00:30.120
erişiminizi kaybettiğiniz takdirde
cüzdanınızı ve paralarınızı kurtarabilmenize olanak sağlar.
9
00:00:30.120 --> 00:00:33.451
Gizli kurtarma ifadenizi
çok güvenli ve çok gizli tutarak
10
00:00:33.451 --> 00:00:37.510
cüzdanınızı korumanız
önemlidir.
11
00:00:37.510 --> 00:00:41.429
Gizli kurtarma ifadenize sahip olan kişi
cüzdanınızın "ana anahtarı"na sahip olacak ve
12
00:00:41.429 --> 00:00:45.190
serbestçe erişim sağlayıp tüm paranızı alabilecektir.
13
00:00:45.190 --> 00:00:50.109
MetaMask cüzdanınızı korumak için gizli kurtarma
ifadenizin güvenli bir şekilde saklamak isteyeceksiniz.
14
00:00:50.109 --> 00:00:54.930
Yazıp bir yere saklayabilir,
güvenli bir kasaya koyabilirsiniz
15
00:00:54.930 --> 00:00:57.729
veya güvenli bir şifre yöneticisi kullanabilirsiniz.
16
00:00:57.729 --> 00:01:01.050
İfadelerini metal bir levhaya kazıyan
kullanıcılar bile görülmüştür!
17
00:01:01.050 --> 00:01:04.440
Gizli kurtarma ifadenizi kaybettiğiniz takdirde
MetaMask ekibi dahil olmak üzere hiç kimse
18
00:01:04.440 --> 00:01:07.820
cüzdanınızı kurtarmanıza
yardımcı olamaz.
19
00:01:07.820 --> 00:01:12.072
Gizli kurtarma ifadenizi yazmadıysanız veya
güvenli bir yere saklamadıysanız
20
00:01:12.072 --> 00:01:15.492
bunu şimdi yapın. Bekleyeceğiz.
21
00:01:15.500 --> 00:01:20.780
Ayrıca gizli kurtarma ifadenizi asla
biz dahil hiç kimse ile paylaşmamanız gerektiğini unutmayın.
22
00:01:20.780 --> 00:01:24.910
Birisi gizli kurtarma ifadenizi sizden istiyorsa
sizi dolandırmaya çalışıyordur.
23
00:01:24.910 --> 00:01:26.250
Bu kadar!
24
00:01:26.250 --> 00:01:31.020
Artık gizli kurtarma ifadesinin ne olduğunu ve
cüzdanınızı nasıl güvende tutacağınızı biliyorsunuz.

View File

@ -2,114 +2,114 @@ WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask là cách thức mới để kết nối
với các trang web và ứng dụng.
MetaMask là một cách mới để kết nối
đến các trang web và ứng dụng.
2
00:00:04.580 --> 00:00:08.860
Trên các trang web truyền thống, một cơ sở dữ liệu trung tâm
hay ngân hàng sẽ chịu trách nhiệm kiểm soát và
00:00:04.580 --> 00:00:08.860
Trên các trang web truyền thống, cơ sở dữ liệu trung tâm
hoặc ngân hàng sẽ chịu trách nhiệm kiểm soát và
3
00:00:08.860 --> 00:00:10.179
khôi phục các tài khoản của bạn.
khôi phục tài khoản của bạn.
4
00:00:10.179 --> 00:00:15.050
Tuy nhiên, trên MetaMask, toàn bộ quyền sẽ thuộc về
người nắm giữ khóa chính.
Nhưng trên MetaMask, tất cả quyền lực thuộc về
người nắm giữ chìa khóa chính.
5
00:00:15.050 --> 00:00:18.460
Người có khóa chính sẽ kiểm soát được tài khoản.
Ai nắm giữ chìa khóa, người đó kiểm soát tài khoản.
6
00:00:18.460 --> 00:00:21.110
Cụm mật khẩu khôi phục bí mật
“khóa chính” của bạn.
Cụm từ khôi phục bí mật
"chìa khóa chính" của bạn.
7
00:00:21.110 --> 00:00:26.070
Đây là chuỗi gồm 12 từ được tạo
vào lần đầu tiên bạn thiết lập MetaMask, chuỗi này cho phép
Đó là một chuỗi 12 từ được tạo ra
khi bạn thiết lập MetaMask lần đầu tiên, cho phép
8
00:00:26.070 --> 00:00:30.120
bạn khôi phục ví và tiền của mình nếu
bạn bị mất quyền truy cập.
bạn khôi phục ví và tiền của mình nếu bị mất quyền truy cập.
9
00:00:30.120 --> 00:00:33.451
Bạn cần phải bảo vệ an toàn cho
ví của mình bằng cách lưu giữ
Điều quan trọng là bạn phải bảo mật
cho ví của mình bằng cách cất giữ
10
00:00:33.451 --> 00:00:37.510
cụm mật khẩu khôi phục bí mật
thật an toàn và bí mật.
cụm từ khôi phục bí mật ở một nơi
cực kỳ an toàn và bí mật.
11
00:00:37.510 --> 00:00:41.429
Nếu ai đó có được cụm mật khẩu khôi phục bí mật của bạn thì người đó sẽ có
“khóa chính” cho ví của bạn và có thể
Nếu bất kỳ ai có quyền truy cập, họ sẽ biết
"chìa khóa chính" để vào ví của bạn và có thể
12
00:00:41.429 --> 00:00:45.190
tự do truy cập và lấy toàn bộ tiền của bạn.
tự do truy cập và lấy hết tiền của bạn.
13
00:00:45.190 --> 00:00:50.109
Để bảo vệ an toàn cho ví MetaMask, bạn cần
lưu giữ cụm mật khẩu khôi phục bí mật một cách an toàn.
Để bảo mật cho ví MetaMask của mình, bạn sẽ cần
cất giữ cụm từ khôi phục bí mật ở một nơi an toàn.
14
00:00:50.109 --> 00:00:54.930
Bạn có thể chép lại và giấu ở một nơi nào đó,
cất trong hộp ký gửi an toàn
Hãy viết ra giấy, giấu ở đâu đó,
bỏ vào hộp ký gửi an toàn
15
00:00:54.930 --> 00:00:57.729
hoặc dùng một trình quản lý mật khẩu an toàn.
hoặc sử dụng trình quản lý mật khẩu an toàn.
16
00:00:57.729 --> 00:01:01.050
Một số người dùng thậm chí còn khắc
cụm mật khẩu của họ lên một tấm kim loại!
cụm từ của họ lên một tấm kim loại!
17
00:01:01.050 --> 00:01:04.440
Không một ai, kể cả đội ngũ
tại MetaMask, có thể giúp bạn
Sẽ không có ai, kể cả nhóm
MetaMask, có thể giúp bạn
18
00:01:04.440 --> 00:01:07.820
khôi phục lại ví nếu bạn đánh mất
cụm mật khẩu khôi phục bí mật của mình.
khôi phục ví nếu bạn làm mất
cụm từ khôi phục bí mật.
19
00:01:07.820 --> 00:01:12.072
Nếu chưa ghi lại cụm mật khẩu khôi phục bí mật
của mình và lưu giữ ở nơi an toàn,
Nếu bạn chưa viết cụm từ khôi phục bí mật
ra giấy và cất giữ ở một nơi nào đó an toàn,
20
00:01:12.072 --> 00:01:15.492
thì bạn hãy thực hiện ngay bây giờ. Chúng tôi sẽ chờ bạn.
thì bạn cần thực hiện ngay. Chúng tôi sẽ đợi.
21
00:01:15.500 --> 00:01:20.780
đừng bao giờ chia sẻ cụm mật khẩu khôi phục
bí mật với bất kỳ ai: kể cả chúng tôi.
hãy nhớ, không bao giờ chia sẻ cụm từ khôi phục
bí mật của bạn với bất kỳ ai: ngay cả chúng tôi.
22
00:01:20.780 --> 00:01:24.910
Nếu ai đó hỏi bạn cụm mật khẩu khôi phục bí mật,
thì họ đang cố gắng lừa đảo bạn.
Nếu bất kỳ ai hỏi bạn về cụm từ khôi phục
bí mật, thì họ đang cố lừa bạn đó.
23
00:01:24.910 --> 00:01:26.250
Xin hãy ghi nhớ!
Đó là tất cả những gì bạn cần ghi nhớ!
24
00:01:26.250 --> 00:01:31.020
Bây giờ bạn đã biết cụm mật khẩu khôi phục bí mật
là gì và cách bảo vệ ví của bạn an toàn và bảo mật.
Bây giờ bạn đã biết cụm từ khôi phục bí mật là gì
và cách để đảm bảo an toàn và bảo mật cho ví của bạn.

View File

@ -0,0 +1,98 @@
WEBVTT
1
00:00:00.780 --> 00:00:04.580
MetaMask是连接站点和应用程序的一种新方法。
2
00:00:04.580 --> 00:00:08.860
在传统网站上,中央数据库或银行负责控制和
3
00:00:08.860 --> 00:00:10.179
恢复您的账户。
4
00:00:10.179 --> 00:00:15.050
但在MetaMask所有的权限都属于主密钥的持有者。
5
00:00:15.050 --> 00:00:18.460
谁拿着密钥,谁就控制着账户。
6
00:00:18.460 --> 00:00:21.110
您的私钥助记词是您的“主密钥”。
7
00:00:21.110 --> 00:00:26.070
这是在您第一次设置MetaMask时生成的12个单词的字串
8
00:00:26.070 --> 00:00:30.120
如果您一旦失去访问权限,可以使用该助记词恢复您的钱包和资金。
9
00:00:30.120 --> 00:00:33.451
重要的是,您应通过非常保险而私密的方式保护您的
10
00:00:33.451 --> 00:00:37.510
私钥助记词的安全,从而确保您的钱包安全。
11
00:00:37.510 --> 00:00:41.429
如果有人可以获取您的私钥助记词,他们将拥有您钱包的“主密钥”,可以
12
00:00:41.429 --> 00:00:45.190
自由访问并拿走您的所有资金。
13
00:00:45.190 --> 00:00:50.109
为了保护MetaMask钱包的安全您需要安全地保存您的私钥助记词。
14
00:00:50.109 --> 00:00:54.930
您可以把它写下来,藏在某处,放在保险箱里,
15
00:00:54.930 --> 00:00:57.729
或者使用安全的密码管理器保存。
16
00:00:57.729 --> 00:01:01.050
一些用户甚至将他们的助记词刻在金属板上!
17
00:01:01.050 --> 00:01:04.440
如果您丢失了私钥助记词没有人能帮助您找回钱包即使是MetaMask
18
00:01:04.440 --> 00:01:07.820
的团队也毫无办法。
19
00:01:07.820 --> 00:01:12.072
如果您尚未写下您的私钥助记词并将其存储在安全的地方,
20
00:01:12.072 --> 00:01:15.492
请即刻着手做此事。我们会等待您的。
21
00:01:15.500 --> 00:01:20.780
记住,永远不要与任何人分享您的私钥助记词:即便是我们也不可以。
22
00:01:20.780 --> 00:01:24.910
如果有人向您索要私钥助记词,他们就是妄图欺诈您。
23
00:01:24.910 --> 00:01:26.250
就是这样!
24
00:01:26.250 --> 00:01:31.020
现在,您了解了什么是私钥助记词,以及如何确保您的钱包安全。

View File

@ -10,7 +10,7 @@
<body style="width:357px; height:600px;">
<div id="app-content">
<img class="loading-logo" src="./images/logo/metamask-fox.svg" alt="" />
<img class="loading-spinner" src="./images/spinner.gif" alt="" />
<img class="loading-spinner" src="./images/spinner.gif" alt="" />
</div>
<div id="popover-content"></div>
<script src="./globalthis.js" type="text/javascript" charset="utf-8"></script>

View File

@ -12,9 +12,7 @@ function tryImport(...fileNames) {
function importAllScripts() {
const startImportScriptsTime = Date.now();
// applyLavaMoat has been hard coded to "true" as
// tryImport('./runtime-cjs.js') is giving issue with XMLHttpRequest object which is not avaialble to service worker.
// we need to dynamically inject values of applyLavaMoat once this is fixed.
// value of applyLavaMoat below is dynamically replaced at build time with actual value
const applyLavaMoat = true;
tryImport('./globalthis.js');
@ -25,14 +23,16 @@ function importAllScripts() {
tryImport('./lockdown-more.js');
tryImport('./policy-load.js');
} else {
tryImport('./init-globals.js');
tryImport('./lockdown-install.js');
tryImport('./lockdown-more.js');
tryImport('./lockdown-run.js');
tryImport('./lockdown-more.js');
tryImport('./runtime-cjs.js');
}
const fileList = [
// The list of files is injected at build time by replacing comment below with comma separated strings of file names
// https://github.com/MetaMask/metamask-extension/blob/496d9d81c3367931031edc11402552690c771acf/development/build/scripts.js#L406
/** FILE NAMES */
];
@ -48,8 +48,3 @@ function importAllScripts() {
// Placing script import call here ensures that scripts are inported each time service worker is activated.
importAllScripts();
/**
* An open issue is changes in this file break during hot reloading. Reason is dynamic injection of "FILE NAMES".
* Developers need to restart local server if they change this file.
*/

View File

@ -2,6 +2,7 @@ import EventEmitter from 'safe-event-emitter';
import log from 'loglevel';
import EthQuery from 'ethjs-query';
import { TRANSACTION_STATUSES } from '../../../../shared/constants/transaction';
import { ERROR_SUBMITTING } from './tx-state-manager';
/**
* Event emitter utility class for tracking the transactions as they
@ -106,7 +107,7 @@ export default class PendingTransactionTracker extends EventEmitter {
// encountered real error - transition to error state
txMeta.warning = {
error: errorMessage,
message: 'There was an error when resubmitting this transaction.',
message: ERROR_SUBMITTING,
};
this.emit('tx:warning', txMeta, err);
}

View File

@ -18,6 +18,8 @@ import {
validateConfirmedExternalTransaction,
} from './lib/util';
export const ERROR_SUBMITTING =
'There was an error when resubmitting this transaction.';
/**
* TransactionStatuses reimported from the shared transaction constants file
*
@ -304,9 +306,23 @@ export default class TransactionStateManager extends EventEmitter {
updateTransaction(txMeta, note) {
// normalize and validate txParams if present
if (txMeta.txParams) {
txMeta.txParams = normalizeAndValidateTxParams(txMeta.txParams, false);
try {
txMeta.txParams = normalizeAndValidateTxParams(txMeta.txParams, false);
} catch (error) {
if (txMeta.warning.message === ERROR_SUBMITTING) {
this.setTxStatusFailed(txMeta.id, error);
} else {
throw error;
}
return;
}
}
this._updateTransactionHistory(txMeta, note);
}
_updateTransactionHistory(txMeta, note) {
// create txMeta snapshot for history
const currentState = snapshotFromTxMeta(txMeta);
// recover previous tx state obj
@ -551,10 +567,11 @@ export default class TransactionStateManager extends EventEmitter {
rpc: error.value,
stack: error.stack,
};
this.updateTransaction(
this._updateTransactionHistory(
txMeta,
'transactions:tx-state-manager#fail - add error',
);
this._setTransactionStatus(txId, TRANSACTION_STATUSES.FAILED);
}
@ -638,7 +655,7 @@ export default class TransactionStateManager extends EventEmitter {
txMeta.status = status;
try {
this.updateTransaction(
this._updateTransactionHistory(
txMeta,
`txStateManager: setting status to ${status}`,
);

View File

@ -12,7 +12,7 @@ import {
} from '../../../../shared/constants/network';
import { GAS_LIMITS } from '../../../../shared/constants/gas';
import { ORIGIN_METAMASK } from '../../../../shared/constants/app';
import TxStateManager from './tx-state-manager';
import TxStateManager, { ERROR_SUBMITTING } from './tx-state-manager';
import { snapshotFromTxMeta } from './lib/tx-state-history-helpers';
const VALID_ADDRESS = '0x0000000000000000000000000000000000000000';
@ -918,6 +918,113 @@ describe('TransactionStateManager', function () {
const { history } = txStateManager.getTransaction('1');
assert.equal(history.length, 1, 'two history items (initial + diff)');
});
it('should set tx status to failed if updating after error submitting', function () {
const txMeta = {
id: '1',
status: TRANSACTION_STATUSES.UNAPPROVED,
metamaskNetworkId: currentNetworkId,
txParams: {
from: VALID_ADDRESS_TWO,
to: VALID_ADDRESS,
gasLimit: '0x5028',
maxFeePerGas: '0x2540be400',
maxPriorityFeePerGas: '0x3b9aca00',
},
};
txStateManager.addTransaction(txMeta);
const { history } = txStateManager.getTransaction('1');
assert.equal(history.length, 1);
txMeta.txParams.type = '0x0';
txMeta.warning = {
message: ERROR_SUBMITTING,
error: 'Testing tx status failed with arbitrary error',
};
// should result in additional 2 history entries
txStateManager.updateTransaction(txMeta);
const result = txStateManager.getTransaction('1');
assert.equal(result.history.length, 3);
// history[1] should contain 3 entries
assert.equal(result.history[1].length, 3);
assert.equal(
result.history[1][0].note,
'transactions:tx-state-manager#fail - add error',
);
assert.equal(result.history[1][0].op, 'add');
assert.equal(result.history[1][0].path, '/txParams/type');
assert.equal(result.history[1][0].value, '0x0');
assert.equal(result.history[1][1].op, 'add');
assert.equal(result.history[1][1].path, '/warning');
assert.equal(result.history[1][1].value.message, ERROR_SUBMITTING);
assert.equal(result.history[1][2].op, 'add');
assert.equal(result.history[1][2].path, '/err');
assert.equal(
result.history[1][2].value.message,
'Invalid transaction envelope type: specified type "0x0" but including maxFeePerGas and maxPriorityFeePerGas requires type: "0x2"',
);
assert.equal(result.history[2].length, 1);
assert.equal(
result.history[2][0].note,
'txStateManager: setting status to failed',
);
assert.equal(result.history[2][0].op, 'replace');
assert.equal(result.history[2][0].path, '/status');
assert.equal(result.history[2][0].value, 'failed');
});
it('should set transaction status to failed', function () {
const txMeta = {
id: '1',
status: TRANSACTION_STATUSES.UNAPPROVED,
metamaskNetworkId: currentNetworkId,
txParams: {
from: VALID_ADDRESS_TWO,
to: VALID_ADDRESS,
gasPrice: '0x01',
},
};
txStateManager.addTransaction(txMeta);
const { history } = txStateManager.getTransaction('1');
assert.equal(history.length, 1);
// should result in additional 2 history entries
txStateManager.setTxStatusFailed(
txMeta.id,
new Error('Testing tx status failed with arbitrary error'),
);
const result = txStateManager.getTransaction('1');
assert.equal(result.history.length, 3);
assert.equal(
result.history[1][0].note,
'transactions:tx-state-manager#fail - add error',
);
assert.equal(result.history[1][0].op, 'add');
assert.equal(result.history[1][0].path, '/err');
assert.equal(
result.history[1][0].value.message,
'Testing tx status failed with arbitrary error',
);
assert.equal(result.history[2].length, 1);
assert.equal(
result.history[2][0].note,
'txStateManager: setting status to failed',
);
assert.equal(result.history[2][0].op, 'replace');
assert.equal(result.history[2][0].path, '/status');
assert.equal(result.history[2][0].value, 'failed');
});
});
describe('#getUnapprovedTxList', function () {

View File

@ -0,0 +1,18 @@
/**
* This script add properties in globalThis and initialises them with undefined.
* This is workaround needed to avoid error in dependencies expecting to be run in a browser
* these dependencies are not available to service worker in MV3.
*/
// eslint-disable-next-line import/unambiguous
const keys = ['XMLHttpRequest'];
keys.forEach((key) => {
if (!Reflect.has(globalThis, key)) {
globalThis[key] = undefined;
}
});
if (!Reflect.has(globalThis, 'window')) {
globalThis.window = globalThis;
}

View File

@ -640,9 +640,9 @@ export default class MetamaskController extends EventEmitter {
});
///: BEGIN:ONLY_INCLUDE_IN(flask)
this.workerController = new IframeExecutionService({
this.snapExecutionService = new IframeExecutionService({
iframeUrl: new URL(
'https://metamask.github.io/iframe-execution-environment/0.4.6',
'https://metamask.github.io/iframe-execution-environment/0.5.0',
),
messenger: this.controllerMessenger.getRestricted({
name: 'ExecutionService',
@ -669,19 +669,24 @@ export default class MetamaskController extends EventEmitter {
this.snapController = new SnapController({
environmentEndowmentPermissions: Object.values(EndowmentPermissions),
terminateAllSnaps: this.workerController.terminateAllSnaps.bind(
this.workerController,
terminateAllSnaps: this.snapExecutionService.terminateAllSnaps.bind(
this.snapExecutionService,
),
terminateSnap: this.workerController.terminateSnap.bind(
this.workerController,
terminateSnap: this.snapExecutionService.terminateSnap.bind(
this.snapExecutionService,
),
executeSnap: this.workerController.executeSnap.bind(
this.workerController,
executeSnap: this.snapExecutionService.executeSnap.bind(
this.snapExecutionService,
),
getRpcMessageHandler: this.workerController.getRpcMessageHandler.bind(
this.workerController,
getRpcMessageHandler: this.snapExecutionService.getRpcMessageHandler.bind(
this.snapExecutionService,
),
closeAllConnections: this.removeAllConnections.bind(this),
// Prefix subject with appKeyType to generate separate keys for separate uses
getAppKey: async (subject, appKeyType) => {
await this.appStateController.getUnlockPromise(true);
return this.getAppKeyForSubject(`${appKeyType}:${subject}`);
},
state: initState.SnapController,
messenger: snapControllerMessenger,
});

View File

@ -54,3 +54,24 @@ To opt in to MetaMetrics;
You can inspect the requests in the `Network` tab of your browser's Developer Tools (background.html)
by filtering for `POST` requests to `/v1/batch`. The full url will be `http://localhost:9090/v1/batch`
or `https://api.segment.io/v1/batch` respectively.
## Sentry
### Debugging in Sentry
To debug in a production Sentry environment:
- If you have not already got a Sentry account, you can create a free account on [Sentry](https://sentry.io/)
- Create a New Sentry Organization
- If you already have an existing Sentry account and workspace, open the sidebar drop down menu, then click `Switch organization` followed by `Create a new organization`
- Create a New Project
- Copy the `Public Key` and `Project ID` from the Client Keys section under your projects Settings
- Select `Settings` in the sidebar menu, then select `Projects` in the secondary menu. Click your project then select `Client Keys (DSN)` from the secondary menu. Click the `Configure` button on the `Client Keys` page and copy your `Project Id` and `Public Key`
- Add/replace the `SENTRY_DSN` and `SENTRY_DSN_DEV` variables in `.metamaskrc`
```
SENTRY_DSN_DEV=https://{SENTRY_PUBLIC_KEY}@sentry.io/{SENTRY_PROJECT_ID}
SENTRY_DSN=https://{SENTRY_PUBLIC_KEY}@sentry.io/{SENTRY_PROJECT_ID}
```
- Build the project to the `./dist/` folder with `yarn dist`
Errors reported whilst using the extension will be displayed in Sentry's `Issues` page.

View File

@ -26,38 +26,4 @@ Source file bundling tasks are implemented in the [`./development/build/scripts.
## Usage
```text
Usage: yarn build <entry-task> [options]
Commands:
yarn build prod Create an optimized build for production environments.
yarn build dev Create an unoptimized, live-reloaded build for local
development.
yarn build test Create an optimized build for running e2e tests.
yarn build testDev Create an unoptimized, live-reloaded build for running
e2e tests.
Options:
--build-type The "type" of build to create. One of: "beta", "flask",
"main"
[string] [default: "main"]
--lint-fence-files Whether files with code fences should be linted after
fences have been removed by the code fencing transform.
The build will fail if linting fails.
Defaults to `false` if the entry task is `dev` or
`testDev`, and `true` otherwise.
[boolean] [default: <varies>]
--lockdown Whether to include SES lockdown files in the extension
bundle. Setting this to `false` is useful e.g. when
linking dependencies that are incompatible with lockdown.
[boolean] [default: true]
--policy-only Stops the build after generating the LavaMoat policy,
skipping any writes to disk.
[boolean] [deafult: false]
--skip-stats Whether to refrain from logging build progress. Mostly
used internally.
[boolean] [default: false]
```
See `node ./development/build/index.js --help`

View File

@ -0,0 +1,48 @@
const TASKS = {
CLEAN: 'clean',
DEV: 'dev',
LINT_SCSS: 'lint-scss',
MANIFEST_DEV: 'manifest:dev',
MANIFEST_PROD: 'manifest:prod',
MANIFEST_TEST: 'manifest:test',
MANIFEST_TEST_DEV: 'manifest:testDev',
PROD: 'prod',
RELOAD: 'reload',
SCRIPTS_PROD: 'scripts:prod',
SCRIPTS_CORE_DEV_STANDARD_ENTRY_POINTS:
'scripts:core:dev:standardEntryPoints',
SCRIPTS_CORE_DEV_CONTENTSCRIPT: 'scripts:core:dev:contentscript',
SCRIPTS_CORE_DEV_DISABLE_CONSOLE: 'scripts:core:dev:disable-console',
SCRIPTS_CORE_DEV_SENTRY: 'scripts:core:dev:sentry',
SCRIPTS_CORE_DEV_PHISHING_DETECT: 'scripts:core:dev:phishing-detect',
SCRIPTS_CORE_PROD_STANDARD_ENTRY_POINTS:
'scripts:core:prod:standardEntryPoints',
SCRIPTS_CORE_PROD_CONTENTSCRIPT: 'scripts:core:prod:contentscript',
SCRIPTS_CORE_PROD_DISABLE_CONSOLE: 'scripts:core:prod:disable-console',
SCRIPTS_CORE_PROD_SENTRY: 'scripts:core:prod:sentry',
SCRIPTS_CORE_PROD_PHISHING_DETECT: 'scripts:core:prod:phishing-detect',
SCRIPTS_CORE_TEST_LIVE_STANDARD_ENTRY_POINTS:
'scripts:core:test-live:standardEntryPoints',
SCRIPTS_CORE_TEST_LIVE_CONTENTSCRIPT: 'scripts:core:test-live:contentscript',
SCRIPTS_CORE_TEST_LIVE_DISABLE_CONSOLE:
'scripts:core:test-live:disable-console',
SCRIPTS_CORE_TEST_LIVE_SENTRY: 'scripts:core:test-live:sentry',
SCRIPTS_CORE_TEST_LIVE_PHISHING_DETECT:
'scripts:core:test-live:phishing-detect',
SCRIPTS_CORE_TEST_STANDARD_ENTRY_POINTS:
'scripts:core:test:standardEntryPoints',
SCRIPTS_CORE_TEST_CONTENTSCRIPT: 'scripts:core:test:contentscript',
SCRIPTS_CORE_TEST_DISABLE_CONSOLE: 'scripts:core:test:disable-console',
SCRIPTS_CORE_TEST_SENTRY: 'scripts:core:test:sentry',
SCRIPTS_CORE_TEST_PHISHING_DETECT: 'scripts:core:test:phishing-detect',
STATIC_DEV: 'static:dev',
STATIC_PROD: 'static:prod',
STYLES: 'styles',
STYLES_DEV: 'styles:dev',
STYLES_PROD: 'styles:prod',
TEST: 'test',
TEST_DEV: 'testDev',
ZIP: 'zip',
};
module.exports = { TASKS };

View File

@ -7,12 +7,13 @@ const pify = require('pify');
const pump = pify(require('pump'));
const { BuildType } = require('../lib/build-type');
const { TASKS } = require('./constants');
const { createTask, composeParallel } = require('./task');
module.exports = createEtcTasks;
function createEtcTasks({ browserPlatforms, buildType, livereload, version }) {
const clean = createTask('clean', async function clean() {
const clean = createTask(TASKS.CLEAN, async function clean() {
await del(['./dist/*']);
await Promise.all(
browserPlatforms.map(async (platform) => {
@ -21,13 +22,13 @@ function createEtcTasks({ browserPlatforms, buildType, livereload, version }) {
);
});
const reload = createTask('reload', function devReload() {
const reload = createTask(TASKS.RELOAD, function devReload() {
livereload.listen({ port: 35729 });
});
// zip tasks for distribution
const zip = createTask(
'zip',
TASKS.ZIP,
composeParallel(
...browserPlatforms.map((platform) =>
createZipTask(platform, buildType, version),

View File

@ -5,10 +5,12 @@
//
const path = require('path');
const livereload = require('gulp-livereload');
const minimist = require('minimist');
const yargs = require('yargs/yargs');
const { hideBin } = require('yargs/helpers');
const { sync: globby } = require('globby');
const { getVersion } = require('../lib/get-version');
const { BuildType } = require('../lib/build-type');
const { TASKS } = require('./constants');
const {
createTask,
composeSeries,
@ -110,7 +112,7 @@ function defineAndRunBuildTasks() {
// build for development (livereload)
createTask(
'dev',
TASKS.DEV,
composeSeries(
clean,
styleTasks.dev,
@ -125,7 +127,7 @@ function defineAndRunBuildTasks() {
// build for test development (livereload)
createTask(
'testDev',
TASKS.TEST_DEV,
composeSeries(
clean,
styleTasks.dev,
@ -140,7 +142,7 @@ function defineAndRunBuildTasks() {
// build for prod release
createTask(
'prod',
TASKS.PROD,
composeSeries(
clean,
styleTasks.prod,
@ -150,11 +152,11 @@ function defineAndRunBuildTasks() {
);
// build just production scripts, for LavaMoat policy generation purposes
createTask('scripts:prod', scriptTasks.prod);
createTask(TASKS.SCRIPTS_PROD, scriptTasks.prod);
// build for CI testing
createTask(
'test',
TASKS.TEST,
composeSeries(
clean,
styleTasks.prod,
@ -164,89 +166,108 @@ function defineAndRunBuildTasks() {
);
// special build for minimal CI testing
createTask('styles', styleTasks.prod);
createTask(TASKS.styles, styleTasks.prod);
// Finally, start the build process by running the entry task.
runTask(entryTask, { skipStats });
}
function parseArgv() {
const NamedArgs = {
ApplyLavaMoat: 'apply-lavamoat',
BuildType: 'build-type',
BuildVersion: 'build-version',
LintFenceFiles: 'lint-fence-files',
Lockdown: 'lockdown',
PolicyOnly: 'policy-only',
SkipStats: 'skip-stats',
};
const { argv } = yargs(hideBin(process.argv))
.usage('$0 <task> [options]', 'Build the MetaMask extension.', (_yargs) =>
_yargs
.positional('task', {
description: `The task to run. There are a number of main tasks, each of which calls other tasks internally. The main tasks are:
const argv = minimist(process.argv.slice(2), {
boolean: [
NamedArgs.ApplyLavaMoat,
NamedArgs.LintFenceFiles,
NamedArgs.Lockdown,
NamedArgs.PolicyOnly,
NamedArgs.SkipStats,
],
string: [NamedArgs.BuildType, NamedArgs.BuildVersion],
default: {
[NamedArgs.ApplyLavaMoat]: true,
[NamedArgs.BuildType]: BuildType.main,
[NamedArgs.BuildVersion]: '0',
[NamedArgs.LintFenceFiles]: true,
[NamedArgs.Lockdown]: true,
[NamedArgs.PolicyOnly]: false,
[NamedArgs.SkipStats]: false,
},
});
prod: Create an optimized build for a production environment.
if (argv._.length !== 1) {
throw new Error(
`Metamask build: Expected a single positional argument, but received "${argv._.length}" arguments.`,
);
}
dev: Create an unoptimized, live-reloading build for local development.
const entryTask = argv._[0];
if (!entryTask) {
throw new Error('MetaMask build: No entry task specified.');
}
test: Create an optimized build for running e2e tests.
const buildType = argv[NamedArgs.BuildType];
if (!(buildType in BuildType)) {
throw new Error(`MetaMask build: Invalid build type: "${buildType}"`);
}
testDev: Create an unoptimized, live-reloading build for debugging e2e tests.`,
type: 'string',
})
.option('apply-lavamoat', {
default: true,
description:
'Whether to use LavaMoat. Setting this to `false` can be useful during development if you want to handle LavaMoat errors later.',
type: 'boolean',
})
.option('build-type', {
default: BuildType.main,
description: 'The type of build to create.',
choices: Object.keys(BuildType),
})
.option('build-version', {
default: 0,
description:
'The build version. This is set only for non-main build types. The build version is used in the "prerelease" segment of the extension version, e.g. `[major].[minor].[patch]-[build-type].[build-version]`',
type: 'number',
})
.option('lint-fence-files', {
description:
'Whether files with code fences should be linted after fences have been removed. The build will fail if linting fails. This defaults to `false` if the entry task is `dev` or `testDev`. Otherwise this defaults to `true`.',
type: 'boolean',
})
.option('lockdown', {
default: true,
description:
'Whether to include SES lockdown files in the extension bundle. Setting this to `false` can be useful during development if you want to handle lockdown errors later.',
type: 'boolean',
})
.option('policy-only', {
default: false,
description:
'Stop the build after generating the LavaMoat policy, skipping any writes to disk other than the LavaMoat policy itself.',
type: 'boolean',
})
.option('skip-stats', {
default: false,
description:
'Whether to skip logging the time to completion for each task to the console. This is meant primarily for internal use, to prevent duplicate logging.',
hidden: true,
type: 'boolean',
})
.check((args) => {
if (!Number.isInteger(args.buildVersion)) {
throw new Error(
`Expected integer for 'build-version', got '${args.buildVersion}'`,
);
} else if (!Object.values(TASKS).includes(args.task)) {
throw new Error(`Invalid task: '${args.task}'`);
}
return true;
}),
)
// TODO: Enable `.strict()` after this issue is resolved: https://github.com/LavaMoat/LavaMoat/issues/344
.help('help');
const rawBuildVersion = argv[NamedArgs.BuildVersion];
const buildVersion = Number.parseInt(rawBuildVersion, 10);
if (rawBuildVersion.match(/^\d+$/u) === null || Number.isNaN(buildVersion)) {
throw new Error(
`MetaMask build: Invalid build version: "${rawBuildVersion}"`,
);
}
const {
applyLavamoat: applyLavaMoat,
buildType,
buildVersion,
lintFenceFiles,
lockdown,
policyOnly,
skipStats,
task,
} = argv;
// Manually default this to `false` for dev builds only.
const shouldLintFenceFiles = process.argv.includes(
`--${NamedArgs.LintFenceFiles}`,
)
? argv[NamedArgs.LintFenceFiles]
: !/dev/iu.test(entryTask);
const policyOnly = argv[NamedArgs.PolicyOnly];
const shouldLintFenceFiles = lintFenceFiles ?? !/dev/iu.test(task);
const version = getVersion(buildType, buildVersion);
return {
// Should we apply LavaMoat to the build output?
applyLavaMoat: argv[NamedArgs.ApplyLavaMoat],
applyLavaMoat,
buildType,
entryTask,
// Is this process running in lavamoat-node?
entryTask: task,
isLavaMoat: process.argv[0].includes('lavamoat'),
policyOnly,
shouldIncludeLockdown: argv[NamedArgs.Lockdown],
shouldIncludeLockdown: lockdown,
shouldLintFenceFiles,
skipStats: argv[NamedArgs.SkipStats],
skipStats,
version,
};
}

View File

@ -7,6 +7,7 @@ const baseManifest = process.env.ENABLE_MV3
: require('../../app/manifest/v2/_base.json');
const { BuildType } = require('../lib/build-type');
const { TASKS } = require('./constants');
const { createTask, composeSeries } = require('./task');
module.exports = createManifestTasks;
@ -68,19 +69,22 @@ function createManifestTasks({
});
// high level manifest tasks
const dev = createTask('manifest:dev', composeSeries(prepPlatforms, envDev));
const dev = createTask(
TASKS.MANIFEST_DEV,
composeSeries(prepPlatforms, envDev),
);
const testDev = createTask(
'manifest:testDev',
TASKS.MANIFEST_TEST_DEV,
composeSeries(prepPlatforms, envTestDev),
);
const test = createTask(
'manifest:test',
TASKS.MANIFEST_TEST,
composeSeries(prepPlatforms, envTest),
);
const prod = createTask('manifest:prod', prepPlatforms);
const prod = createTask(TASKS.MANIFEST_PROD, prepPlatforms);
return { prod, dev, testDev, test };

View File

@ -365,6 +365,24 @@ function createScriptTasks({
}
}
const postProcessServiceWorker = (
mv3BrowserPlatforms,
fileList,
applyLavaMoat,
) => {
mv3BrowserPlatforms.forEach((browser) => {
const appInitFile = `./dist/${browser}/app-init.js`;
const fileContent = readFileSync('./app/scripts/app-init.js', 'utf8');
const fileOutput = fileContent
.replace('/** FILE NAMES */', fileList)
.replace(
'const applyLavaMoat = true;',
`const applyLavaMoat = ${applyLavaMoat};`,
);
writeFileSync(appInitFile, fileOutput);
});
};
// Function generates app-init.js for browsers chrome, brave and opera.
// It dynamically injects list of files generated in the build.
async function bundleMV3AppInitialiser({
@ -376,6 +394,7 @@ async function bundleMV3AppInitialiser({
testing,
policyOnly,
shouldLintFenceFiles,
applyLavaMoat,
}) {
const label = 'app-init';
// TODO: remove this filter for firefox once MV3 is supported in it
@ -400,12 +419,17 @@ async function bundleMV3AppInitialiser({
shouldLintFenceFiles,
})();
mv3BrowserPlatforms.forEach((browser) => {
const appInitFile = `./dist/${browser}/app-init.js`;
const fileContent = readFileSync('./app/scripts/app-init.js', 'utf8');
const fileOutput = fileContent.replace('/** FILE NAMES */', fileList);
writeFileSync(appInitFile, fileOutput);
postProcessServiceWorker(mv3BrowserPlatforms, fileList, applyLavaMoat);
let prevChromeFileContent;
watch('./dist/chrome/app-init.js', () => {
const chromeFileContent = readFileSync('./dist/chrome/app-init.js', 'utf8');
if (chromeFileContent !== prevChromeFileContent) {
prevChromeFileContent = chromeFileContent;
postProcessServiceWorker(mv3BrowserPlatforms, fileList, applyLavaMoat);
}
});
console.log(`Bundle end: service worker app-init.js`);
}
@ -581,6 +605,7 @@ function createFactoredBuild({
testing,
policyOnly,
shouldLintFenceFiles,
applyLavaMoat,
});
}
break;

View File

@ -6,6 +6,7 @@ const glob = require('fast-glob');
const locales = require('../../app/_locales/index.json');
const { BuildType } = require('../lib/build-type');
const { TASKS } = require('./constants');
const { createTask, composeSeries } = require('./task');
const EMPTY_JS_FILE = './development/empty.js';
@ -41,7 +42,7 @@ module.exports = function createStaticAssetTasks({
}
const prod = createTask(
'static:prod',
TASKS.STATIC_PROD,
composeSeries(
...copyTargetsProd.map((target) => {
return async function copyStaticAssets() {
@ -51,7 +52,7 @@ module.exports = function createStaticAssetTasks({
),
);
const dev = createTask(
'static:dev',
TASKS.STATIC_DEV,
composeSeries(
...copyTargetsDev.map((target) => {
return async function copyStaticAssets() {
@ -152,6 +153,10 @@ function getCopyTargets(shouldIncludeLockdown) {
: EMPTY_JS_FILE,
dest: `lockdown-install.js`,
},
{
src: './app/scripts/init-globals.js',
dest: 'init-globals.js',
},
{
src: shouldIncludeLockdown
? `./app/scripts/lockdown-run.js`

View File

@ -7,6 +7,7 @@ const sourcemaps = require('gulp-sourcemaps');
const rtlcss = require('gulp-rtlcss');
const rename = require('gulp-rename');
const pump = pify(require('pump'));
const { TASKS } = require('./constants');
const { createTask } = require('./task');
let sass;
@ -16,7 +17,7 @@ module.exports = createStyleTasks;
function createStyleTasks({ livereload }) {
const prod = createTask(
'styles:prod',
TASKS.STYLES_PROD,
createScssBuildTask({
src: 'ui/css/index.scss',
dest: 'ui/css/output',
@ -25,7 +26,7 @@ function createStyleTasks({ livereload }) {
);
const dev = createTask(
'styles:dev',
TASKS.STYLES_DEV,
createScssBuildTask({
src: 'ui/css/index.scss',
dest: 'ui/css/output',
@ -34,7 +35,7 @@ function createStyleTasks({ livereload }) {
}),
);
const lint = createTask('lint-scss', function () {
const lint = createTask(TASKS.LINT_SCSS, function () {
return gulp.src('ui/css/itcss/**/*.scss').pipe(
gulpStylelint({
reporters: [{ formatter: 'string', console: true }],

View File

@ -3217,13 +3217,147 @@
},
"@metamask/rpc-methods": {
"packages": {
"@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/key-tree": true,
"@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers": true,
"eth-rpc-errors": true
}
},
"@metamask/rpc-methods>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry": true,
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/rpc-methods>@metamask/controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/rpc-methods>@metamask/key-tree": {
"packages": {
"@metamask/rpc-methods>@metamask/key-tree>@noble/ed25519": true,
@ -3284,14 +3418,148 @@
"setInterval": true
},
"packages": {
"@metamask/controllers": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/smart-transactions-controller>@metamask/controllers": true,
"@metamask/smart-transactions-controller>bignumber.js": true,
"@metamask/smart-transactions-controller>fast-json-patch": true,
"ethers": true,
"lodash": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry": true,
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/smart-transactions-controller>@metamask/controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>nanoid": {
"globals": {
"crypto.getRandomValues": true
@ -3327,10 +3595,11 @@
"setTimeout": true
},
"packages": {
"@metamask/controllers": true,
"@metamask/post-message-stream": true,
"@metamask/providers>@metamask/object-multiplex": true,
"@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers>@metamask/browser-passworder": true,
"@metamask/snap-controllers>@metamask/controllers": true,
"@metamask/snap-controllers>@metamask/execution-environments": true,
"@metamask/snap-controllers>@metamask/obs-store": true,
"@metamask/snap-controllers>ajv": true,
@ -3350,6 +3619,153 @@
"semver": true
}
},
"@metamask/snap-controllers>@metamask/browser-passworder": {
"globals": {
"btoa": true,
"crypto.getRandomValues": true,
"crypto.subtle.decrypt": true,
"crypto.subtle.deriveKey": true,
"crypto.subtle.encrypt": true,
"crypto.subtle.importKey": true
},
"packages": {
"browserify>buffer": true
}
},
"@metamask/snap-controllers>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry": true,
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/snap-controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/snap-controllers>@metamask/obs-store": {
"packages": {
"@metamask/snap-controllers>@metamask/obs-store>through2": true,

View File

@ -3217,13 +3217,147 @@
},
"@metamask/rpc-methods": {
"packages": {
"@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/key-tree": true,
"@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers": true,
"eth-rpc-errors": true
}
},
"@metamask/rpc-methods>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry": true,
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/rpc-methods>@metamask/controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/rpc-methods>@metamask/key-tree": {
"packages": {
"@metamask/rpc-methods>@metamask/key-tree>@noble/ed25519": true,
@ -3284,14 +3418,148 @@
"setInterval": true
},
"packages": {
"@metamask/controllers": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/smart-transactions-controller>@metamask/controllers": true,
"@metamask/smart-transactions-controller>bignumber.js": true,
"@metamask/smart-transactions-controller>fast-json-patch": true,
"ethers": true,
"lodash": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry": true,
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/smart-transactions-controller>@metamask/controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>nanoid": {
"globals": {
"crypto.getRandomValues": true
@ -3327,10 +3595,11 @@
"setTimeout": true
},
"packages": {
"@metamask/controllers": true,
"@metamask/post-message-stream": true,
"@metamask/providers>@metamask/object-multiplex": true,
"@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers>@metamask/browser-passworder": true,
"@metamask/snap-controllers>@metamask/controllers": true,
"@metamask/snap-controllers>@metamask/execution-environments": true,
"@metamask/snap-controllers>@metamask/obs-store": true,
"@metamask/snap-controllers>ajv": true,
@ -3350,6 +3619,153 @@
"semver": true
}
},
"@metamask/snap-controllers>@metamask/browser-passworder": {
"globals": {
"btoa": true,
"crypto.getRandomValues": true,
"crypto.subtle.decrypt": true,
"crypto.subtle.deriveKey": true,
"crypto.subtle.encrypt": true,
"crypto.subtle.importKey": true
},
"packages": {
"browserify>buffer": true
}
},
"@metamask/snap-controllers>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry": true,
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/snap-controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/snap-controllers>@metamask/obs-store": {
"packages": {
"@metamask/snap-controllers>@metamask/obs-store>through2": true,

View File

@ -3217,13 +3217,147 @@
},
"@metamask/rpc-methods": {
"packages": {
"@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/controllers": true,
"@metamask/rpc-methods>@metamask/key-tree": true,
"@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers": true,
"eth-rpc-errors": true
}
},
"@metamask/rpc-methods>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry": true,
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/rpc-methods>@metamask/controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/rpc-methods>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/rpc-methods>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/rpc-methods>@metamask/key-tree": {
"packages": {
"@metamask/rpc-methods>@metamask/key-tree>@noble/ed25519": true,
@ -3284,14 +3418,148 @@
"setInterval": true
},
"packages": {
"@metamask/controllers": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/smart-transactions-controller>@metamask/controllers": true,
"@metamask/smart-transactions-controller>bignumber.js": true,
"@metamask/smart-transactions-controller>fast-json-patch": true,
"ethers": true,
"lodash": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry": true,
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/smart-transactions-controller>@metamask/controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/smart-transactions-controller>@metamask/controllers>nanoid": {
"globals": {
"crypto.getRandomValues": true
@ -3327,10 +3595,11 @@
"setTimeout": true
},
"packages": {
"@metamask/controllers": true,
"@metamask/post-message-stream": true,
"@metamask/providers>@metamask/object-multiplex": true,
"@metamask/rpc-methods>@metamask/utils": true,
"@metamask/snap-controllers>@metamask/browser-passworder": true,
"@metamask/snap-controllers>@metamask/controllers": true,
"@metamask/snap-controllers>@metamask/execution-environments": true,
"@metamask/snap-controllers>@metamask/obs-store": true,
"@metamask/snap-controllers>ajv": true,
@ -3350,6 +3619,153 @@
"semver": true
}
},
"@metamask/snap-controllers>@metamask/browser-passworder": {
"globals": {
"btoa": true,
"crypto.getRandomValues": true,
"crypto.subtle.decrypt": true,
"crypto.subtle.deriveKey": true,
"crypto.subtle.encrypt": true,
"crypto.subtle.importKey": true
},
"packages": {
"browserify>buffer": true
}
},
"@metamask/snap-controllers>@metamask/controllers": {
"globals": {
"Headers": true,
"URL": true,
"clearInterval": true,
"clearTimeout": true,
"console.error": true,
"console.log": true,
"fetch": true,
"setInterval": true,
"setTimeout": true
},
"packages": {
"@ethereumjs/common": true,
"@ethereumjs/tx": true,
"@metamask/contract-metadata": true,
"@metamask/controllers>abort-controller": true,
"@metamask/controllers>async-mutex": true,
"@metamask/controllers>eth-phishing-detect": true,
"@metamask/controllers>isomorphic-fetch": true,
"@metamask/controllers>multiformats": true,
"@metamask/controllers>web3-provider-engine": true,
"@metamask/metamask-eth-abis": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry": true,
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet": true,
"@metamask/snap-controllers>nanoid": true,
"@storybook/api>fast-deep-equal": true,
"browserify>buffer": true,
"browserify>events": true,
"deep-freeze-strict": true,
"eth-ens-namehash": true,
"eth-json-rpc-infura": true,
"eth-keyring-controller": true,
"eth-query": true,
"eth-rpc-errors": true,
"eth-sig-util": true,
"ethereumjs-util": true,
"ethers": true,
"ethjs>ethjs-unit": true,
"immer": true,
"json-rpc-engine": true,
"jsonschema": true,
"punycode": true,
"single-call-balance-checker-abi": true,
"uuid": true,
"web3": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs": {
"globals": {
"clearInterval": true,
"setInterval": true
},
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-provider-http": true,
"ethjs>ethjs-unit": true,
"ethjs>ethjs-util": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"ethjs-query>babel-runtime": true,
"ethjs>ethjs-filter": true,
"ethjs>ethjs-util": true,
"promise-to-callback": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>bn.js": true,
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": true,
"browserify>buffer": true,
"ethjs>number-to-bn": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>ethjs-query": {
"globals": {
"console": true
},
"packages": {
"ethjs-query>babel-runtime": true,
"ethjs-query>ethjs-format": true,
"ethjs-query>ethjs-rpc": true,
"promise-to-callback": true
}
},
"@metamask/snap-controllers>@metamask/controllers>eth-method-registry>ethjs>js-sha3": {
"packages": {
"browserify>process": true
}
},
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet": {
"packages": {
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet>uuid": true,
"@truffle/codec>utf8": true,
"browserify>buffer": true,
"browserify>crypto-browserify": true,
"ethereumjs-util": true,
"ethereumjs-util>ethereum-cryptography": true,
"ethereumjs-wallet>aes-js": true,
"ethereumjs-wallet>bs58check": true,
"ethereumjs-wallet>randombytes": true,
"ethers>@ethersproject/json-wallets>scrypt-js": true
}
},
"@metamask/snap-controllers>@metamask/controllers>ethereumjs-wallet>uuid": {
"globals": {
"crypto": true,
"msCrypto": true
}
},
"@metamask/snap-controllers>@metamask/obs-store": {
"packages": {
"@metamask/snap-controllers>@metamask/obs-store>through2": true,

View File

@ -101,6 +101,36 @@
"globals": {
"globalThis": true
}
},
"yargs": {
"builtin": {
"assert": true,
"fs": true,
"path": true,
"util": true
},
"globals": {
"console": true,
"Error": true,
"process": true
}
},
"yargs>y18n": {
"builtin": {
"fs": true,
"path": true,
"util": true
}
},
"yargs>yargs-parser": {
"builtin": {
"fs": true,
"path": true,
"util": true
},
"globals": {
"process": true
}
}
}
}

View File

@ -2364,7 +2364,7 @@
"packages": {
"eslint-plugin-import>tsconfig-paths>json5": true,
"eslint-plugin-import>tsconfig-paths>strip-bom": true,
"minimist": true
"rc>minimist": true
}
},
"eslint-plugin-import>tsconfig-paths>json5": {
@ -4090,6 +4090,7 @@
"gulp-watch>chokidar>anymatch": true,
"gulp-watch>chokidar>async-each": true,
"gulp-watch>chokidar>braces": true,
"gulp-watch>chokidar>fsevents": true,
"gulp-watch>chokidar>is-binary-path": true,
"gulp-watch>chokidar>is-glob": true,
"gulp-watch>chokidar>normalize-path": true,
@ -4239,6 +4240,389 @@
"webpack>micromatch>braces>fill-range>repeat-string": true
}
},
"gulp-watch>chokidar>fsevents": {
"builtin": {
"events.EventEmitter": true,
"fs.stat": true,
"path.join": true,
"util.inherits": true
},
"globals": {
"__dirname": true,
"process.nextTick": true,
"process.platform": true,
"setImmediate": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp": {
"builtin": {
"events.EventEmitter": true,
"fs.existsSync": true,
"fs.readFileSync": true,
"fs.renameSync": true,
"path.dirname": true,
"path.existsSync": true,
"path.join": true,
"path.resolve": true,
"url.parse": true,
"url.resolve": true,
"util.inherits": true
},
"globals": {
"__dirname": true,
"console.log": true,
"process.arch": true,
"process.cwd": true,
"process.env": true,
"process.platform": true,
"process.version.substr": true,
"process.versions": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>detect-libc": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>semver": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>detect-libc": {
"builtin": {
"child_process.spawnSync": true,
"fs.readdirSync": true,
"os.platform": true
},
"globals": {
"process.env": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt": {
"builtin": {
"path": true,
"stream.Stream": true,
"url": true
},
"globals": {
"console": true,
"process.argv": true,
"process.env.DEBUG_NOPT": true,
"process.env.NOPT_DEBUG": true,
"process.platform": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>abbrev": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv": {
"builtin": {
"child_process.exec": true,
"path": true
},
"globals": {
"process.env.COMPUTERNAME": true,
"process.env.ComSpec": true,
"process.env.EDITOR": true,
"process.env.HOSTNAME": true,
"process.env.PATH": true,
"process.env.PROMPT": true,
"process.env.PS1": true,
"process.env.Path": true,
"process.env.SHELL": true,
"process.env.USER": true,
"process.env.USERDOMAIN": true,
"process.env.USERNAME": true,
"process.env.VISUAL": true,
"process.env.path": true,
"process.nextTick": true,
"process.platform": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": {
"builtin": {
"os.homedir": true
},
"globals": {
"process.env": true,
"process.getuid": true,
"process.platform": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": {
"globals": {
"process.env.SystemRoot": true,
"process.env.TEMP": true,
"process.env.TMP": true,
"process.env.TMPDIR": true,
"process.env.windir": true,
"process.platform": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog": {
"builtin": {
"events.EventEmitter": true,
"util": true
},
"globals": {
"process.nextTick": true,
"process.stderr": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": {
"builtin": {
"events.EventEmitter": true,
"util.inherits": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>delegates": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": {
"builtin": {
"events.EventEmitter": true,
"stream": true,
"util": true
},
"globals": {
"process.browser": true,
"process.env.READABLE_STREAM": true,
"process.stderr": true,
"process.stdout": true,
"process.version.slice": true,
"setImmediate": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>isarray": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": {
"globals": {
"Buffer.isBuffer": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": {
"globals": {
"process": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": {
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": {
"builtin": {
"util.deprecate": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge": {
"builtin": {
"util.format": true
},
"globals": {
"clearInterval": true,
"process": true,
"setImmediate": true,
"setInterval": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>aproba": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>object-assign": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": {
"builtin": {
"os.type": true
},
"globals": {
"process.env.LANG": true,
"process.env.LC_ALL": true,
"process.env.LC_CTYPE": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": {
"builtin": {
"assert.equal": true,
"events": true
},
"globals": {
"process": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": {
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>code-point-at": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": {
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point>number-is-nan": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": {
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi>ansi-regex": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": {
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": {
"globals": {
"process.stderr": true,
"process.stdout": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf": {
"builtin": {
"assert": true,
"fs": true,
"path.join": true
},
"globals": {
"process.platform": true,
"setTimeout": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob": {
"builtin": {
"assert": true,
"events.EventEmitter": true,
"fs.lstat": true,
"fs.lstatSync": true,
"fs.readdir": true,
"fs.readdirSync": true,
"fs.stat": true,
"fs.statSync": true,
"path.join": true,
"path.resolve": true,
"util": true
},
"globals": {
"console.error": true,
"process.cwd": true,
"process.nextTick": true,
"process.platform": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": {
"builtin": {
"fs.lstat": true,
"fs.lstatSync": true,
"fs.readlink": true,
"fs.readlinkSync": true,
"fs.realpath": true,
"fs.realpathSync": true,
"fs.stat": true,
"fs.statSync": true,
"path.normalize": true,
"path.resolve": true
},
"globals": {
"console.error": true,
"console.trace": true,
"process.env.NODE_DEBUG": true,
"process.nextTick": true,
"process.noDeprecation": true,
"process.platform": true,
"process.throwDeprecation": true,
"process.traceDeprecation": true,
"process.version": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": {
"globals": {
"process.nextTick": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": {
"builtin": {
"util.inherits": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": {
"builtin": {
"path": true
},
"globals": {
"console.error": true
},
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": {
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>balanced-match": true,
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>concat-map": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": {
"packages": {
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": {
"globals": {
"process.platform": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>semver": {
"globals": {
"console": true,
"process": true
}
},
"gulp-watch>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": {
"builtin": {
"buffer": true
}
},
"gulp-watch>chokidar>is-binary-path": {
"builtin": {
"path.extname": true
@ -4738,6 +5122,7 @@
"gulp-watch>path-is-absolute": true,
"gulp>glob-watcher>anymatch": true,
"gulp>glob-watcher>chokidar>braces": true,
"gulp>glob-watcher>chokidar>fsevents": true,
"gulp>glob-watcher>chokidar>glob-parent": true,
"gulp>glob-watcher>chokidar>is-binary-path": true,
"gulp>glob-watcher>chokidar>normalize-path": true,
@ -4787,6 +5172,389 @@
"webpack>micromatch>braces>fill-range>repeat-string": true
}
},
"gulp>glob-watcher>chokidar>fsevents": {
"builtin": {
"events.EventEmitter": true,
"fs.stat": true,
"path.join": true,
"util.inherits": true
},
"globals": {
"__dirname": true,
"process.nextTick": true,
"process.platform": true,
"setImmediate": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp": {
"builtin": {
"events.EventEmitter": true,
"fs.existsSync": true,
"fs.readFileSync": true,
"fs.renameSync": true,
"path.dirname": true,
"path.existsSync": true,
"path.join": true,
"path.resolve": true,
"url.parse": true,
"url.resolve": true,
"util.inherits": true
},
"globals": {
"__dirname": true,
"console.log": true,
"process.arch": true,
"process.cwd": true,
"process.env": true,
"process.platform": true,
"process.version.substr": true,
"process.versions": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>detect-libc": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>semver": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>detect-libc": {
"builtin": {
"child_process.spawnSync": true,
"fs.readdirSync": true,
"os.platform": true
},
"globals": {
"process.env": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt": {
"builtin": {
"path": true,
"stream.Stream": true,
"url": true
},
"globals": {
"console": true,
"process.argv": true,
"process.env.DEBUG_NOPT": true,
"process.env.NOPT_DEBUG": true,
"process.platform": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>abbrev": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv": {
"builtin": {
"child_process.exec": true,
"path": true
},
"globals": {
"process.env.COMPUTERNAME": true,
"process.env.ComSpec": true,
"process.env.EDITOR": true,
"process.env.HOSTNAME": true,
"process.env.PATH": true,
"process.env.PROMPT": true,
"process.env.PS1": true,
"process.env.Path": true,
"process.env.SHELL": true,
"process.env.USER": true,
"process.env.USERDOMAIN": true,
"process.env.USERNAME": true,
"process.env.VISUAL": true,
"process.env.path": true,
"process.nextTick": true,
"process.platform": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": {
"builtin": {
"os.homedir": true
},
"globals": {
"process.env": true,
"process.getuid": true,
"process.platform": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-tmpdir": {
"globals": {
"process.env.SystemRoot": true,
"process.env.TEMP": true,
"process.env.TMP": true,
"process.env.TMPDIR": true,
"process.env.windir": true,
"process.platform": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog": {
"builtin": {
"events.EventEmitter": true,
"util": true
},
"globals": {
"process.nextTick": true,
"process.stderr": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": {
"builtin": {
"events.EventEmitter": true,
"util.inherits": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>delegates": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": {
"builtin": {
"events.EventEmitter": true,
"stream": true,
"util": true
},
"globals": {
"process.browser": true,
"process.env.READABLE_STREAM": true,
"process.stderr": true,
"process.stdout": true,
"process.version.slice": true,
"setImmediate": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>isarray": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>core-util-is": {
"globals": {
"Buffer.isBuffer": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": {
"globals": {
"process": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": {
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": {
"builtin": {
"util.deprecate": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge": {
"builtin": {
"util.format": true
},
"globals": {
"clearInterval": true,
"process": true,
"setImmediate": true,
"setInterval": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>console-control-strings": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>aproba": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>object-assign": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": {
"builtin": {
"os.type": true
},
"globals": {
"process.env.LANG": true,
"process.env.LC_ALL": true,
"process.env.LC_CTYPE": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": {
"builtin": {
"assert.equal": true,
"events": true
},
"globals": {
"process": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": {
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>code-point-at": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": {
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point>number-is-nan": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": {
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi>ansi-regex": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": {
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": {
"globals": {
"process.stderr": true,
"process.stdout": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf": {
"builtin": {
"assert": true,
"fs": true,
"path.join": true
},
"globals": {
"process.platform": true,
"setTimeout": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob": {
"builtin": {
"assert": true,
"events.EventEmitter": true,
"fs.lstat": true,
"fs.lstatSync": true,
"fs.readdir": true,
"fs.readdirSync": true,
"fs.stat": true,
"fs.statSync": true,
"path.join": true,
"path.resolve": true,
"util": true
},
"globals": {
"console.error": true,
"process.cwd": true,
"process.nextTick": true,
"process.platform": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": {
"builtin": {
"fs.lstat": true,
"fs.lstatSync": true,
"fs.readlink": true,
"fs.readlinkSync": true,
"fs.realpath": true,
"fs.realpathSync": true,
"fs.stat": true,
"fs.statSync": true,
"path.normalize": true,
"path.resolve": true
},
"globals": {
"console.error": true,
"console.trace": true,
"process.env.NODE_DEBUG": true,
"process.nextTick": true,
"process.noDeprecation": true,
"process.platform": true,
"process.throwDeprecation": true,
"process.traceDeprecation": true,
"process.version": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inflight": {
"globals": {
"process.nextTick": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": {
"builtin": {
"util.inherits": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": {
"builtin": {
"path": true
},
"globals": {
"console.error": true
},
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": {
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>balanced-match": true,
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion>concat-map": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": {
"packages": {
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once>wrappy": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>path-is-absolute": {
"globals": {
"process.platform": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>semver": {
"globals": {
"console": true,
"process": true
}
},
"gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": {
"builtin": {
"buffer": true
}
},
"gulp>glob-watcher>chokidar>glob-parent": {
"builtin": {
"os.platform": true,
@ -5856,9 +6624,9 @@
"process.platform": true
},
"packages": {
"minimist": true,
"rc>deep-extend": true,
"rc>ini": true,
"rc>minimist": true,
"rc>strip-json-comments": true
}
},
@ -6019,6 +6787,7 @@
"eslint>glob-parent": true,
"eslint>is-glob": true,
"sass>chokidar>braces": true,
"sass>chokidar>fsevents": true,
"sass>chokidar>is-binary-path": true,
"watchify>anymatch": true
}
@ -6041,6 +6810,12 @@
"sass>chokidar>braces>fill-range>to-regex-range>is-number": true
}
},
"sass>chokidar>fsevents": {
"globals": {
"process.platform": true
},
"native": true
},
"sass>chokidar>is-binary-path": {
"builtin": {
"path.extname": true
@ -7618,12 +8393,82 @@
"enzyme>rst-selector-parser>nearley>randexp>ret": true
}
},
"yargs": {
"builtin": {
"assert": true,
"fs": true,
"path": true,
"util": true
},
"globals": {
"Error": true,
"console": true,
"process": true
},
"packages": {
"yargs>cliui": true,
"yargs>escalade": true,
"yargs>get-caller-file": true,
"yargs>require-directory": true,
"yargs>string-width": true,
"yargs>y18n": true,
"yargs>yargs-parser": true
}
},
"yargs>cliui": {
"packages": {
"eslint>strip-ansi": true,
"yargs>cliui>wrap-ansi": true,
"yargs>string-width": true
}
},
"yargs>cliui>wrap-ansi": {
"packages": {
"chalk>ansi-styles": true,
"eslint>strip-ansi": true,
"yargs>string-width": true
}
},
"yargs>escalade": {
"builtin": {
"fs.readdirSync": true,
"fs.statSync": true,
"path.dirname": true,
"path.resolve": true
}
},
"yargs>require-directory": {
"builtin": {
"fs.readdirSync": true,
"fs.statSync": true,
"path.dirname": true,
"path.join": true,
"path.resolve": true
}
},
"yargs>string-width": {
"packages": {
"eslint>strip-ansi": true,
"yargs>string-width>emoji-regex": true,
"yargs>string-width>is-fullwidth-code-point": true
}
},
"yargs>y18n": {
"builtin": {
"fs": true,
"path": true,
"util": true
}
},
"yargs>yargs-parser": {
"builtin": {
"fs": true,
"path": true,
"util": true
},
"globals": {
"process": true
}
}
}
}

View File

@ -127,10 +127,10 @@
"@metamask/obs-store": "^5.0.0",
"@metamask/post-message-stream": "^4.0.0",
"@metamask/providers": "^9.0.0",
"@metamask/rpc-methods": "^0.15.0",
"@metamask/rpc-methods": "^0.16.0",
"@metamask/slip44": "^2.1.0",
"@metamask/smart-transactions-controller": "^2.0.1",
"@metamask/snap-controllers": "^0.15.0",
"@metamask/smart-transactions-controller": "^2.1.0",
"@metamask/snap-controllers": "^0.16.0",
"@ngraveio/bc-ur": "^1.1.6",
"@popperjs/core": "^2.4.0",
"@reduxjs/toolkit": "^1.6.2",
@ -335,7 +335,6 @@
"lavamoat-viz": "^6.0.9",
"lockfile-lint": "^4.0.0",
"loose-envify": "^1.4.0",
"minimist": "^1.2.6",
"mocha": "^7.2.0",
"mockttp": "^2.6.0",
"nock": "^9.0.14",

View File

@ -1,323 +0,0 @@
diff --git a/node_modules/@metamask/snap-controllers/CHANGELOG.md b/node_modules/@metamask/snap-controllers/CHANGELOG.md
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/LICENSE b/node_modules/@metamask/snap-controllers/LICENSE
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/README.md b/node_modules/@metamask/snap-controllers/README.md
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/index.d.ts b/node_modules/@metamask/snap-controllers/dist/index.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/index.js b/node_modules/@metamask/snap-controllers/dist/index.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/index.js.map b/node_modules/@metamask/snap-controllers/dist/index.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/resource/ExternalResourceController.d.ts b/node_modules/@metamask/snap-controllers/dist/resource/ExternalResourceController.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/resource/ExternalResourceController.js b/node_modules/@metamask/snap-controllers/dist/resource/ExternalResourceController.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/resource/ExternalResourceController.js.map b/node_modules/@metamask/snap-controllers/dist/resource/ExternalResourceController.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/resource/index.d.ts b/node_modules/@metamask/snap-controllers/dist/resource/index.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/resource/index.js b/node_modules/@metamask/snap-controllers/dist/resource/index.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/resource/index.js.map b/node_modules/@metamask/snap-controllers/dist/resource/index.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/AbstractExecutionService.d.ts b/node_modules/@metamask/snap-controllers/dist/services/AbstractExecutionService.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/AbstractExecutionService.js b/node_modules/@metamask/snap-controllers/dist/services/AbstractExecutionService.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/AbstractExecutionService.js.map b/node_modules/@metamask/snap-controllers/dist/services/AbstractExecutionService.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/ExecutionService.d.ts b/node_modules/@metamask/snap-controllers/dist/services/ExecutionService.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/ExecutionService.js b/node_modules/@metamask/snap-controllers/dist/services/ExecutionService.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/ExecutionService.js.map b/node_modules/@metamask/snap-controllers/dist/services/ExecutionService.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/WebWorkerExecutionService.d.ts b/node_modules/@metamask/snap-controllers/dist/services/WebWorkerExecutionService.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/WebWorkerExecutionService.js b/node_modules/@metamask/snap-controllers/dist/services/WebWorkerExecutionService.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/WebWorkerExecutionService.js.map b/node_modules/@metamask/snap-controllers/dist/services/WebWorkerExecutionService.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.d.ts b/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.d.ts
old mode 100644
new mode 100755
index 91b3138..8ba2b34
--- a/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.d.ts
+++ b/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.d.ts
@@ -28,8 +28,9 @@ export declare class IframeExecutionService extends AbstractExecutionService<Env
protected _initJob(): Promise<EnvMetadata>;
private _initStreams;
/**
- * Creates the iframe to be used as the execution environment
- * This may run forever if the iframe never loads, but the promise should be wrapped in an initialization timeout in the SnapController
+ * Creates the iframe to be used as the execution environment. This may run
+ * forever if the iframe never loads, but the promise should be wrapped in
+ * an initialization timeout in the SnapController.
*
* @param uri - The iframe URI
* @param jobId - The job id
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js b/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js
old mode 100644
new mode 100755
index 8a93679..abf861d
--- a/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js
+++ b/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js
@@ -69,25 +69,54 @@ class IframeExecutionService extends AbstractExecutionService_1.AbstractExecutio
};
}
/**
- * Creates the iframe to be used as the execution environment
- * This may run forever if the iframe never loads, but the promise should be wrapped in an initialization timeout in the SnapController
+ * Creates the iframe to be used as the execution environment. This may run
+ * forever if the iframe never loads, but the promise should be wrapped in
+ * an initialization timeout in the SnapController.
*
* @param uri - The iframe URI
* @param jobId - The job id
*/
_createWindow(uri, jobId) {
- const iframe = document.createElement('iframe');
- return new Promise((resolve) => {
+ return new Promise((resolve, reject) => {
+ const iframe = document.createElement('iframe');
+ // The order of operations appears to matter for everything except this
+ // attribute. We may as well set it here.
+ iframe.setAttribute('id', jobId);
+ // In the past, we've had problems that appear to be symptomatic of the
+ // iframe firing the `load` event before its scripts are actually loaded,
+ // which has prevented snaps from executing properly. Therefore, we set
+ // the `src` attribute and append the iframe to the DOM before attaching
+ // the `load` listener.
+ //
+ // `load` should only fire when "all dependent resources" have been
+ // loaded, which includes scripts.
+ //
+ // MDN article for `load` event: https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
+ // Re: `load` firing twice: https://stackoverflow.com/questions/10781880/dynamically-created-iframe-triggers-onload-event-twice/15880489#15880489
+ iframe.setAttribute('src', uri);
+ document.body.appendChild(iframe);
iframe.addEventListener('load', () => {
if (iframe.contentWindow) {
resolve(iframe.contentWindow);
}
+ else {
+ // We don't know of a case when this would happen, but better to fail
+ // fast if it does.
+ reject(new Error(`iframe.contentWindow not present on load for job "${jobId}".`));
+ }
});
- // Set attributes before adding the iframe to the DOM to trigger 'load' event once everything has been loaded.
- iframe.setAttribute('src', uri);
- iframe.setAttribute('id', jobId);
+ // We need to set the sandbox attribute after appending the iframe to the
+ // DOM, otherwise errors in the iframe will not be propagated via `error`
+ // and `unhandledrejection` events, and we cannot catch and handle them.
+ // We wish we knew why this was the case.
+ //
+ // We set this property after adding the `load` listener because it
+ // appears to work dependably. ¯\_(ツ)_/¯
+ //
+ // We apply this property as a principle of least authority (POLA)
+ // measure.
+ // Ref: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox
iframe.setAttribute('sandbox', 'allow-scripts');
- document.body.appendChild(iframe);
});
}
}
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js.map b/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js.map
old mode 100644
new mode 100755
index a9e6647..62f6c49
--- a/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js.map
+++ b/node_modules/@metamask/snap-controllers/dist/services/iframe/IframeExecutionService.js.map
@@ -1 +1 @@
-{"version":3,"file":"IframeExecutionService.js","sourceRoot":"","sources":["../../../src/services/iframe/IframeExecutionService.ts"],"names":[],"mappings":";;;;;;AACA,uEAAwE;AAExE,6EAAqE;AACrE,qDAAgD;AAChD,2EAAoE;AACpE,mCAAgC;AAChC,gDAAwB;AACxB,0EAIqC;AAqBrC,MAAa,sBAAuB,SAAQ,mDAAqC;IAK/E,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,SAAS,GAC6B;QACtC,KAAK,CAAC;YACJ,iBAAiB;YACjB,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAES,UAAU,CAAC,UAAuB;QAC1C,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,MAAM,KAAK,GAAG,IAAA,eAAM,GAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,+BAAa,EAAE,CAAC;QAEtC,MAAM,iBAAiB,GAAG,IAAA,mDAAsB,GAAE,CAAC;QAEnD,IAAA,cAAI,EAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE1E,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,KAAK;YACT,OAAO;YACP,SAAS;SACV,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAElC,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAa;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAC3C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EACzB,KAAK,CACN,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,6CAAuB,CAAC;YAC5C,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;YACf,YAAY,EAAE,IAAI,CAAC,aAAa;SACjC,CAAC,CAAC;QACH,+CAA+C;QAC/C,MAAM,GAAG,GAAG,IAAA,yCAAc,EACxB,SAA8B,EAC9B,SAAS,KAAK,GAAG,CAClB,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,0CAAiB,CAAC,OAAO,CAAC,CAAC;QAClE,4FAA4F;QAC5F,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,EAAE;YACjC,IACE,IAAI,CAAC,KAAK;gBACV,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,uCAAuC;cACnF;gBACA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,MAAM,EAAE;oBACV,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,iCAAiC,EACjC,MAAM,EACN,IAAI,CAAC,KAAK,CACX,CAAC;iBACH;gBACD,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;aACpD;QACH,CAAC,CAAC;QACF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,0CAAiB,CAAC,QAAQ,CAAC,CAAC;QAE/D,iCAAiC;QACjC,OAAO;YACL,OAAO,EAAE,aAAkC;YAC3C,GAAG,EAAE,SAAS;YACd,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,GAAW,EAAE,KAAa;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnC,IAAI,MAAM,CAAC,aAAa,EAAE;oBACxB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;YACH,8GAA8G;YAC9G,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA7GD,wDA6GC"}
\ No newline at end of file
+{"version":3,"file":"IframeExecutionService.js","sourceRoot":"","sources":["../../../src/services/iframe/IframeExecutionService.ts"],"names":[],"mappings":";;;;;;AACA,uEAAwE;AAExE,6EAAqE;AACrE,qDAAgD;AAChD,2EAAoE;AACpE,mCAAgC;AAChC,gDAAwB;AACxB,0EAIqC;AAqBrC,MAAa,sBAAuB,SAAQ,mDAAqC;IAK/E,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,SAAS,GAC6B;QACtC,KAAK,CAAC;YACJ,iBAAiB;YACjB,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAES,UAAU,CAAC,UAAuB;QAC1C,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,MAAM,KAAK,GAAG,IAAA,eAAM,GAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,+BAAa,EAAE,CAAC;QAEtC,MAAM,iBAAiB,GAAG,IAAA,mDAAsB,GAAE,CAAC;QAEnD,IAAA,cAAI,EAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE1E,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,KAAK;YACT,OAAO;YACP,SAAS;SACV,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAElC,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAa;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAC3C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EACzB,KAAK,CACN,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,6CAAuB,CAAC;YAC5C,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;YACf,YAAY,EAAE,IAAI,CAAC,aAAa;SACjC,CAAC,CAAC;QACH,+CAA+C;QAC/C,MAAM,GAAG,GAAG,IAAA,yCAAc,EACxB,SAA8B,EAC9B,SAAS,KAAK,GAAG,CAClB,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,0CAAiB,CAAC,OAAO,CAAC,CAAC;QAClE,4FAA4F;QAC5F,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,EAAE;YACjC,IACE,IAAI,CAAC,KAAK;gBACV,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,uCAAuC;cACnF;gBACA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,MAAM,EAAE;oBACV,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,iCAAiC,EACjC,MAAM,EACN,IAAI,CAAC,KAAK,CACX,CAAC;iBACH;gBACD,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;aACpD;QACH,CAAC,CAAC;QACF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,0CAAiB,CAAC,QAAQ,CAAC,CAAC;QAE/D,iCAAiC;QACjC,OAAO;YACL,OAAO,EAAE,aAAkC;YAC3C,GAAG,EAAE,SAAS;YACd,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,aAAa,CAAC,GAAW,EAAE,KAAa;QAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,uEAAuE;YACvE,yCAAyC;YACzC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEjC,uEAAuE;YACvE,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,uBAAuB;YACvB,EAAE;YACF,mEAAmE;YACnE,kCAAkC;YAClC,EAAE;YACF,mGAAmG;YACnG,iJAAiJ;YACjJ,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnC,IAAI,MAAM,CAAC,aAAa,EAAE;oBACxB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;iBAC/B;qBAAM;oBACL,qEAAqE;oBACrE,mBAAmB;oBACnB,MAAM,CACJ,IAAI,KAAK,CACP,qDAAqD,KAAK,IAAI,CAC/D,CACF,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;YAEH,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,yCAAyC;YACzC,EAAE;YACF,mEAAmE;YACnE,wCAAwC;YACxC,EAAE;YACF,kEAAkE;YAClE,WAAW;YACX,qFAAqF;YACrF,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhJD,wDAgJC"}
\ No newline at end of file
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/index.d.ts b/node_modules/@metamask/snap-controllers/dist/services/iframe/index.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/index.js b/node_modules/@metamask/snap-controllers/dist/services/iframe/index.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/index.js.map b/node_modules/@metamask/snap-controllers/dist/services/iframe/index.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/testHelpers/server.d.ts b/node_modules/@metamask/snap-controllers/dist/services/iframe/testHelpers/server.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/testHelpers/server.js b/node_modules/@metamask/snap-controllers/dist/services/iframe/testHelpers/server.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/iframe/testHelpers/server.js.map b/node_modules/@metamask/snap-controllers/dist/services/iframe/testHelpers/server.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/index.d.ts b/node_modules/@metamask/snap-controllers/dist/services/index.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/index.js b/node_modules/@metamask/snap-controllers/dist/services/index.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/services/index.js.map b/node_modules/@metamask/snap-controllers/dist/services/index.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/RequestQueue.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/RequestQueue.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/RequestQueue.js b/node_modules/@metamask/snap-controllers/dist/snaps/RequestQueue.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/RequestQueue.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/RequestQueue.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/SnapController.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/SnapController.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/SnapController.js b/node_modules/@metamask/snap-controllers/dist/snaps/SnapController.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/SnapController.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/SnapController.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/default-endowments.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/default-endowments.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/default-endowments.js b/node_modules/@metamask/snap-controllers/dist/snaps/default-endowments.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/default-endowments.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/default-endowments.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/constants.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/constants.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/constants.js b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/constants.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/constants.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/constants.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/index.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/index.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/index.js b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/index.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/index.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/index.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/long-running.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/long-running.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/long-running.js b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/long-running.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/long-running.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/long-running.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/network-access.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/network-access.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/network-access.js b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/network-access.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/endowments/network-access.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/endowments/network-access.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/index.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/index.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/index.js b/node_modules/@metamask/snap-controllers/dist/snaps/index.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/index.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/index.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/NpmSnapPackageJson.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/NpmSnapPackageJson.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/NpmSnapPackageJson.js b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/NpmSnapPackageJson.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/NpmSnapPackageJson.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/NpmSnapPackageJson.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/SnapManifest.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/SnapManifest.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/SnapManifest.js b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/SnapManifest.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/SnapManifest.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/SnapManifest.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/index.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/index.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/index.js b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/index.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/index.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/index.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateNpmSnapPackageJson.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateNpmSnapPackageJson.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateNpmSnapPackageJson.js b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateNpmSnapPackageJson.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateNpmSnapPackageJson.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateNpmSnapPackageJson.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateSnapManifest.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateSnapManifest.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateSnapManifest.js b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateSnapManifest.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateSnapManifest.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/json-schemas/validateSnapManifest.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/utils.d.ts b/node_modules/@metamask/snap-controllers/dist/snaps/utils.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/utils.js b/node_modules/@metamask/snap-controllers/dist/snaps/utils.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/snaps/utils.js.map b/node_modules/@metamask/snap-controllers/dist/snaps/utils.js.map
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/utils.d.ts b/node_modules/@metamask/snap-controllers/dist/utils.d.ts
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/utils.js b/node_modules/@metamask/snap-controllers/dist/utils.js
old mode 100644
new mode 100755
diff --git a/node_modules/@metamask/snap-controllers/dist/utils.js.map b/node_modules/@metamask/snap-controllers/dist/utils.js.map
old mode 100644
new mode 100755

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,3 @@
module.exports = {
TEST_SNAPS_WEBSITE_URL: 'https://metamask.github.io/test-snaps/0.4.0',
TEST_SNAPS_WEBSITE_URL: 'https://metamask.github.io/test-snaps/1.0.0',
};

View File

@ -28,7 +28,6 @@ import {
///: END:ONLY_INCLUDE_IN
} from '../../../helpers/constants/routes';
import TextField from '../../ui/text-field';
import SearchIcon from '../../ui/search-icon';
import IconCheck from '../../ui/icon/icon-check';
import IconSpeechBubbles from '../../ui/icon/icon-speech-bubbles';
import IconConnect from '../../ui/icon/icon-connect';
@ -37,6 +36,7 @@ import IconPlus from '../../ui/icon/icon-plus';
import IconImport from '../../ui/icon/icon-import';
import Button from '../../ui/button';
import SearchIcon from '../../ui/icon/search-icon';
import KeyRingLabel from './keyring-label';
export function AccountMenuItem(props) {
@ -50,13 +50,13 @@ export function AccountMenuItem(props) {
{children}
</div>
) : (
<div className={itemClassName} onClick={onClick}>
<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}
</div>
</button>
);
}
@ -100,11 +100,12 @@ export default class AccountMenu extends Component {
};
addressFuse = new Fuse([], {
threshold: 0.45,
threshold: 0.55,
location: 0,
distance: 100,
maxPatternLength: 32,
minMatchCharLength: 1,
ignoreFieldNorm: true,
keys: [
{ name: 'name', weight: 0.5 },
{ name: 'address', weight: 0.5 },
@ -130,6 +131,11 @@ export default class AccountMenu extends Component {
}
renderAccountsSearch() {
const handleChange = (e) => {
const val = e.target.value.length > 1 ? e.target.value : '';
this.setSearchQuery(val);
};
const inputAdornment = (
<InputAdornment
position="start"
@ -139,7 +145,7 @@ export default class AccountMenu extends Component {
marginLeft: '8px',
}}
>
<SearchIcon color="currentColor" />
<SearchIcon color="var(--color-icon-muted)" />
</InputAdornment>
);
@ -149,8 +155,7 @@ export default class AccountMenu extends Component {
id="search-accounts"
placeholder={this.context.t('searchAccounts')}
type="text"
value={this.state.searchQuery}
onChange={(e) => this.setSearchQuery(e.target.value)}
onChange={handleChange}
startAdornment={inputAdornment}
fullWidth
theme="material-white-padded"
@ -200,7 +205,7 @@ export default class AccountMenu extends Component {
const iconAndNameForOpenSubject = addressSubjects[originOfCurrentTab];
return (
<div
<button
className="account-menu__account account-menu__item--clickable"
onClick={() => {
this.context.trackEvent({
@ -239,7 +244,7 @@ export default class AccountMenu extends Component {
/>
</div>
) : null}
</div>
</button>
);
});
}
@ -419,10 +424,7 @@ export default class AccountMenu extends Component {
}}
icon={
<div className="account-menu__notifications">
<i
className="fa fa-bell fa-xl"
color="var(--color-icon-default)"
/>
<i className="fa fa-bell fa-xl" />
{unreadNotificationsCount > 0 && (
<div className="account-menu__notifications__count">
{unreadNotificationsCount}

View File

@ -32,6 +32,9 @@
align-items: center;
position: relative;
z-index: 201;
border: 0;
background: none;
width: 100%;
@media screen and (max-width: $break-small) {
padding: 14px;
@ -53,7 +56,7 @@
&__icon {
margin-right: 8px;
display: flex;
color: var(--color-icon-default);
color: var(--color-icon-alternative);
i {
text-align: center;
@ -63,6 +66,8 @@
&__text {
@include Paragraph;
color: var(--color-text-default);
}
&__subtext {
@ -182,6 +187,9 @@
flex-flow: row nowrap;
padding: 16px 14px;
flex: 0 0 auto;
background: none;
border: 0;
width: 100%;
@media screen and (max-width: $break-small) {
padding: 12px 14px;
@ -230,6 +238,7 @@
overflow: hidden;
white-space: nowrap;
max-width: 200px;
text-align: start;
}
&__balance {

View File

@ -124,12 +124,12 @@ AdvancedGasControls.propTypes = {
gasEstimateType: PropTypes.oneOf(Object.values(GAS_ESTIMATE_TYPES)),
setMaxPriorityFee: PropTypes.func,
setMaxFee: PropTypes.func,
maxPriorityFee: PropTypes.number,
maxFee: PropTypes.number,
maxPriorityFee: PropTypes.string,
maxFee: PropTypes.string,
onManualChange: PropTypes.func,
gasLimit: PropTypes.number,
setGasLimit: PropTypes.func,
gasPrice: PropTypes.number,
gasPrice: PropTypes.string,
setGasPrice: PropTypes.func,
maxPriorityFeeFiat: PropTypes.string,
maxFeeFiat: PropTypes.string,

View File

@ -76,7 +76,7 @@ export default class AppHeader extends PureComponent {
return (
isUnlocked && (
<div
<button
className={classnames('account-menu__icon', {
'account-menu__icon--disabled': disabled,
})}
@ -105,7 +105,7 @@ export default class AppHeader extends PureComponent {
)
///: END:ONLY_INCLUDE_IN
}
</div>
</button>
)
);
}

View File

@ -89,6 +89,8 @@
.account-menu__icon {
position: relative;
border: 0;
background: none;
&__notification-count {
position: absolute;

View File

@ -7,7 +7,7 @@ import AssetListItem from '../asset-list-item';
import { PRIMARY, SECONDARY } from '../../../helpers/constants/common';
import { useUserPreferencedCurrency } from '../../../hooks/useUserPreferencedCurrency';
import {
getCurrentAccountWithSendEtherInfo,
getSelectedAccountCachedBalance,
getShouldShowFiat,
getNativeCurrencyImage,
getDetectedTokensInCurrentNetwork,
@ -33,9 +33,7 @@ const AssetList = ({ onClickAsset }) => {
const [showDetectedTokens, setShowDetectedTokens] = useState(false);
const selectedAccountBalance = useSelector(
(state) => getCurrentAccountWithSendEtherInfo(state).balance,
);
const selectedAccountBalance = useSelector(getSelectedAccountCachedBalance);
const nativeCurrency = useSelector(getNativeCurrency);
const showFiat = useSelector(getShouldShowFiat);
const trackEvent = useContext(MetaMetricsContext);

View File

@ -174,7 +174,7 @@ class NetworkDropdown extends Component {
<div className="network-check__transparent"></div>
)}
<ColorIndicator
color={opts.isLocalHost ? 'localhost' : COLORS.TEXT_MUTED}
color={opts.isLocalHost ? 'localhost' : COLORS.ICON_MUTED}
size={SIZES.LG}
type={ColorIndicator.TYPES.FILLED}
/>

View File

@ -79,7 +79,7 @@ describe('Network Dropdown', () => {
let found = false;
while (!found) {
if (
_wrapper.find(ColorIndicator).at(i).prop('color') === 'text-muted'
_wrapper.find(ColorIndicator).at(i).prop('color') === 'icon-muted'
) {
i += 1;
} else {

View File

@ -81,7 +81,7 @@ export default function EditGasDisplay({
const isMainnet = useSelector(getIsMainnet);
const supportsEIP1559 =
useSelector(checkNetworkAndAccountSupports1559) &&
!isLegacyTransaction(transaction.txParams);
!isLegacyTransaction(transaction?.txParams);
const showAdvancedInlineGasIfPossible = useSelector(
getAdvancedInlineGasShown,
);
@ -217,8 +217,8 @@ export default function EditGasDisplay({
hasGasErrors === false &&
supportsEIP1559 && (
<GasTiming
maxFeePerGas={maxFeePerGas}
maxPriorityFeePerGas={maxPriorityFeePerGas}
maxFeePerGas={maxFeePerGas.toString()}
maxPriorityFeePerGas={maxPriorityFeePerGas.toString()}
gasWarnings={gasWarnings}
/>
)

View File

@ -4,32 +4,36 @@ import EditGasDisplay from '.';
export default {
title: 'Components/App/EditGasDisplay',
id: __filename,
args: {
transaction: {},
},
};
export const DefaultStory = () => {
export const DefaultStory = (args) => {
return (
<div style={{ width: '600px' }}>
<EditGasDisplay />
<EditGasDisplay {...args} />
</div>
);
};
DefaultStory.storyName = 'Default';
export const WithEducation = () => {
export const WithEducation = (args) => {
return (
<div style={{ width: '600px' }}>
<EditGasDisplay showEducationButton />
<EditGasDisplay showEducationButton {...args} />
</div>
);
};
export const WithDappSuggestedGas = () => {
export const WithDappSuggestedGas = (args) => {
return (
<div style={{ width: '600px' }}>
<EditGasDisplay
dappSuggestedGasFee="100000"
dappOrigin="davidwalsh.name"
{...args}
/>
</div>
);

View File

@ -11,7 +11,7 @@ import {
} from '../../../../helpers/constants/design-system';
const NetworkStatusTooltip = ({ children, html, title }) => (
<Tooltip position="top" html={html} title={title} theme="tippy-tooltip-info">
<Tooltip position="top" html={html} title={title}>
<Box display={DISPLAY.FLEX} flexDirection={FLEX_DIRECTION.COLUMN}>
{children}
</Box>

View File

@ -90,8 +90,8 @@ const GasDetailsItem = ({ userAcknowledgedGasMissing = false }) => {
}
subTitle={
<GasTiming
maxPriorityFeePerGas={maxPriorityFeePerGas}
maxFeePerGas={maxFeePerGas}
maxPriorityFeePerGas={maxPriorityFeePerGas.toString()}
maxFeePerGas={maxFeePerGas.toString()}
/>
}
/>

View File

@ -43,7 +43,7 @@ const NicknamePopovers = ({ address, onClose }) => {
<UpdateNicknamePopover
address={address}
nickname={recipientNickname || null}
memo={addressBookEntryObject?.memo}
memo={addressBookEntryObject?.memo || null}
onClose={() => setPopoverToDisplay(SHOW_NICKNAME_POPOVER)}
onAdd={(recipient, nickname, memo) =>
dispatch(addToAddressBook(recipient, nickname, memo))

View File

@ -48,9 +48,7 @@ export default function NetworkDisplay({
>
<ColorIndicator
color={
networkType === NETWORK_TYPE_RPC
? COLORS.ICON_DEFAULT
: networkType
networkType === NETWORK_TYPE_RPC ? COLORS.ICON_MUTED : networkType
}
size={indicatorSize}
type={ColorIndicator.TYPES.FILLED}

View File

@ -43,7 +43,12 @@ const Player = ({ type, cbor, cancelQRHardwareSignRequest, toRead }) => {
alignItems={ALIGN_ITEMS.CENTER}
flexDirection={FLEX_DIRECTION.COLUMN}
>
<div style={{ border: '20px solid var(--qr-code-white-background)' }}>
<div
style={{
padding: 20,
backgroundColor: 'var(--qr-code-white-background)',
}}
>
<QRCode value={currentQRCode.toUpperCase()} size={250} />
</div>
</Box>

View File

@ -185,7 +185,7 @@ export default function TransactionDecoding({ to = '', inputData: data = '' }) {
</details>
</li>
) : (
<li className="solidity-value">
<li className="solidity-value" key={`solidity-value-${index}`}>
<div className="solidity-named-item solidity-item">
{typeClass !== 'array' && !Array.isArray(value) ? (
<span className="param-name typography--color-black">{name}: </span>
@ -239,6 +239,6 @@ export default function TransactionDecoding({ to = '', inputData: data = '' }) {
}
TransactionDecoding.propTypes = {
to: PropTypes.string.isRequired,
to: PropTypes.string,
inputData: PropTypes.string.isRequired,
};

View File

@ -3,18 +3,17 @@ import { tryReverseResolveAddress } from '../../../store/actions';
import {
getAddressBook,
getRpcPrefsForCurrentProvider,
getEnsResolutionByAddress,
} from '../../../selectors';
import { toChecksumHexAddress } from '../../../../shared/modules/hexstring-utils';
import TransactionListItemDetails from './transaction-list-item-details.component';
const mapStateToProps = (state, ownProps) => {
const { metamask } = state;
const { ensResolutionsByAddress } = metamask;
const { recipientAddress, senderAddress } = ownProps;
let recipientEns;
if (recipientAddress) {
const address = toChecksumHexAddress(recipientAddress);
recipientEns = ensResolutionsByAddress[address] || '';
recipientEns = getEnsResolutionByAddress(state, address);
}
const addressBook = getAddressBook(state);

View File

@ -16,13 +16,13 @@ import { PRIMARY, SECONDARY } from '../../../helpers/constants/common';
import { showModal } from '../../../store/actions';
import {
isBalanceCached,
getSelectedAccount,
getShouldShowFiat,
getCurrentKeyring,
getSwapsDefaultToken,
getIsSwapsChain,
getIsBuyableChain,
getNativeCurrencyImage,
getSelectedAccountCachedBalance,
} from '../../../selectors/selectors';
import SwapIcon from '../../ui/icon/swap-icon.component';
import BuyIcon from '../../ui/icon/overview-buy-icon.component';
@ -32,6 +32,7 @@ import IconButton from '../../ui/icon-button';
import { isHardwareKeyring } from '../../../helpers/utils/hardware';
import { MetaMetricsContext } from '../../../contexts/metametrics';
import { EVENT } from '../../../../shared/constants/metametrics';
import Spinner from '../../ui/spinner';
import WalletOverview from './wallet-overview';
const EthOverview = ({ className }) => {
@ -43,8 +44,7 @@ const EthOverview = ({ className }) => {
const usingHardwareWallet = isHardwareKeyring(keyring?.type);
const balanceIsCached = useSelector(isBalanceCached);
const showFiat = useSelector(getShouldShowFiat);
const selectedAccount = useSelector(getSelectedAccount);
const { balance } = selectedAccount;
const balance = useSelector(getSelectedAccountCachedBalance);
const isSwapsChain = useSelector(getIsSwapsChain);
const isBuyableChain = useSelector(getIsBuyableChain);
const primaryTokenImage = useSelector(getNativeCurrencyImage);
@ -60,21 +60,28 @@ const EthOverview = ({ className }) => {
>
<div className="eth-overview__balance">
<div className="eth-overview__primary-container">
<UserPreferencedCurrencyDisplay
className={classnames('eth-overview__primary-balance', {
'eth-overview__cached-balance': balanceIsCached,
})}
data-testid="eth-overview__primary-currency"
value={balance}
type={PRIMARY}
ethNumberOfDecimals={4}
hideTitle
/>
{balance ? (
<UserPreferencedCurrencyDisplay
className={classnames('eth-overview__primary-balance', {
'eth-overview__cached-balance': balanceIsCached,
})}
data-testid="eth-overview__primary-currency"
value={balance}
type={PRIMARY}
ethNumberOfDecimals={4}
hideTitle
/>
) : (
<Spinner
color="var(--color-secondary-default)"
className="loading-overlay__spinner"
/>
)}
{balanceIsCached ? (
<span className="eth-overview__cached-star">*</span>
) : null}
</div>
{showFiat && (
{showFiat && balance && (
<UserPreferencedCurrencyDisplay
className={classnames({
'eth-overview__cached-secondary-balance': balanceIsCached,

View File

@ -6,7 +6,7 @@ import { COLORS, SIZES } from '../../../helpers/constants/design-system';
export default function ColorIndicator({
size = SIZES.SM,
type = 'outlined',
color = COLORS.ICON_DEFAULT,
color = COLORS.ICON_MUTED,
borderColor,
iconClassName,
}) {

View File

@ -1,6 +1,14 @@
import React from 'react';
import PropTypes from 'prop-types';
/**
* @deprecated - Please use ActionableMessage type danger
* @see ActionableMessage
* @param {Object} props
* @param {string} props.errorMessage
* @param {string} props.errorKey
* @param {Object} context
*/
const ErrorMessage = (props, context) => {
const { errorMessage, errorKey } = props;
const error = errorKey ? context.t(errorKey) : errorMessage;

View File

@ -38,6 +38,7 @@ import IconPlus from './icon-plus';
import IconEye from './icon-eye';
import IconEyeSlash from './icon-eye-slash';
import IconTokenSearch from './icon-token-search';
import SearchIcon from './search-icon';
const validColors = [
'var(--color-icon-default)',
@ -127,6 +128,7 @@ export const DefaultStory = (args) => (
<IconItem Component={<IconSpeechBubbles {...args} />} />
<IconItem Component={<IconCog {...args} />} />
<IconItem Component={<IconTokenSearch {...args} />} />
<IconItem Component={<SearchIcon {...args} />} />
</div>
</Box>
<Typography

View File

@ -0,0 +1,42 @@
import React from 'react';
import PropTypes from 'prop-types';
const SearchIcon = ({
size = 24,
color = 'currentColor',
ariaLabel,
className,
}) => (
<svg
width={size}
height={size}
fill={color}
className={className}
aria-label={ariaLabel}
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"
>
<path d="m235 427c-51 0-100-21-136-57-36-36-56-84-56-135 0-26 5-51 14-74 10-23 24-44 42-62 18-18 39-32 62-42 23-9 48-14 74-14 25 0 50 5 73 14 23 10 45 24 62 42 18 18 32 39 42 62 10 23 15 48 15 74 0 43-15 86-42 119l78 79c2 2 4 4 5 7 1 2 1 5 1 8 0 3 0 6-1 8-1 3-3 5-5 7-2 2-4 4-7 5-2 1-5 1-8 1-3 0-6 0-8-1-3-1-5-3-7-5l-79-78c-33 27-76 42-119 42z m0-43c82 0 149-67 149-149 0-83-67-150-149-150-83 0-150 67-150 150 0 82 67 149 150 149z" />
</svg>
);
SearchIcon.propTypes = {
/**
* The size of the Icon follows an 8px grid 2 = 16px, 3 = 24px etc
*/
size: PropTypes.number,
/**
* The color of the icon accepts design token css variables
*/
color: PropTypes.string,
/**
* An additional className to assign the Icon
*/
className: PropTypes.string,
/**
* The aria-label of the icon for accessibility purposes
*/
ariaLabel: PropTypes.string,
};
export default SearchIcon;

View File

@ -11,58 +11,10 @@
}
}
.tippy-popper[x-placement^=top] .tippy-tooltip-info-theme [x-arrow],
.tippy-popper[x-placement^=top] .tippy-tooltip-wideInfo-theme [x-arrow] {
border-top-color: var(--color-background-default);
}
.tippy-popper[x-placement^=right] .tippy-tooltip-info-theme [x-arrow],
.tippy-popper[x-placement^=right] .tippy-tooltip-wideInfo-theme [x-arrow] {
border-right-color: var(--color-background-default);
}
.tippy-popper[x-placement^=left] .tippy-tooltip-info-theme [x-arrow],
.tippy-popper[x-placement^=left] .tippy-tooltip-wideInfo-theme [x-arrow] {
border-left-color: var(--color-background-default);
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip-info-theme [x-arrow],
.tippy-popper[x-placement^=bottom] .tippy-tooltip-wideInfo-theme [x-arrow] {
border-bottom-color: var(--color-background-default);
}
.tippy-tooltip {
&#{&}-info-theme,
&#{&}-wideInfo-theme {
background: var(--color-background-default);
color: var(--color-text-default);
box-shadow: 0 0 14px rgba(0, 0, 0, 0.18);
border-radius: 8px;
max-width: 203px;
&#{&}-info-theme {
max-width: 200px;
padding: 16px;
padding-bottom: 15px;
.tippy-tooltip-content {
@include H7;
text-align: left;
color: var(--color-text-alternative);
a {
color: var(--color-primary-default);
}
p {
margin-bottom: 12px;
&:last-child {
margin-bottom: 0;
}
}
}
}
&#{&}-wideInfo-theme {
max-width: 260px;
padding-bottom: 16px;
}
}

View File

@ -16,7 +16,6 @@ export default function InfoTooltip({
position = '',
containerClassName,
wrapperClassName,
wide,
iconFillColor = 'var(--color-icon-alternative)',
}) {
return (
@ -32,7 +31,7 @@ export default function InfoTooltip({
tooltipInnerClassName="info-tooltip__tooltip-content"
tooltipArrowClassName={positionArrowClassMap[position]}
html={contentText}
theme={wide ? 'tippy-tooltip-wideInfo' : 'tippy-tooltip-info'}
theme="tippy-tooltip-info"
>
<InfoTooltipIcon fillColor={iconFillColor} />
</Tooltip>
@ -49,10 +48,6 @@ InfoTooltip.propTypes = {
* Shows position of the tooltip
*/
position: PropTypes.oneOf(['top', 'left', 'bottom', 'right']),
/**
* Set if the tooltip wide
*/
wide: PropTypes.bool,
/**
* Add custom CSS class for container
*/

View File

@ -17,7 +17,6 @@ export default {
control: 'select',
options: ['top', 'left', 'bottom', 'right'],
},
wide: { control: 'boolean' },
containerClassName: { control: 'text' },
wrapperClassName: { control: 'text' },
iconFillColor: { control: 'text' },

View File

@ -74,9 +74,7 @@ export default class PageContainer extends PureComponent {
children = children.filter(Boolean);
const { activeTabIndex } = this.state;
return children[activeTabIndex]
? children[activeTabIndex].props.children
: children.props.children;
return (children[activeTabIndex] || children[0]).props.children;
}
renderContent() {

View File

@ -1 +0,0 @@
export { default } from './search-icon.component';

View File

@ -1,20 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';
export default function SearchIcon({ color }) {
return (
<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" fill={color}>
<g clipRule="evenodd" fillRule="evenodd">
<path d="M9.167 3.333a5.833 5.833 0 100 11.667 5.833 5.833 0 000-11.667zm-7.5 5.834a7.5 7.5 0 1115 0 7.5 7.5 0 01-15 0z" />
<path d="M13.286 13.286a.833.833 0 011.178 0l3.625 3.625a.833.833 0 11-1.178 1.178l-3.625-3.625a.833.833 0 010-1.178z" />
</g>
</svg>
);
}
SearchIcon.propTypes = {
/**
* Color of the icon should be a valid design system color and is required
*/
color: PropTypes.string.isRequired,
};

View File

@ -2,3 +2,9 @@
.MuiInputBase-input {
color: var(--color-text-default) !important;
}
.MuiFormHelperText-root.Mui-error {
@include H7;
color: var(--color-error-default) !important;
}

View File

@ -1,30 +1,44 @@
.tippy-tooltip.white-theme {
background: var(--color-background-default);
color: var(--color-text-default);
box-shadow: 0 0 14px rgba(0, 0, 0, 0.18);
padding: 12px 16px;
padding-bottom: 11px;
.tippy-popper {
.tippy-tooltip.tippy-tooltip--mm-custom-theme {
background: var(--color-background-default);
color: var(--color-text-default);
box-shadow: 0 0 14px rgba(0, 0, 0, 0.18);
padding: 12px 16px;
padding-bottom: 11px;
.tippy-tooltip-content {
@include H7;
.tippy-tooltip-content {
@include H7;
text-align: left;
color: var(--color-text-alternative);
text-align: left;
color: var(--color-text-alternative);
a {
color: var(--color-primary-default);
}
p {
margin-bottom: 16px;
&:last-child {
margin-bottom: 0;
}
}
}
}
&[x-placement^=top] .tippy-tooltip.tippy-tooltip--mm-custom-theme [x-arrow] {
border-top-color: var(--color-background-default);
}
&[x-placement^=right] .tippy-tooltip.tippy-tooltip--mm-custom-theme [x-arrow] {
border-right-color: var(--color-background-default);
}
&[x-placement^=left] .tippy-tooltip.tippy-tooltip--mm-custom-theme [x-arrow] {
border-left-color: var(--color-background-default);
}
&[x-placement^=bottom] .tippy-tooltip.tippy-tooltip--mm-custom-theme [x-arrow] {
border-bottom-color: var(--color-background-default);
}
}
.tippy-popper[x-placement^=top] .white-theme [x-arrow] {
border-top-color: var(--color-background-default);
}
.tippy-popper[x-placement^=right] .white-theme [x-arrow] {
border-right-color: var(--color-background-default);
}
.tippy-popper[x-placement^=left] .white-theme [x-arrow] {
border-left-color: var(--color-background-default);
}
.tippy-popper[x-placement^=bottom] .white-theme [x-arrow] {
border-bottom-color: var(--color-background-default);
}

View File

@ -82,7 +82,7 @@ export default class Tooltip extends PureComponent {
style={style}
title={disabled ? '' : title}
trigger={trigger}
theme={theme}
theme={`tippy-tooltip--mm-custom ${theme}`} // Required for correct theming
tabIndex={tabIndex || 0}
tag={tag}
>

View File

@ -0,0 +1,92 @@
import React from 'react';
import Box from '../box/box';
import Typography from '../typography/typography';
import Tooltip from '.';
export default {
title: 'Components/UI/Tooltip',
id: __filename,
argTypes: {
containerClassName: {
control: 'text',
},
disabled: {
control: 'boolean',
},
html: {
control: 'html',
},
interactive: {
control: 'boolean',
},
onHidden: {
action: 'onHidden',
},
position: {
control: 'select',
options: ['top', 'right', 'bottom', 'left'],
},
size: {
control: 'select',
options: ['small', 'regular', 'big'],
},
title: {
control: 'text',
},
trigger: {
control: 'any',
},
wrapperClassName: {
control: 'text',
},
style: {
control: 'object',
},
tabIndex: {
control: 'number',
},
tag: {
control: 'text',
},
},
args: {
position: 'top',
title: 'Title of the tooltip',
trigger: 'mouseenter',
},
};
export const DefaultStory = (args) => (
<Box display="flex">
<Typography>Hover over the info icon to see the tooltip</Typography>
<Tooltip {...args}>
<i
className="fa fa-sm fa-info-circle"
style={{ color: 'var(--color-icon-alternative)' }}
/>
</Tooltip>
</Box>
);
DefaultStory.storyName = 'Default';
export const HTML = (args) => (
<Box display="flex">
<Typography>This tooltips content is html</Typography>
<Tooltip {...args}>
<i
className="fa fa-sm fa-info-circle"
style={{ color: 'var(--color-icon-alternative)' }}
/>
</Tooltip>
</Box>
);
HTML.args = {
interactive: true,
html: (
<Box>
And includes a <a href="#">link</a>
</Box>
),
};

View File

@ -12,16 +12,18 @@ import Identicon from '../identicon/identicon.component';
import { getUseTokenDetection, getTokenList } from '../../../selectors';
export default function UpdateNicknamePopover({
nickname,
address,
nickname = '',
memo = '',
onAdd,
memo,
onClose,
}) {
const t = useContext(I18nContext);
const [nicknameInput, setNicknameInput] = useState(nickname);
const [memoInput, setMemoInput] = useState(memo);
const [nicknameInput, setNicknameInput] = useState(
nickname === null ? '' : nickname,
);
const [memoInput, setMemoInput] = useState(memo === null ? '' : memo);
const handleNicknameChange = (event) => {
setNicknameInput(event.target.value);

View File

@ -124,4 +124,3 @@ input.form-control {
* {
font-family: $font-family;
}

View File

@ -44,6 +44,7 @@ import {
getTokenList,
getAddressBookEntryOrAccountName,
getIsMultiLayerFeeNetwork,
getEnsResolutionByAddress,
} from '../../selectors';
import {
disconnectGasFeeEstimatePoller,
@ -91,6 +92,7 @@ import { resetEnsResolution } from '../ens';
import {
isBurnAddress,
isValidHexAddress,
toChecksumHexAddress,
} from '../../../shared/modules/hexstring-utils';
import { sumHexes } from '../../helpers/utils/transactions.util';
import fetchEstimatedL1Fee from '../../helpers/utils/optimism/fetchEstimatedL1Fee';
@ -2260,6 +2262,17 @@ export function getRecipientUserInput(state) {
}
export function getRecipient(state) {
const checksummedAddress = toChecksumHexAddress(
state[name].recipient.address,
);
if (state.metamask.ensResolutionsByAddress) {
return {
...state[name].recipient,
nickname:
state[name].recipient.nickname ||
getEnsResolutionByAddress(state, checksummedAddress),
};
}
return state[name].recipient;
}

View File

@ -2585,9 +2585,12 @@ describe('Send Slice', () => {
});
it('has a selector to get recipient state', () => {
expect(getRecipient({ send: initialState })).toMatchObject(
initialState.recipient,
);
expect(
getRecipient({
send: initialState,
metamask: { ensResolutionsByAddress: {} },
}),
).toMatchObject(initialState.recipient);
});
});

View File

@ -11,6 +11,7 @@ export const COLORS = {
TEXT_ALTERNATIVE: 'text-alternative',
TEXT_MUTED: 'text-muted',
ICON_DEFAULT: 'icon-default',
ICON_ALTERNATIVE: 'text-alternative',
ICON_MUTED: 'icon-muted',
BORDER_DEFAULT: 'border-default',
BORDER_MUTED: 'border-muted',

View File

@ -85,14 +85,39 @@ const AssetOptions = ({
);
};
const isNotFunc = (p) => {
return typeof p !== 'function';
};
AssetOptions.propTypes = {
isEthNetwork: PropTypes.bool,
isNativeAsset: PropTypes.bool,
onRemove: PropTypes.func.isRequired,
onClickBlockExplorer: PropTypes.func.isRequired,
onViewAccountDetails: PropTypes.func.isRequired,
onViewTokenDetails: PropTypes.func.isRequired,
tokenSymbol: PropTypes.string,
onRemove: (props) => {
if (props.isNativeAsset === false && isNotFunc(props.onRemove)) {
throw new Error(
'When isNativeAsset is true, onRemove is a required prop',
);
}
},
onViewTokenDetails: (props) => {
if (props.isNativeAsset === false && isNotFunc(props.onViewTokenDetails)) {
throw new Error(
'When isNativeAsset is true, onViewTokenDetails is a required prop',
);
}
},
tokenSymbol: (props) => {
if (
props.isNativeAsset === false &&
typeof props.tokenSymbol !== 'string'
) {
throw new Error(
'When isNativeAsset is true, tokenSymbol is a required prop',
);
}
},
};
export default AssetOptions;

View File

@ -417,7 +417,7 @@ export default class ConfirmTransactionBase extends Component {
<div className="custom-nonce-input">
<TextField
type="number"
min="0"
min={0}
placeholder={
typeof nextNonce === 'number' ? nextNonce.toString() : null
}
@ -546,10 +546,10 @@ export default class ConfirmTransactionBase extends Component {
maxPriorityFeePerGas={hexWEIToDecGWEI(
maxPriorityFeePerGas ||
txData.txParams.maxPriorityFeePerGas,
)}
).toString()}
maxFeePerGas={hexWEIToDecGWEI(
maxFeePerGas || txData.txParams.maxFeePerGas,
)}
).toString()}
/>
)}
</>

View File

@ -34,6 +34,7 @@ import {
getIsMultiLayerFeeNetwork,
getEIP1559V2Enabled,
getIsBuyableChain,
getEnsResolutionByAddress,
} from '../../selectors';
import { getMostRecentOverviewPage } from '../../ducks/history/history';
import {
@ -80,7 +81,6 @@ const mapStateToProps = (state, ownProps) => {
const isBuyableChain = getIsBuyableChain(state);
const { confirmTransaction, metamask } = state;
const {
ensResolutionsByAddress,
conversionRate,
identities,
addressBook,
@ -137,7 +137,7 @@ const mapStateToProps = (state, ownProps) => {
addressBook &&
addressBook[chainId] &&
addressBook[chainId][checksummedAddress];
const toEns = ensResolutionsByAddress[checksummedAddress] || '';
const toEns = getEnsResolutionByAddress(state, checksummedAddress);
const toNickname = addressBookObject ? addressBookObject.name : '';
const transactionStatus = transaction ? transaction.status : '';
const supportsEIP1559 =

View File

@ -35,6 +35,11 @@ export default function SeedPhraseIntro() {
ru: 'Russian',
tl: 'Tagalog',
vi: 'Vietnamese',
de: 'German',
el: 'Greek',
fr: 'French',
tr: 'Turkish',
zh: 'Chinese - China',
};
return (

View File

@ -123,7 +123,16 @@ export default class Home extends PureComponent {
showRecoveryPhraseReminder: PropTypes.bool.isRequired,
setRecoveryPhraseReminderHasBeenShown: PropTypes.func.isRequired,
setRecoveryPhraseReminderLastShown: PropTypes.func.isRequired,
seedPhraseBackedUp: PropTypes.bool.isRequired,
seedPhraseBackedUp: (props) => {
if (
props.seedPhraseBackedUp !== null &&
typeof props.seedPhraseBackedUp !== 'boolean'
) {
throw new Error(
`seedPhraseBackedUp is required to be null or boolean. Received ${props.seedPhraseBackedUp}`,
);
}
},
newNetworkAdded: PropTypes.string,
setNewNetworkAdded: PropTypes.func.isRequired,
// This prop is used in the `shouldCloseNotificationPopup` function

View File

@ -4,6 +4,7 @@ import Fuse from 'fuse.js';
import InputAdornment from '@material-ui/core/InputAdornment';
import TextField from '../../../components/ui/text-field';
import { isEqualCaseInsensitive } from '../../../../shared/modules/string-utils';
import SearchIcon from '../../../components/ui/icon/search-icon';
export default class TokenSearch extends Component {
static contextTypes = {
@ -59,10 +60,7 @@ export default class TokenSearch extends Component {
renderAdornment() {
return (
<InputAdornment position="start" style={{ marginRight: '12px' }}>
<i
className="fa fa-search"
style={{ color: 'var(--color-icon-muted)' }}
/>
<SearchIcon color="var(--color-icon-muted)" />
</InputAdornment>
);
}

View File

@ -43,8 +43,10 @@ export default function OnboardingMetametrics() {
const onConfirm = async () => {
const [, metaMetricsId] = await dispatch(setParticipateInMetaMetrics(true));
const isInitiallyNotParticipating = !participateInMetaMetrics;
try {
if (!participateInMetaMetrics) {
if (isInitiallyNotParticipating) {
trackEvent(
{
category: EVENT.CATEGORIES.ONBOARDING,
@ -83,8 +85,11 @@ export default function OnboardingMetametrics() {
const onCancel = async () => {
await dispatch(setParticipateInMetaMetrics(false));
const isInitiallyParticipatingOrNotSet =
participateInMetaMetrics === null || participateInMetaMetrics;
try {
if (!participateInMetaMetrics) {
if (isInitiallyParticipatingOrNotSet) {
trackEvent(
{
category: EVENT.CATEGORIES.ONBOARDING,

View File

@ -47,6 +47,11 @@ export default function SecureYourWallet() {
ru: 'Russian',
tl: 'Tagalog',
vi: 'Vietnamese',
de: 'German',
el: 'Greek',
fr: 'French',
tr: 'Turkish',
zh: 'Chinese - China',
};
const defaultLang = subtitles[currentLocale] ? currentLocale : 'en';

Some files were not shown because too many files have changed in this diff Show More