diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 0f7977000c63..93758bae919f 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -8,7 +8,7 @@ on: jobs: CLABot: if: github.event_name == 'pull_request_target' || contains(github.event.comment.html_url, '/pull/') - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 permissions: pull-requests: write contents: write diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f945eb7b7553..6f004d274f94 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -23,7 +23,7 @@ on: jobs: analyze: name: Analyze - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 permissions: actions: read contents: read diff --git a/.github/workflows/crowdin_action.yml b/.github/workflows/crowdin_action.yml index a77592321684..f476277ed05c 100644 --- a/.github/workflows/crowdin_action.yml +++ b/.github/workflows/crowdin_action.yml @@ -13,7 +13,7 @@ on: jobs: synchronize-with-crowdin: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: diff --git a/.iyarc b/.iyarc index bbd5d06c106d..316510d7d26a 100644 --- a/.iyarc +++ b/.iyarc @@ -1,5 +1,2 @@ # improved-yarn-audit advisory exclusions -GHSA-93q8-gq69-wqmw GHSA-257v-vj4p-3w2h -GHSA-wm7h-9275-46v2 -GHSA-pfrx-2q88-qq97 diff --git a/.storybook/test-data.js b/.storybook/test-data.js index 1a2b4b9a67c2..52fcf393ed43 100644 --- a/.storybook/test-data.js +++ b/.storybook/test-data.js @@ -1383,12 +1383,6 @@ const state = { }, }, }, - threeBoxSyncingAllowed: false, - showRestorePrompt: true, - threeBoxLastUpdated: 0, - threeBoxAddress: null, - threeBoxSynced: false, - threeBoxDisabled: false, swapsState: { quotes: {}, fetchParams: null, @@ -1479,8 +1473,6 @@ const state = { }, networksTabSelectedRpcUrl: '', loadingMethodData: false, - show3BoxModalAfterImport: false, - threeBoxLastUpdated: null, requestAccountTabs: {}, openMetaMaskTabs: {}, currentWindowTab: {}, diff --git a/CHANGELOG.md b/CHANGELOG.md index f3c2079ff254..4cfbbac3eb73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,57 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [10.21.0] +### Added +- Add functionality for buying native currency and tokens on Optimism and Arbitrum, using Transak ([#16031](https://github.com/MetaMask/metamask-extension/pull/16031)) +- Add functionality for buying tokens with Wyre ([#15992](https://github.com/MetaMask/metamask-extension/pull/15992)) +- Add functionality for buying tokens with Moonpay ([#15924](https://github.com/MetaMask/metamask-extension/pull/15924)) +- Add functionality for buying tokens with Coinbase Pay and Transak ([#15551](https://github.com/MetaMask/metamask-extension/pull/15551)) +- Add new translations for DE, EL, ES, FR, HI, ID, JA, KO, PT, RU, TL TR, VI and ZH_CN ([#15411](https://github.com/MetaMask/metamask-extension/pull/15411)) +- Add Hardware wallet Buy and Tutorial buttons and update copies ([#14738](https://github.com/MetaMask/metamask-extension/pull/14738)) +- [FLASK] Add support for blocking Snaps by source shasum ([#15830](https://github.com/MetaMask/metamask-extension/pull/15830)) +- [FLASK] Add transaction insights via Snaps ([#15814](https://github.com/MetaMask/metamask-extension/pull/15814)) + +### Changed +- Dark Mode: elevate the Theme functionality from Experimental to General Settings ([#15865](https://github.com/MetaMask/metamask-extension/pull/15865)) +- Update Arbitrum symbol from `AETH` to `ETH` ([#15747](https://github.com/MetaMask/metamask-extension/pull/15747)) +- Update warning dialog copy on SetApprovalForAll Confirmation page ([#15744](https://github.com/MetaMask/metamask-extension/pull/15744)) +- Update header display on NFT Approval and SetApprovalForAll Confirmation pages ([#15727](https://github.com/MetaMask/metamask-extension/pull/15727)) +- Bump `@metamask/contract-metadata` from `1.35.0` to `1.36.0` ([#15597](https://github.com/MetaMask/metamask-extension/pull/15597)) + - Add tokens: ZKP, GTON, PRVG, XCHF, XHT, OGV, veOFV, wOUSD and SUSHI + - Fix SVG icons for sETH and sUSD tokens + - Add the top NFT contracts on Opensea +- Enable Add Popular Networks by default for all users ([#16172](https://github.com/MetaMask/metamask-extension/pull/16172)) +- Update `@metamask/controllers` to v31.2.0 ([#16033](https://github.com/MetaMask/metamask-extension/pull/16033)) +- Swaps: replace Rinkeby with Goerli for performing swaps on a testnet ([#15781](https://github.com/MetaMask/metamask-extension/pull/15781)) +- Swaps: only render tooltip component if swap network is disabled ([#15733](https://github.com/MetaMask/metamask-extension/pull/15733)) +- Swaps: use `gasEstimateWithRefund` instead of `gasEstimate` for more precise estimations ([#15968](https://github.com/MetaMask/metamask-extension/pull/15968)) +- Swaps: improve Build Quote page ([#15758](https://github.com/MetaMask/metamask-extension/pull/15758)) + - Preserve search query for the `Swap from` and `Swap to` form fields + - Update placeholder text on `Swap to` and `Swap from` search fields + - Update copy on slippage tolerance tooltip +- [FLASK] `Add snap_getBip32PublicKey` RPC method ([#15889](https://github.com/MetaMask/metamask-extension/pull/15889)) +- **[FLASK] BREAKING:** Remove deprecated snap_getBip44Entropy_* method ([#15889](https://github.com/MetaMask/metamask-extension/pull/15889)) +- [FLASK] Miscellaneous fixes to the Snaps platform ([#15889](https://github.com/MetaMask/metamask-extension/pull/15889)) + +### Fixed +- Fix double account creation when using keyboard controls on New Account page ([#15077](https://github.com/MetaMask/metamask-extension/pull/15077)) +- Fix error message getting cut when introducing wrong private key format on Import Account page ([#15940](https://github.com/MetaMask/metamask-extension/pull/15940)) +- Fix edit button not being displayed when sending tx with hex data to a contract on Confirm tx page ([#15812](https://github.com/MetaMask/metamask-extension/pull/15812)) +- Fix incorrect balance asset on Encrypt and Decrypt Request pages ([#15885](https://github.com/MetaMask/metamask-extension/pull/15885)) +- Fix spelling errors and improve grammar for German translation ([#15592](https://github.com/MetaMask/metamask-extension/pull/15592)) +- Fix typos for French translation ([#15735](https://github.com/MetaMask/metamask-extension/pull/15735)) +- Fix incorrect identicon type for Account, by ensuring Blockies is displayed everywhere when enabled instead of Jazzicon ([#15768](https://github.com/MetaMask/metamask-extension/pull/15768)) +- Fix query verification for signatures, by ensuring we skip searching 4byte directory if we don't have a full 4 bytes of data ([#15473](https://github.com/MetaMask/metamask-extension/pull/15473)) +- Fix address resolution to Account name, when editing a tx instead of displaying the hex address ([#15873](https://github.com/MetaMask/metamask-extension/pull/15873)) +- Fix "Get ether from faucet" message, by including the end of the sentence and a full stop ([#15875](https://github.com/MetaMask/metamask-extension/pull/15875)) +- Fix font weight of the `` element, by restoring the `b` style ([#15784](https://github.com/MetaMask/metamask-extension/pull/15784)) +- Fix ETH badge being displayed to networks where ETH is not the primary currency ([#16102](https://github.com/MetaMask/metamask-extension/pull/16102)) +- Fix overlapping Portfolio tooltip with Network popup, when a custom network is added ([#16090](https://github.com/MetaMask/metamask-extension/pull/16090)) +- Fix typo in French translation for "removeAccount" ([#16095](https://github.com/MetaMask/metamask-extension/pull/16095)) +- Fix What's New notification not displayed to users who created a new wallet ([#16042](https://github.com/MetaMask/metamask-extension/pull/16042)) +- [FLASK] Fix an issue with installing snaps that request the `eth_accounts` permission ([#16161](https://github.com/MetaMask/metamask-extension/pull/16161)) + ## [10.20.0] ### Changed - Deprecate Rinkeby, Ropsten and Kovan test networks and define Goerli as the default network in test mode ([#15989](https://github.com/MetaMask/metamask-extension/pull/15989)) @@ -3198,7 +3249,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Uncategorized - Added the ability to restore accounts from seed words. -[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.20.0...HEAD +[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.21.0...HEAD +[10.21.0]: https://github.com/MetaMask/metamask-extension/compare/v10.20.0...v10.21.0 [10.20.0]: https://github.com/MetaMask/metamask-extension/compare/v10.19.0...v10.20.0 [10.19.0]: https://github.com/MetaMask/metamask-extension/compare/v10.18.4...v10.19.0 [10.18.4]: https://github.com/MetaMask/metamask-extension/compare/v10.18.3...v10.18.4 diff --git a/app/_locales/de/messages.json b/app/_locales/de/messages.json index 99fcac95f8cc..9bb05950213b 100644 --- a/app/_locales/de/messages.json +++ b/app/_locales/de/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Daten" }, - "dataBackupFoundInfo": { - "message": "Einige Ihrer Kontodaten wurden während einer früheren MetaMask-Installation gesichert. Dies könnte Ihre Einstellungen, Kontakte und Token umfassen. Möchten Sie diese Daten jetzt wiederherstellen?" - }, "dataBackupSeemsCorrupt": { "message": "Ihre Daten konnten nicht wiederhergestellt werden. Die Datei scheint beschädigt zu sein." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Sie können die Benutzereinstellungen, die bevorzugte Einstellungen und Kontoadressen umfassen, aus einer vormals gesicherten JSON-Datei wiederherstellen." }, - "restoreWalletPreferences": { - "message": "$1 hat ein Backup Ihrer Daten gefunden. Möchten Sie die Präferenzen Ihrer Wallet wiederherstellen?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Transaktion wiederholen" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Mit Mobilgerät synchronisieren" }, - "syncWithThreeBox": { - "message": "Daten mit 3Box synchronisieren (experimentell)" - }, - "syncWithThreeBoxDescription": { - "message": "Aktivieren Sie, um Ihre Einstellungen mit 3Box zu sichern. Diese Funktion ist derzeit experimentell; verwenden Sie diese auf eigene Gefahr." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box wurde aufgrund eines Fehlers während der ersten Synchronisation deaktiviert" - }, "tenPercentIncreased": { "message": "10% Erhöhung" }, diff --git a/app/_locales/el/messages.json b/app/_locales/el/messages.json index 14f445d5275f..51ca24c9d469 100644 --- a/app/_locales/el/messages.json +++ b/app/_locales/el/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Δεδομένα" }, - "dataBackupFoundInfo": { - "message": "Ορισμένα από τα δεδομένα του λογαριασμού σας δημιουργήθηκαν σε προηγούμενη εγκατάσταση του MetaMask. Αυτό θα μπορούσε να περιλαμβάνει τις ρυθμίσεις, τις επαφές και τα διακριτικά σας. Θα θέλατε να επαναφέρετε αυτά τα δεδομένα τώρα;" - }, "dataBackupSeemsCorrupt": { "message": "Δεν μπορείτε να επαναφέρετε τα δεδομένα σας. Το αρχείο φαίνεται να είναι κατεστραμμένο." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Μπορείτε να επαναφέρετε τις ρυθμίσεις χρήστη που περιλαμβάνουν τις προτιμήσεις και τις διευθύνσεις λογαριασμών από ένα αρχείο JSON για το οποίο έχει δημιουργηθεί στο παρελθόν αντίγραφο ασφαλείας." }, - "restoreWalletPreferences": { - "message": "Βρέθηκε ένα αντίγραφο ασφαλείας των δεδομένων σας από το $1. Θα θέλατε να επαναφέρετε τις προτιμήσεις του πορτοφολιού σας;", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Επανάληψη Συναλλαγής" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Συγχρονισμός με κινητό" }, - "syncWithThreeBox": { - "message": "Συγχρονισμός δεδομένων με 3Box (πειραματικό)" - }, - "syncWithThreeBoxDescription": { - "message": "Ενεργοποιήστε για να δημιουργηθούν αντίγραφα ασφαλείας των ρυθμίσεων σας με το 3Box. Αυτή η λειτουργία είναι επί του παρόντος πειραματική. Χρησιμοποιήστε τη με δική σας ευθύνη." - }, - "syncWithThreeBoxDisabled": { - "message": "Το 3Box έχει απενεργοποιηθεί λόγω σφάλματος κατά τον αρχικό συγχρονισμό" - }, "tenPercentIncreased": { "message": "10% αύξηση" }, diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 6bbb7c5b9739..e785cd4fdac0 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -896,9 +896,6 @@ "data": { "message": "Data" }, - "dataBackupFoundInfo": { - "message": "Some of your account data was backed up during a previous installation of MetaMask. This could include your settings, contacts, and tokens. Would you like to restore this data now?" - }, "dataBackupSeemsCorrupt": { "message": "Can not restore your data. The file appears to be corrupt." }, @@ -2902,10 +2899,6 @@ "restoreUserDataDescription": { "message": "You can restore user settings containing preferences and account addresses from a previously backed up JSON file." }, - "restoreWalletPreferences": { - "message": "A backup of your data from $1 has been found. Would you like to restore your wallet preferences?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Retry transaction" }, @@ -3891,15 +3884,6 @@ "syncWithMobileTitle": { "message": "Sync with mobile" }, - "syncWithThreeBox": { - "message": "Sync data with 3Box (experimental)" - }, - "syncWithThreeBoxDescription": { - "message": "Turn on to have your settings backed up with 3Box. This feature is currently experimental; use at your own risk." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box has been disabled due to an error during the initial sync" - }, "tenPercentIncreased": { "message": "10% increase" }, diff --git a/app/_locales/es/messages.json b/app/_locales/es/messages.json index 9386a4fb68e2..d30487cb1868 100644 --- a/app/_locales/es/messages.json +++ b/app/_locales/es/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Datos" }, - "dataBackupFoundInfo": { - "message": "Se crearon copias de seguridad de algunos de los datos de la cuenta durante una instalación anterior de MetaMask. Esto podría incluir configuraciones, contactos y tokens. ¿Le gustaría restaurar estos datos ahora?" - }, "dataBackupSeemsCorrupt": { "message": "No se pueden restaurar sus datos. El archivo parece estar corrupto." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Puede restaurar la configuración del usuario que contiene preferencias y direcciones de cuenta desde en un archivo JSON previamente respaldado." }, - "restoreWalletPreferences": { - "message": "Se encontró una copia de seguridad de los datos de $1. ¿Desea restaurar las preferencias de cartera?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Reintentar transacción" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Sincronizar con dispositivo móvil" }, - "syncWithThreeBox": { - "message": "Sincronizar datos con 3Box (experimental)" - }, - "syncWithThreeBoxDescription": { - "message": "Active esta opción para crear una copia de seguridad de la configuración con 3Box. Actualmente, esta función es experimental. Úsela bajo su propio riesgo." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box se deshabilitó debido a un error durante la sincronización inicial" - }, "tenPercentIncreased": { "message": "10% de aumento" }, diff --git a/app/_locales/es_419/messages.json b/app/_locales/es_419/messages.json index 92fd1dcec5ae..1051bb56acd9 100644 --- a/app/_locales/es_419/messages.json +++ b/app/_locales/es_419/messages.json @@ -627,9 +627,6 @@ "data": { "message": "Datos" }, - "dataBackupFoundInfo": { - "message": "Se crearon copias de seguridad de algunos de los datos de la cuenta durante una instalación anterior de MetaMask. Esto podría incluir configuraciones, contactos y tokens. ¿Quiere restaurar estos datos ahora?" - }, "dataHex": { "message": "Hex" }, @@ -2188,10 +2185,6 @@ "restore": { "message": "Restaurar" }, - "restoreWalletPreferences": { - "message": "Se encontró una copia de seguridad de los datos de $1. ¿Desea restaurar las preferencias de cartera?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Reintentar transacción" }, @@ -2903,15 +2896,6 @@ "syncWithMobileTitle": { "message": "Sincronizar con dispositivo móvil" }, - "syncWithThreeBox": { - "message": "Sincronizar datos con 3Box (experimental)" - }, - "syncWithThreeBoxDescription": { - "message": "Active esta opción para crear una copia de seguridad de la configuración con 3Box. Actualmente, esta función es experimental. Úsela bajo su propio riesgo." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box se deshabilitó debido a un error durante la sincronización inicial" - }, "tenPercentIncreased": { "message": "10% de aumento" }, diff --git a/app/_locales/fr/messages.json b/app/_locales/fr/messages.json index 3a4954068b8d..4207d700a2e2 100644 --- a/app/_locales/fr/messages.json +++ b/app/_locales/fr/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Données" }, - "dataBackupFoundInfo": { - "message": "Certaines données de votre compte ont été sauvegardées lors d’une précédente installation de MetaMask. Il peut s’agir de vos paramètres, contacts et jetons. Souhaitez-vous restaurer ces données maintenant ?" - }, "dataBackupSeemsCorrupt": { "message": "Impossible de restaurer vos données. Le fichier semble corrompu." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Vous pouvez restaurer les paramètres de l’utilisateur qui contiennent les préférences et les adresses de compte à partir d’un fichier JSON précédemment sauvegardé." }, - "restoreWalletPreferences": { - "message": "Une sauvegarde de vos données de $1 a été trouvée. Voulez-vous restaurer vos préférences de portefeuille ?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Retenter la transaction" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Synchroniser avec le mobile" }, - "syncWithThreeBox": { - "message": "Synchronisation des données avec 3Box (expérimental)" - }, - "syncWithThreeBoxDescription": { - "message": "Activez cette fonction pour que vos paramètres soient sauvegardés avec 3Box. Cette fonction est actuellement expérimentale ; utilisez-la avec prudence." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box a été désactivé en raison d’une erreur lors de la synchronisation initiale" - }, "tenPercentIncreased": { "message": "Augmentation de 10 %" }, diff --git a/app/_locales/hi/messages.json b/app/_locales/hi/messages.json index 57cb9f7e38ae..21bf38605f70 100644 --- a/app/_locales/hi/messages.json +++ b/app/_locales/hi/messages.json @@ -878,9 +878,6 @@ "data": { "message": "डेटा" }, - "dataBackupFoundInfo": { - "message": "MetaMask की पिछली स्थापना के दौरान आपके कुछ खाता डेटा का बैकअप लिया गया था। इसमें आपकी सेटिंग, संपर्क और टोकन शामिल हो सकते हैं। क्या आप अब इस डेटा को पुनर्स्थापित करना चाहेंगे?" - }, "dataBackupSeemsCorrupt": { "message": "आपका डेटा रीस्टोर नहीं किया जा सकता। लगता है फ़ाइल करप्ट हुई है।" }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "वरीयताएँ और अकाउंट एड्रेस से युक्त यूजर सेटिंग्स को आप पहले से बैकअप की गई JSON फ़ाइल से रीस्टोर सकते हैं।" }, - "restoreWalletPreferences": { - "message": "$1 से आपके डेटा का बैकअप मिला है। क्या आप अपनी वॉलेट वरीयताओं को पुनर्स्थापित करना चाहते हैं?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "लेनदेन का पुनः प्रयास करें" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "मोबाइल के साथ सिंक करें" }, - "syncWithThreeBox": { - "message": "3Box के साथ डेटा सिंक करें (प्रयोगात्मक)" - }, - "syncWithThreeBoxDescription": { - "message": "3Box के साथ अपनी सेटिंग का बैकअप लेने के लिए चालू करें। यह सुविधा वर्तमान में प्रयोगात्मक है; अपने जोखिम पर इस्तेमाल करें।" - }, - "syncWithThreeBoxDisabled": { - "message": "प्रारंभिक सिंक के दौरान एक त्रुटि के कारण 3Box को अक्षम कर दिया गया है" - }, "tenPercentIncreased": { "message": "10% बढ़ोत्तरी" }, diff --git a/app/_locales/id/messages.json b/app/_locales/id/messages.json index 217b661c1b64..b96e385c93b5 100644 --- a/app/_locales/id/messages.json +++ b/app/_locales/id/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Data" }, - "dataBackupFoundInfo": { - "message": "Beberapa data akun Anda telah dicadangkan selama pemasangan MetaMask yang lalu. Ini bisa mencakup pengaturan, kontak, dan token Anda. Apakah Anda ingin memulihkan data ini sekarang?" - }, "dataBackupSeemsCorrupt": { "message": "Tidak dapat memulihkan data Anda. File tampaknya rusak." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Anda dapat memulihkan pengaturan pengguna yang berisi preferensi dan alamat akun dari berkas JSON yang dicadangkan sebelumnya." }, - "restoreWalletPreferences": { - "message": "Cadangan data Anda dari $1 telah ditemukan. Pulihkan preferensi dompet Anda?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Coba lagi transaksi" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Sinkronkan dengan seluler" }, - "syncWithThreeBox": { - "message": "Sinkronkan data dengan 3Box (eksperimen)" - }, - "syncWithThreeBoxDescription": { - "message": "Aktifkan agar pengaturan Anda dicadangkan dengan 3Box. Fitur ini sekarang sedang dalam masa percobaan; risiko ditanggung sendiri." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box telah dinonaktifkan karena terjadi galat selama sinkronisasi awal" - }, "tenPercentIncreased": { "message": "Meningkat 10%" }, diff --git a/app/_locales/it/messages.json b/app/_locales/it/messages.json index 4e44212028b9..4b5cf3a06d4b 100644 --- a/app/_locales/it/messages.json +++ b/app/_locales/it/messages.json @@ -361,9 +361,6 @@ "customToken": { "message": "Token Personalizzato" }, - "dataBackupFoundInfo": { - "message": "Alcuni dati sul tuo account sono state salvate durante una installazione precedente di MetaMask. Questi includono le impostazioni, i contatti, e i token. Vuoi ripristinare questi dati?" - }, "decimal": { "message": "Precisione Decimali" }, @@ -1100,10 +1097,6 @@ "restore": { "message": "Ripristina" }, - "restoreWalletPreferences": { - "message": "È stato trovato un backup dei tuoi dati da $1. Vuoi ripristinare le preferenze del portafoglio?", - "description": "$1 is the date at which the data was backed up" - }, "reusedTokenNameWarning": { "message": "Un token usa un simbolo già usato da un altro token, ciò può confondere o ingannare." }, @@ -1533,15 +1526,6 @@ "syncWithMobileTitle": { "message": "Sincronizza con dispositivo mobile" }, - "syncWithThreeBox": { - "message": "Sincronizza dati con 3Box (sperimentale)" - }, - "syncWithThreeBoxDescription": { - "message": "Attiva per avere le tue impostazioni salvate su 3Box. Questa funzionalità è attualmente sperimentale; usala a tuo rischio." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box è stato disabilitato a causa di un errore durante la sincronizzazione iniziale" - }, "terms": { "message": "Termini di Uso" }, diff --git a/app/_locales/ja/messages.json b/app/_locales/ja/messages.json index 4728a7af14fe..0cd2ad4318bf 100644 --- a/app/_locales/ja/messages.json +++ b/app/_locales/ja/messages.json @@ -878,9 +878,6 @@ "data": { "message": "データ" }, - "dataBackupFoundInfo": { - "message": "一部のアカウントデータはMetaMaskの前回のインストール時にバックアップされました。これには、設定、連絡先、およびトークンが含まれている可能性があります。このデータを今すぐ復元しますか?" - }, "dataBackupSeemsCorrupt": { "message": "データを復元できません。ファイルが破損しているようです。" }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "以前バックアップされた JSON ファイルから、設定とアカウントアドレスを含むユーザー設定を復元できます。" }, - "restoreWalletPreferences": { - "message": "$1のデータのバックアップが見つかりました。ウォレットの基本設定を復元しますか?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "トランザクションを再試行" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "モバイルと同期" }, - "syncWithThreeBox": { - "message": "データを3Boxと同期 (試験的機能)" - }, - "syncWithThreeBoxDescription": { - "message": "これをオンにすると、設定が3Boxでバックアップされます。この機能は現在試験段階にあります。自己責任でご利用ください。" - }, - "syncWithThreeBoxDisabled": { - "message": "3Boxは、最初の同期中のエラーのため、無効化されました" - }, "tenPercentIncreased": { "message": "10% の増加" }, diff --git a/app/_locales/ko/messages.json b/app/_locales/ko/messages.json index b7373b816c11..ca183dfdce4e 100644 --- a/app/_locales/ko/messages.json +++ b/app/_locales/ko/messages.json @@ -878,9 +878,6 @@ "data": { "message": "데이터" }, - "dataBackupFoundInfo": { - "message": "일부 계정 데이터가 이전의 MetaMask 설치 도중에 백업되었습니다. 여기에는 설정, 연락처, 토큰이 포함될 수 있습니다. 지금 이 데이터를 복구할까요?" - }, "dataBackupSeemsCorrupt": { "message": "사용자 데이터를 복원할 수 없습니다. 파일이 손상된 것 같습니다." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "이전에 백업한 JSON 파일에서 기본 설정과 계정 주소가 포함된 사용자 설정을 복원할 수 있습니다." }, - "restoreWalletPreferences": { - "message": "$1의 데이터 백업이 발견되었습니다. 지갑 환경설정을 복원할까요?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "트랜잭션 재시도" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "모바일과 동기화" }, - "syncWithThreeBox": { - "message": "3Box로 데이터 동기화(실험적 기능)" - }, - "syncWithThreeBoxDescription": { - "message": "이 기능을 켜면 3Box를 이용해 설정을 백업합니다. 현재 실험 중인 기능이므로 본인의 책임 하에 사용해야 합니다." - }, - "syncWithThreeBoxDisabled": { - "message": "초기 동기화 도중 오류가 발생하여 3Box가 비활성화되었습니다." - }, "tenPercentIncreased": { "message": "10% 인상" }, diff --git a/app/_locales/ph/messages.json b/app/_locales/ph/messages.json index 15d7292168f7..f1a2bc71f5f8 100644 --- a/app/_locales/ph/messages.json +++ b/app/_locales/ph/messages.json @@ -430,9 +430,6 @@ "customToken": { "message": "Custom na Token" }, - "dataBackupFoundInfo": { - "message": "Ang ilan sa data ng iyong account ay na-back up sa nakaraang pag-install ng MetaMask. Maaaring kasama rito ang iyong mga setting, contact, at token. Gusto mo na bang i-restore ang data na ito ngayon?" - }, "decimal": { "message": "Decimal ng Token" }, @@ -1380,10 +1377,6 @@ "restore": { "message": "I-restore" }, - "restoreWalletPreferences": { - "message": "Nakita ang backup ng iyong data mula sa $1. Gusto mo bang i-restore ang mga kagustuhan mo sa wallet?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Subukan Ulit ang Transaksyon" }, @@ -1952,15 +1945,6 @@ "syncWithMobileTitle": { "message": "I-sync sa mobile" }, - "syncWithThreeBox": { - "message": "I-sync ang data sa 3Box (pinag-eeksperimentuhan)" - }, - "syncWithThreeBoxDescription": { - "message": "I-on para ma-back up ang iyong mga setting sa 3Box. Kasalukuyang pinag-eeksperimentuhan ang feature na ito; gamitin sa sarili mong pagpapasya." - }, - "syncWithThreeBoxDisabled": { - "message": "Na-disable ang 3Box dahil sa isang error sa unang pag-sync" - }, "terms": { "message": "Mga Tuntunin ng Paggamit" }, diff --git a/app/_locales/pt/messages.json b/app/_locales/pt/messages.json index 571888981b65..122d69b45dae 100644 --- a/app/_locales/pt/messages.json +++ b/app/_locales/pt/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Dados" }, - "dataBackupFoundInfo": { - "message": "Foi feito o backup de alguns dos dados da sua conta durante uma instalação anterior da MetaMask. Isso pode incluir configurações, contatos e tokens. Gostaria de restaurar esses dados agora?" - }, "dataBackupSeemsCorrupt": { "message": "Não é possível restaurar seus dados. O arquivo parece estar corrompido." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Você pode restaurar as configurações do usuário contendo preferências e endereços de contas a partir de um arquivo de backup JSON." }, - "restoreWalletPreferences": { - "message": "Encontramos um backup dos seus dados de $1. Gostaria de restaurar as preferências da sua carteira?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Tentar transação novamente" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Sincronizar com dispositivo móvel" }, - "syncWithThreeBox": { - "message": "Sincronizar dados com 3Box (experimental)" - }, - "syncWithThreeBoxDescription": { - "message": "Ative para fazer backup das suas configurações com o 3Box. Esse recurso é experimental; use por sua conta e risco." - }, - "syncWithThreeBoxDisabled": { - "message": "O 3Box foi desabilitado por conta de um erro durante a sincronização inicial" - }, "tenPercentIncreased": { "message": "10% de aumento" }, diff --git a/app/_locales/pt_BR/messages.json b/app/_locales/pt_BR/messages.json index 2755f4967aa5..0f4b63ef33cb 100644 --- a/app/_locales/pt_BR/messages.json +++ b/app/_locales/pt_BR/messages.json @@ -627,9 +627,6 @@ "data": { "message": "Dados" }, - "dataBackupFoundInfo": { - "message": "Foi feito o backup de alguns dos dados da sua conta durante uma instalação anterior da MetaMask. Isso pode incluir configurações, contatos e tokens. Gostaria de restaurar esses dados agora?" - }, "dataHex": { "message": "Hex" }, @@ -2172,10 +2169,6 @@ "restore": { "message": "Restaurar" }, - "restoreWalletPreferences": { - "message": "Encontramos um backup dos seus dados de $1. Gostaria de restaurar as preferências da sua carteira?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Tentar transação novamente" }, @@ -2887,15 +2880,6 @@ "syncWithMobileTitle": { "message": "Sincronizar com dispositivo móvel" }, - "syncWithThreeBox": { - "message": "Sincronizar dados com 3Box (experimental)" - }, - "syncWithThreeBoxDescription": { - "message": "Ative para fazer backup das suas configurações com o 3Box. Esse recurso é experimental; use por sua conta e risco." - }, - "syncWithThreeBoxDisabled": { - "message": "O 3Box foi desabilitado por conta de um erro durante a sincronização inicial" - }, "tenPercentIncreased": { "message": "10% de aumento" }, diff --git a/app/_locales/ru/messages.json b/app/_locales/ru/messages.json index 418e1594c7e6..b354c2f9b281 100644 --- a/app/_locales/ru/messages.json +++ b/app/_locales/ru/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Данные" }, - "dataBackupFoundInfo": { - "message": "Некоторые данные вашего счета были скопированы во время предыдущей установки MetaMask. Они могли включать ваши настройки, контакты и токены. Хотите восстановить эти данные сейчас?" - }, "dataBackupSeemsCorrupt": { "message": "Не удается восстановить ваши данные. Файл, по-видимому, поврежден." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Вы можете восстановить пользовательские настройки, содержащие настройки и адреса аккаунтов, из ранее сохраненного файла JSON." }, - "restoreWalletPreferences": { - "message": "Найдена резервная копия ваших данных из $1. Хотите восстановить настройки кошелька?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Повторить транзакцию" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Синхронизировать с мобильным устройством" }, - "syncWithThreeBox": { - "message": "Синхронизировать данные с 3Box (экспериментальная функция)" - }, - "syncWithThreeBoxDescription": { - "message": "Включите, чтобы скопировать ваши настройки с помощью 3Box. Эта функция в настоящее время является экспериментальной. Используйте ее на свой страх и риск." - }, - "syncWithThreeBoxDisabled": { - "message": "3Box отключен из-за ошибки во время первоначальной синхронизации" - }, "tenPercentIncreased": { "message": "Увеличение на 10%" }, diff --git a/app/_locales/tl/messages.json b/app/_locales/tl/messages.json index f6b9f9dbf884..a5167c5c98d2 100644 --- a/app/_locales/tl/messages.json +++ b/app/_locales/tl/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Datos" }, - "dataBackupFoundInfo": { - "message": "Ang ilan sa data ng iyong account ay na-back up sa nakaraang pag-install ng MetaMask. Maaaring kasama rito ang iyong mga setting, contact, at token. Gusto mo bang i-restore na ang data na ito?" - }, "dataBackupSeemsCorrupt": { "message": "Hindi maibalik ang iyong datos. Mukhang sira ang file." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Maaari mong ibalik ang mga setting ng user na naglalaman ng mga kagustuhan at mga address ng account mula sa isang dating na-back up na JSON file." }, - "restoreWalletPreferences": { - "message": "Nakita ang backup ng iyong data mula sa $1. Gusto mo bang i-restore ang mga kagustuhan mo sa wallet?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Subukan Ulit ang Transaksyon" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "I-sync sa mobile" }, - "syncWithThreeBox": { - "message": "I-sync ang data sa 3Box (pinag-eeksperimentuhan)" - }, - "syncWithThreeBoxDescription": { - "message": "I-on para ma-back up ang iyong mga setting sa 3Box. Kasalukuyang pinag-eeksperimentuhan ang feature na ito; gamitin sa sarili mong pagpapasya." - }, - "syncWithThreeBoxDisabled": { - "message": "Na-disable ang 3Box dahil sa isang error sa unang pag-sync" - }, "tenPercentIncreased": { "message": "10% na dagdag" }, diff --git a/app/_locales/tr/messages.json b/app/_locales/tr/messages.json index d9fe54dd62be..71d8b4c854fa 100644 --- a/app/_locales/tr/messages.json +++ b/app/_locales/tr/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Veri" }, - "dataBackupFoundInfo": { - "message": "MetaMask'ın önceki bir kurulumu sırasında hesap verilerinizden bazıları yedeklenmiştir. Buna ayarlar, kişiler ve tokenler dahil olabilir. Bu verileri şimdi geri yüklemek ister misiniz?" - }, "dataBackupSeemsCorrupt": { "message": "Verileriniz geri yüklenemedi. Dosyanın bozuk olduğu algılandı." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Tercihleri ve hesap adreslerini içeren kullanıcı ayarlarını daha önce yedeklenmiş bir JSON dosyasından geri yükleyebilirsiniz." }, - "restoreWalletPreferences": { - "message": "Verilerinizin $1 tarihinden bir yedeği bulundu. Cüzdan tercihlerinizi geri yüklemek ister misiniz?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "İşlemi Tekrar Dene" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Mobil ile senkronize et" }, - "syncWithThreeBox": { - "message": "Verileri 3Box ile senkronize et (deneysel)" - }, - "syncWithThreeBoxDescription": { - "message": "Ayarlarınızın 3Box ile yedeklenmesini sağlamak için açın. Bu özellik şu anda deney aşamasındadır; kullanım riski size aittir." - }, - "syncWithThreeBoxDisabled": { - "message": "İlk senkronizasyon işlemi sırasındaki bir hata nedeniyle 3Box devre dışı bırakıldı" - }, "tenPercentIncreased": { "message": "%10 artış" }, diff --git a/app/_locales/vi/messages.json b/app/_locales/vi/messages.json index 04e63180153d..f50799c83d42 100644 --- a/app/_locales/vi/messages.json +++ b/app/_locales/vi/messages.json @@ -878,9 +878,6 @@ "data": { "message": "Dữ liệu" }, - "dataBackupFoundInfo": { - "message": "Một số dữ liệu tài khoản của bạn đã được sao lưu trong lần cài đặt MetaMask trước đó. Dữ liệu này có thể bao gồm các tùy chọn cài đặt, danh bạ và token. Bạn có muốn khôi phục dữ liệu này bây giờ không?" - }, "dataBackupSeemsCorrupt": { "message": "Không thể khôi phục dữ liệu của bạn. Tập tin có vẻ đã bị hỏng." }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "Bạn có thể khôi phục cài đặt người dùng chứa các tùy chọn và địa chỉ tài khoản từ tập tin JSON đã sao lưu trước đó." }, - "restoreWalletPreferences": { - "message": "Đã tìm thấy bản sao lưu dữ liệu của bạn từ $1. Bạn có muốn khôi phục các tùy chọn ưu tiên trong ví của mình không?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "Thử lại giao dịch" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "Đồng bộ với thiết bị di động" }, - "syncWithThreeBox": { - "message": "Đồng bộ dữ liệu với 3Box (thử nghiệm)" - }, - "syncWithThreeBoxDescription": { - "message": "Bật để sao lưu các tùy chọn cài đặt của bạn với 3Box. Tính năng này hiện đang trong giai đoạn thử nghiệm; bạn tự chịu rủi ro khi sử dụng." - }, - "syncWithThreeBoxDisabled": { - "message": "Đã tắt 3Box do có lỗi xảy ra trong quá trình đồng bộ ban đầu" - }, "tenPercentIncreased": { "message": "Tăng 10%" }, diff --git a/app/_locales/zh/messages.json b/app/_locales/zh/messages.json deleted file mode 100644 index ce6a95c5671d..000000000000 --- a/app/_locales/zh/messages.json +++ /dev/null @@ -1,4114 +0,0 @@ -{ - "QRHardwareInvalidTransactionTitle": { - "message": "错误" - }, - "QRHardwareMismatchedSignId": { - "message": "不一致的交易数据。请查看交易详情。" - }, - "QRHardwarePubkeyAccountOutOfRange": { - "message": "暂无更多账户。若想访问下方未列出的其他账户,请重新连接您的硬件钱包并选择它。" - }, - "QRHardwareScanInstructions": { - "message": "将二维码放在摄像头前。屏幕是模糊的,但不影响对二维码的读取。" - }, - "QRHardwareSignRequestCancel": { - "message": "拒绝" - }, - "QRHardwareSignRequestDescription": { - "message": "使用钱包签名后,点击“获取签名”以接收签名" - }, - "QRHardwareSignRequestGetSignature": { - "message": "获取签名" - }, - "QRHardwareSignRequestSubtitle": { - "message": "用您的钱包扫描二维码" - }, - "QRHardwareSignRequestTitle": { - "message": "请求签名" - }, - "QRHardwareUnknownQRCodeTitle": { - "message": "错误" - }, - "QRHardwareUnknownWalletQRCode": { - "message": "非法二维码,请扫描硬件钱包的同步二维码。" - }, - "QRHardwareWalletImporterTitle": { - "message": "扫描二维码" - }, - "QRHardwareWalletSteps1Description": { - "message": "连接通过二维码通信的气隙硬件钱包。官方支持的气隙硬件钱包包括:" - }, - "QRHardwareWalletSteps1Title": { - "message": "基于二维码的硬件钱包" - }, - "QRHardwareWalletSteps2Description": { - "message": "AirGap Vault & Ngrave (即将上线)" - }, - "about": { - "message": "关于" - }, - "acceleratingATransaction": { - "message": "* 通过使用更高的燃料价格来加速交易,会增加其更快地被网络处理的机会,但这并不总是得到保证。" - }, - "acceptTermsOfUse": { - "message": "我已阅读并同意 $1", - "description": "$1 is the `terms` message" - }, - "accessAndSpendNotice": { - "message": "$1 可以访问并使用此最大金额", - "description": "$1 is the url of the site requesting ability to spend" - }, - "accessAndSpendNoticeNFT": { - "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": "正在访问您的相机……" - }, - "account": { - "message": "账户" - }, - "accountDetails": { - "message": "账户详情" - }, - "accountIdenticon": { - "message": "账户哈希头像" - }, - "accountName": { - "message": "账户名称" - }, - "accountNameDuplicate": { - "message": "此账户名称已存在", - "description": "This is an error message shown when the user enters a new account name that matches an existing account name" - }, - "accountOptions": { - "message": "账户选项" - }, - "accountSelectionRequired": { - "message": "您需要选择一个账户!" - }, - "active": { - "message": "活跃" - }, - "activity": { - "message": "活动" - }, - "activityLog": { - "message": "活动日志" - }, - "add": { - "message": "添加" - }, - "addANetwork": { - "message": "添加网络" - }, - "addANetworkManually": { - "message": "手动添加网络" - }, - "addANickname": { - "message": "添加昵称" - }, - "addAcquiredTokens": { - "message": "添加您使用 MetaMask 获得的代币" - }, - "addAlias": { - "message": "添加别名" - }, - "addContact": { - "message": "添加联系信息" - }, - "addCustomToken": { - "message": "添加自定义代币" - }, - "addCustomTokenByContractAddress": { - "message": "找不到代币?您可以通过粘贴其地址手动添加任何代币。代币合约地址可以在 $1 上找到。", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, - "addEthereumChainConfirmationDescription": { - "message": "这将允许在 MetaMask 中使用此网络。" - }, - "addEthereumChainConfirmationRisks": { - "message": "MetaMask 不验证自定义网络。" - }, - "addEthereumChainConfirmationRisksLearnMore": { - "message": "了解 $1。", - "description": "$1 is a link with text that is provided by the 'addEthereumChainConfirmationRisksLearnMoreLink' key" - }, - "addEthereumChainConfirmationRisksLearnMoreLink": { - "message": "诈骗和网络安全风险", - "description": "Link text for the 'addEthereumChainConfirmationRisksLearnMore' translation key" - }, - "addEthereumChainConfirmationTitle": { - "message": "允许此网站增加一个网络?" - }, - "addFriendsAndAddresses": { - "message": "添加您信任的朋友和地址" - }, - "addFromAListOfPopularNetworks": { - "message": "从热门网络列表中选择网络来添加,或手动添加网络。仅可与您信任的实体互动。" - }, - "addMemo": { - "message": "添加备忘录" - }, - "addMoreNetworks": { - "message": "手动添加更多网络" - }, - "addNetwork": { - "message": "添加网络" - }, - "addNetworkTooltipWarning": { - "message": "此网络连接依赖于第三方。此连接可能不太可靠,或使第三方可进行活动跟踪。$1", - "description": "$1 is Learn more link" - }, - "addSuggestedTokens": { - "message": "添加推荐代币" - }, - "addToken": { - "message": "添加代币" - }, - "address": { - "message": "地址" - }, - "addressBookIcon": { - "message": "地址簿图标" - }, - "advanced": { - "message": "高级" - }, - "advancedBaseGasFeeToolTip": { - "message": "当您的交易被包含在区块中时,您的最大基本费用与实际基本费用之间的任何差额将被退还。总金额按最大基本费用(以GWEI为单位)*燃料上限计算。" - }, - "advancedGasFeeDefaultOptIn": { - "message": "将这些 $1 保存为“高级”默认值" - }, - "advancedGasFeeDefaultOptOut": { - "message": "始终使用这些值和高级设置作为默认值。" - }, - "advancedGasFeeModalTitle": { - "message": "高级燃料费" - }, - "advancedGasPriceTitle": { - "message": "燃料价格" - }, - "advancedOptions": { - "message": "高级选项" - }, - "advancedPriorityFeeToolTip": { - "message": "优先费(又称“矿工费”)直接向矿工支付,激励他们优先处理您的交易。" - }, - "affirmAgree": { - "message": "我同意" - }, - "airgapVault": { - "message": "AirGap Vault" - }, - "airgapVaultTutorial": { - "message": " (使用教程)" - }, - "alertDisableTooltip": { - "message": "这可以在“设置 > 提醒”中进行更改" - }, - "alertSettingsUnconnectedAccount": { - "message": "浏览网站时选择的账户未连接" - }, - "alertSettingsUnconnectedAccountDescription": { - "message": "当您浏览已连接的 web3 网站时,此警报会显示在弹出窗口中,但当前选择的账户未连接。" - }, - "alertSettingsWeb3ShimUsage": { - "message": "当网站尝试使用已经删除的 window.web3 API 时" - }, - "alertSettingsWeb3ShimUsageDescription": { - "message": "当您浏览尝试使用已删除的 window.web3 API 并因此可能出现故障的网站时,此警报会显示在弹出窗口中。" - }, - "alerts": { - "message": "提醒" - }, - "allOfYour": { - "message": "您的所有$1", - "description": "$1 is the symbol or name of the token that the user is approving spending" - }, - "allowExternalExtensionTo": { - "message": "允许此外部扩展程序:" - }, - "allowSpendToken": { - "message": "授予访问您的 $1 的权限?", - "description": "$1 is the symbol of the token that are requesting to spend" - }, - "allowThisSiteTo": { - "message": "允许此网站:" - }, - "allowWithdrawAndSpend": { - "message": "允许 $1 提取和消费最高以下金额:", - "description": "The url of the site that requested permission to 'withdraw and spend'" - }, - "amount": { - "message": "数额" - }, - "appDescription": { - "message": "浏览器中的以太坊钱包", - "description": "The description of the application" - }, - "appName": { - "message": "MetaMask", - "description": "The name of the application" - }, - "appNameBeta": { - "message": "MetaMask Beta", - "description": "The name of the application (Beta)" - }, - "appNameFlask": { - "message": "MetaMask Flask", - "description": "The name of the application (Flask)" - }, - "approve": { - "message": "批准消费限额" - }, - "approveAllTokensTitle": { - "message": "是否允许访问您的所有$1?", - "description": "$1 is the symbol of the token for which the user is granting approval" - }, - "approveAndInstall": { - "message": "批准并安装" - }, - "approveButtonText": { - "message": "批准" - }, - "approveSpendLimit": { - "message": "批准 $1 消费限额", - "description": "The token symbol that is being approved" - }, - "approved": { - "message": "已批准" - }, - "approvedAmountWithColon": { - "message": "已批准金额:" - }, - "approvedAsset": { - "message": "已获批准的资产" - }, - "areYouDeveloper": { - "message": "您是开发人员吗?" - }, - "areYouSure": { - "message": "您确定吗?" - }, - "asset": { - "message": "资产" - }, - "assetOptions": { - "message": "资产选项" - }, - "assets": { - "message": "资产" - }, - "attemptToCancel": { - "message": "尝试取消吗?" - }, - "attemptToCancelDescription": { - "message": "提交此尝试不能保证将会取消您的初始交易。如果取消尝试成功,将向您收取以上交易费。" - }, - "attemptingConnect": { - "message": "正在尝试连接到区块链。" - }, - "attributions": { - "message": "参与者" - }, - "authorizedPermissions": { - "message": "您已授权以下权限" - }, - "autoLockTimeLimit": { - "message": "自动锁定计时器(分钟)" - }, - "autoLockTimeLimitDescription": { - "message": "设置 MetaMask 将被锁定前的空闲时间(单位:分钟)。" - }, - "average": { - "message": "平均值" - }, - "back": { - "message": "返回" - }, - "backToAll": { - "message": "返回全部" - }, - "backupApprovalInfo": { - "message": "如果不慎丢失个人设备,忘记密码,需要重新安装 MetaMask,或者需在另一台设备上访问钱包,使用此助记词才能恢复您的钱包。" - }, - "backupApprovalNotice": { - "message": "请备份您的账户助记词,保证您的钱包和资金安全。" - }, - "backupNow": { - "message": "立即备份" - }, - "balance": { - "message": "余额" - }, - "balanceOutdated": { - "message": "余额可能已过期" - }, - "baseFee": { - "message": "基本费用" - }, - "basic": { - "message": "基本" - }, - "betaMetamaskDescription": { - "message": "MetaMask 深受数百万人信任,是一款可以让所有人进入 web3 世界的安全钱包。" - }, - "betaMetamaskDescriptionExplanation": { - "message": "使用此版本来测试即将发布的功能。您的使用和反馈有助于我们构建最好的 MetaMask 版本。您对 MetaMask 测试版的使用须遵守我们的标准 $1 以及我们的 $2。作为测试版,出现漏洞的风险可能会增加。继续即表示您接受并承认这些风险,以及我们条款和测试版条款中发现的风险。", - "description": "$1 represents localization item betaMetamaskDescriptionExplanationTermsLinkText. $2 represents localization item betaMetamaskDescriptionExplanationBetaTermsLinkText" - }, - "betaMetamaskDescriptionExplanationBetaTermsLinkText": { - "message": "补充测试版条款" - }, - "betaMetamaskDescriptionExplanationTermsLinkText": { - "message": "条款" - }, - "betaMetamaskVersion": { - "message": "MetaMask 测试版本" - }, - "betaWelcome": { - "message": "欢迎使用 MetaMask 测试版" - }, - "blockExplorerAccountAction": { - "message": "账户", - "description": "This is used with viewOnEtherscan and viewInExplorer e.g View Account in Explorer" - }, - "blockExplorerAssetAction": { - "message": "资产", - "description": "This is used with viewOnEtherscan and viewInExplorer e.g View Asset in Explorer" - }, - "blockExplorerSwapAction": { - "message": "交换", - "description": "This is used with viewOnEtherscan e.g View Swap on Etherscan" - }, - "blockExplorerUrl": { - "message": "区块浏览器 URL" - }, - "blockExplorerUrlDefinition": { - "message": "用作此网络的区块浏览器的 URL。" - }, - "blockExplorerView": { - "message": "在 $1 查看账户", - "description": "$1 replaced by URL for custom block explorer" - }, - "blockies": { - "message": "Blockies" - }, - "browserNotSupported": { - "message": "您的浏览器不受支持……" - }, - "buildContactList": { - "message": "建立您的联系人列表" - }, - "builtAroundTheWorld": { - "message": "MetaMask 是在世界各地设计和建造的。" - }, - "busy": { - "message": "忙碌中" - }, - "buy": { - "message": "购买" - }, - "buyAsset": { - "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" - }, - "buyCryptoWithMoonPayDescription": { - "message": "MoonPay支持热门的支付方式,包括Visa、万事达卡、Apple / Google / Samsung Pay,以及超过145个国家/地区的银行转账。代币会被存入您的MetaMask账户。" - }, - "buyCryptoWithTransak": { - "message": "用Transak购买$1", - "description": "$1 represents the cypto symbol to be purchased" - }, - "buyCryptoWithTransakDescription": { - "message": "Transak在超过100个国家/地区支持信用卡和借记卡、Apple Pay、MobiKwik和银行转账(取决于地点)。$1会被直接存入您的MetaMask账户。", - "description": "$1 represents the crypto symbol to be purchased" - }, - "buyWithWyre": { - "message": "使用Wyre购买$1" - }, - "buyWithWyreDescription": { - "message": "购买不超过$1000可以轻松开通。快速交互式上限购买验证。支持借记卡/信用卡、Apple Pay、银行转账。适用于100多个国家。代币存入您的MetaMask账户" - }, - "bytes": { - "message": "字节" - }, - "canToggleInSettings": { - "message": "您可以在“设置 -> 提醒”中重新启用该通知。" - }, - "cancel": { - "message": "取消" - }, - "cancelEdit": { - "message": "取消编辑" - }, - "cancelPopoverTitle": { - "message": "取消交易" - }, - "cancelSpeedUp": { - "message": "取消或加快交易。" - }, - "cancelSpeedUpLabel": { - "message": "这笔燃料费将$1原来的费用。", - "description": "$1 is text 'replace' in bold" - }, - "cancelSpeedUpTransactionTooltip": { - "message": "若要$1交易,燃料费用必须增加至少10%才能被网络认可。", - "description": "$1 is string 'cancel' or 'speed up'" - }, - "cancelSwapForFee": { - "message": "以~$1取消兑换", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "免费取消兑换" - }, - "cancellationGasFee": { - "message": "取消燃料费用" - }, - "cancelled": { - "message": "已取消" - }, - "chainId": { - "message": "链 ID" - }, - "chainIdDefinition": { - "message": "用于签署此网络的交易的链 ID。" - }, - "chainIdExistsErrorMsg": { - "message": "此链 ID 目前已被 $1 网络使用。" - }, - "chainListReturnedDifferentTickerSymbol": { - "message": "链ID为$1的网络使用的货币代码($2)可能与您输入的不同。请在继续之前进行验证。", - "description": "$1 is the chain id currently entered in the network form and $2 is the return value of nativeCurrency.symbol from chainlist.network" - }, - "chromeRequiredForHardwareWallets": { - "message": "您需要在 Google Chrome 上使用 MetaMask 以连接到您的硬件钱包。" - }, - "clickToConnectLedgerViaWebHID": { - "message": "点击这里以通过 WebHID 连接您的 Ledger", - "description": "Text that can be clicked to open a browser popup for connecting the ledger device via webhid" - }, - "clickToRevealSeed": { - "message": "点击此处以显示助记词" - }, - "close": { - "message": "关闭" - }, - "collectibleAddFailedMessage": { - "message": "由于所有权信息不匹配,无法添加NFT。请确保所输入的信息正确无误。" - }, - "collectibleAddressError": { - "message": "此代币是NFT。另加上$1", - "description": "$1 is a clickable link with text defined by the 'importNFTPage' key" - }, - "confirm": { - "message": "确认" - }, - "confirmPassword": { - "message": "确认密码" - }, - "confirmRecoveryPhrase": { - "message": "确认助记词" - }, - "confirmSecretBackupPhrase": { - "message": "请确认您的账户助记词" - }, - "confirmed": { - "message": "已确认" - }, - "confusableUnicode": { - "message": "'$1' 与 '$2' 相似。" - }, - "confusableZeroWidthUnicode": { - "message": "找到零宽字符。" - }, - "confusingEnsDomain": { - "message": "我们在 ENS 名称中检测到一个可令人混淆的字符。检查 ENS 名称以避免潜在的骗局。" - }, - "congratulations": { - "message": "恭喜" - }, - "connect": { - "message": "连接" - }, - "connectAccountOrCreate": { - "message": "连接账户或创建新账户" - }, - "connectHardwareWallet": { - "message": "连接硬件钱包" - }, - "connectManually": { - "message": "手动连接到当前站点" - }, - "connectTo": { - "message": "连接到 $1", - "description": "$1 is the name/origin of a web3 site/application that the user can connect to metamask" - }, - "connectToAll": { - "message": "连接到您的全部 $1", - "description": "$1 will be replaced by the translation of connectToAllAccounts" - }, - "connectToAllAccounts": { - "message": "账户", - "description": "will replace $1 in connectToAll, completing the sentence 'connect to all of your accounts', will be text that shows list of accounts on hover" - }, - "connectToMultiple": { - "message": "连接到 $1", - "description": "$1 will be replaced by the translation of connectToMultipleNumberOfAccounts" - }, - "connectToMultipleNumberOfAccounts": { - "message": "$1 个账户", - "description": "$1 is the number of accounts to which the web3 site/application is asking to connect; this will substitute $1 in connectToMultiple" - }, - "connectWithMetaMask": { - "message": "与 MetaMask 连接" - }, - "connectedAccountsDescriptionPlural": { - "message": "您有 $1 个账户连接到了该网站。", - "description": "$1 is the number of accounts" - }, - "connectedAccountsDescriptionSingular": { - "message": "您有1个账户连接到了该网站。" - }, - "connectedAccountsEmptyDescription": { - "message": "MetaMask 没有连接到该网站。要连接到 web3 网站,请找到并点击连接按钮。" - }, - "connectedSites": { - "message": "已连接的网站" - }, - "connectedSitesDescription": { - "message": "$1 已连接到这些网站。他们可以查看您的账户地址。", - "description": "$1 is the account name" - }, - "connectedSitesEmptyDescription": { - "message": "$1 还没连接到任何网站。", - "description": "$1 is the account name" - }, - "connectedSnapSites": { - "message": "$1的snap已连接到这些站点。它们有上述的访问权限。", - "description": "$1 represents the name of the snap" - }, - "connecting": { - "message": "连接中……" - }, - "connectingTo": { - "message": "正在连接 $1" - }, - "connectingToGoerli": { - "message": "正在连接 Goerli 测试网络" - }, - "connectingToMainnet": { - "message": "正在连接到以太坊主网" - }, - "contactUs": { - "message": "联系我们" - }, - "contacts": { - "message": "联系信息" - }, - "continue": { - "message": "继续" - }, - "continueToCoinbasePay": { - "message": "继续使用Coinbase Pay" - }, - "continueToMoonPay": { - "message": "继续使用MoonPay" - }, - "continueToTransak": { - "message": "继续前往 Transak" - }, - "continueToWyre": { - "message": "继续前往 Wyre" - }, - "contract": { - "message": "合约" - }, - "contractAddress": { - "message": "合约地址" - }, - "contractAddressError": { - "message": "您正在向代币的合约地址发送代币。这可能导致这些代币丢失。" - }, - "contractDeployment": { - "message": "合约部署" - }, - "contractInteraction": { - "message": "合约交互" - }, - "convertTokenToNFTDescription": { - "message": "我们检测到该资产是NFT。Metamask现在完全原生支持NFT。您想将它从您的代币列表中删除并将它添加为NFT吗?" - }, - "convertTokenToNFTExistDescription": { - "message": "我们检测到该资产已作为NFT添加。是否要将其从代币列表中删除?" - }, - "copiedExclamation": { - "message": "已复制!" - }, - "copyAddress": { - "message": "复制地址到剪贴板" - }, - "copyPrivateKey": { - "message": "这是您的私钥(点击以复制)" - }, - "copyRawTransactionData": { - "message": "复制原始交易数据" - }, - "copyToClipboard": { - "message": "复制到剪贴板" - }, - "copyTransactionId": { - "message": "复制交易 ID" - }, - "create": { - "message": "创建" - }, - "createAWallet": { - "message": "创建钱包" - }, - "createAccount": { - "message": "创建账户" - }, - "createNewWallet": { - "message": "创建新钱包" - }, - "createPassword": { - "message": "创建密码" - }, - "currencyConversion": { - "message": "货币转换" - }, - "currencySymbol": { - "message": "货币符号" - }, - "currencySymbolDefinition": { - "message": "此网络的货币显示的股票代码。" - }, - "currentAccountNotConnected": { - "message": "您的当前账户没有连接" - }, - "currentExtension": { - "message": "当前扩展程序页面" - }, - "currentLanguage": { - "message": "当前语言" - }, - "currentTitle": { - "message": "当前:" - }, - "currentlyUnavailable": { - "message": "在此网络上不可用" - }, - "curveHighGasEstimate": { - "message": "高价燃料估算图" - }, - "curveLowGasEstimate": { - "message": "低价燃料估算图" - }, - "curveMediumGasEstimate": { - "message": "市场价燃料估算图" - }, - "custom": { - "message": "高级" - }, - "customContentSearch": { - "message": "搜索以前添加的网络" - }, - "customGas": { - "message": "自定义燃料" - }, - "customGasSettingToolTipMessage": { - "message": "使用$1来定制燃料价格。如果您不熟悉这可能会引起混淆。操作风险自付。", - "description": "$1 is key 'advanced' (text: 'Advanced') separated here so that it can be passed in with bold fontweight" - }, - "customGasSubTitle": { - "message": "提升费用可能会缩短处理时间,但不能保证。" - }, - "customSpendLimit": { - "message": "自定义消费限额" - }, - "customToken": { - "message": "自定义代币" - }, - "customTokenWarningInNonTokenDetectionNetwork": { - "message": "代币检测在此网络上尚不可用。请手动导入代币并确保您信任它。了解 $1" - }, - "customTokenWarningInTokenDetectionNetwork": { - "message": "手动导入代币前,请确保您信任它。了解 $1。" - }, - "customerSupport": { - "message": "客户支持" - }, - "dappSuggested": { - "message": "建议的网站" - }, - "dappSuggestedGasSettingToolTipMessage": { - "message": "$1 建议了这个价格。", - "description": "$1 is url for the dapp that has suggested gas settings" - }, - "dappSuggestedShortLabel": { - "message": "网站" - }, - "dappSuggestedTooltip": { - "message": "$1 建议了这个价格。", - "description": "$1 represents the Dapp's origin" - }, - "darkTheme": { - "message": "深色" - }, - "data": { - "message": "数据" - }, - "dataBackupFoundInfo": { - "message": "您的部分账户数据已在之前安装 MetaMask 时备份。其中可能包括您的设置、联系人和代币。您现在想恢复这些数据吗?" - }, - "dataHex": { - "message": "十六进制" - }, - "decimal": { - "message": "代币小数" - }, - "decimalsMustZerotoTen": { - "message": "小数位至少为0,且不得超过36。" - }, - "decrypt": { - "message": "解密" - }, - "decryptCopy": { - "message": "复制加密消息" - }, - "decryptInlineError": { - "message": "由于错误:$1,无法解密此消息", - "description": "$1 is error message" - }, - "decryptMessageNotice": { - "message": "$1 希望阅读此消息来完成您的操作", - "description": "$1 is the web3 site name" - }, - "decryptMetamask": { - "message": "解密消息" - }, - "decryptRequest": { - "message": "解密请求" - }, - "delete": { - "message": "删除" - }, - "deleteAccount": { - "message": "删除账户" - }, - "deleteNetwork": { - "message": "删除网络?" - }, - "deleteNetworkDescription": { - "message": "您确定要删除该网络吗?" - }, - "depositCrypto": { - "message": "存入$1", - "description": "$1 represents the cypto symbol to be purchased" - }, - "description": { - "message": "描述" - }, - "details": { - "message": "详细信息" - }, - "directDepositCrypto": { - "message": "直接存入$1" - }, - "directDepositCryptoExplainer": { - "message": "如果您已经有了一些$1,那么在您的新钱包里获得$1的最快方式是直接存入。" - }, - "disabledGasOptionToolTipMessage": { - "message": "“$1”已被禁用,因为它不满足在原来的燃料费用基础上至少增加10%的要求。", - "description": "$1 is gas estimate type which can be market or aggressive" - }, - "disconnect": { - "message": "断开连接" - }, - "disconnectAllAccounts": { - "message": "断开所有账户的连接" - }, - "disconnectAllAccountsConfirmationDescription": { - "message": "您确定要断开连接吗?您可能会失去网站功能。" - }, - "disconnectPrompt": { - "message": "断开连接 $1" - }, - "disconnectThisAccount": { - "message": "断开此账户的连接" - }, - "dismiss": { - "message": "关闭" - }, - "dismissReminderDescriptionField": { - "message": "开启此选项以关闭账户助记词备份提醒消息。我们强烈建议您备份您的账户助记词,以避免资金损失" - }, - "dismissReminderField": { - "message": "关闭账户助记词备份提醒" - }, - "domain": { - "message": "域" - }, - "done": { - "message": "完成" - }, - "dontShowThisAgain": { - "message": "不再显示此内容" - }, - "downArrow": { - "message": "向下箭头" - }, - "downloadGoogleChrome": { - "message": "下载 Google Chrome 浏览器" - }, - "downloadSecretBackup": { - "message": "下载此账户助记词,并将其安全保存在外部加密硬盘或存储介质上。" - }, - "downloadStateLogs": { - "message": "下载状态日志" - }, - "dropped": { - "message": "已放弃" - }, - "edit": { - "message": "编辑" - }, - "editANickname": { - "message": "编辑昵称" - }, - "editAddressNickname": { - "message": "编辑地址昵称" - }, - "editCancellationGasFeeModalTitle": { - "message": "编辑取消燃料费用" - }, - "editContact": { - "message": "编辑联系信息" - }, - "editGasEducationButtonText": { - "message": "我应该如何选择?" - }, - "editGasEducationHighExplanation": { - "message": "这最适合对时间敏感的交易(如交换),因为它能增加交易成功的可能性。如果交换需要太长的时间来处理,它可能会失败,并导致您损失一些燃料费。" - }, - "editGasEducationLowExplanation": { - "message": "只有在处理时间不太重要时才能使用较低的燃料费用。较低的费用使我们难以预测您的交易何时(或会否)成功。" - }, - "editGasEducationMediumExplanation": { - "message": "中燃料费用适合用于发送、提取或其他非时间敏感交易。此设置最常导致交易成功。" - }, - "editGasEducationModalIntro": { - "message": "选择合适的燃料费取决于交易的类型和它对您的重要性。" - }, - "editGasEducationModalTitle": { - "message": "如何选择?" - }, - "editGasFeeModalTitle": { - "message": "编辑网络费" - }, - "editGasHigh": { - "message": "高" - }, - "editGasLimitOutOfBounds": { - "message": "燃料上限至少为 $1" - }, - "editGasLimitOutOfBoundsV2": { - "message": "燃料上限必须大于 $1 且小于 $2", - "description": "$1 is the minimum limit for gas and $2 is the maximum limit" - }, - "editGasLimitTooltip": { - "message": "燃料上限是您愿意使用的最大燃料单位。燃料单位是“最大优先费”和“最大费用”的乘数。" - }, - "editGasLow": { - "message": "低" - }, - "editGasMaxBaseFeeGWEIImbalance": { - "message": "最大基本费用不能低于优先费用" - }, - "editGasMaxBaseFeeHigh": { - "message": "最大基本费用高于必要水平" - }, - "editGasMaxBaseFeeLow": { - "message": "对于当前网络条件而言,最大基本费用较低" - }, - "editGasMaxFeeHigh": { - "message": "最大费用高于必要水平" - }, - "editGasMaxFeeLow": { - "message": "对于网络条件而言,最大费用过低" - }, - "editGasMaxFeePriorityImbalance": { - "message": "最大费用不能低于最大优先费用" - }, - "editGasMaxFeeTooltip": { - "message": "最大费用是您将支付的最大费用(基本费用+优先费用)。" - }, - "editGasMaxPriorityFeeBelowMinimum": { - "message": "最大优先费用必须大于0 GWEI。" - }, - "editGasMaxPriorityFeeBelowMinimumV2": { - "message": "优先费用必须大于0。" - }, - "editGasMaxPriorityFeeHigh": { - "message": "最大优先费用高于必要水平。您可以支付超过所需的费用。" - }, - "editGasMaxPriorityFeeHighV2": { - "message": "优先费用高于必要水平。您可以支付超过所需的费用" - }, - "editGasMaxPriorityFeeLow": { - "message": "对于当前网络条件而言,最大优先费用较低" - }, - "editGasMaxPriorityFeeLowV2": { - "message": "对于当前网络条件而言,优先费用较低" - }, - "editGasMaxPriorityFeeTooltip": { - "message": "最大优先费(又称“矿工费”)直接向矿工支付,激励他们优先处理您的交易。您通常会支付您的最大设置" - }, - "editGasMedium": { - "message": "中" - }, - "editGasPriceTooLow": { - "message": "燃料价格必须大于0" - }, - "editGasPriceTooltip": { - "message": "此网络在提交交易时需要一个“燃料价格”字段。燃料价格是您支付的每单位燃料金额。" - }, - "editGasSubTextAmountLabel": { - "message": "最大金额:", - "description": "This is meant to be used as the $1 substitution editGasSubTextAmount" - }, - "editGasSubTextFeeLabel": { - "message": "最大费用:" - }, - "editGasTitle": { - "message": "编辑优先级" - }, - "editGasTooLow": { - "message": "处理时间未知" - }, - "editGasTooLowTooltip": { - "message": "对于当前的市场条件而言,您的最大费用或最大优先费用可能较低。我们不知道您的交易将在何时(或会否)处理。" - }, - "editGasTooLowWarningTooltip": { - "message": "这降低了您的最大费用,但如果网络流量增加,您的交易可能会被延迟或失败。" - }, - "editNonceField": { - "message": "编辑 Nonce" - }, - "editNonceMessage": { - "message": "这是高级功能,请谨慎使用。" - }, - "editPermission": { - "message": "编辑权限" - }, - "editSpeedUpEditGasFeeModalTitle": { - "message": "编辑加速燃料费用" - }, - "enableAutoDetect": { - "message": " 启用自动检测" - }, - "enableEIP1559V2": { - "message": "启用增强型燃料费用户界面" - }, - "enableEIP1559V2AlertMessage": { - "message": "我们已经更新了燃料费用估算和定制的方式。" - }, - "enableEIP1559V2ButtonText": { - "message": "在设置中开启增强型燃料费用户界面" - }, - "enableEIP1559V2Description": { - "message": "我们已经更新了燃料估算和定制的方式。如果您想使用新的燃料体验,请开启。$1", - "description": "$1 here is Learn More link" - }, - "enableEIP1559V2Header": { - "message": "新燃料体验" - }, - "enableFromSettings": { - "message": " 从设置中启用它。" - }, - "enableOpenSeaAPI": { - "message": "启用 OpenSea API" - }, - "enableOpenSeaAPIDescription": { - "message": "使用 OpenSea 的 API 获取 NFT 数据。NFT 自动检测依赖于 OpenSea 的 API,在后者关闭时自动检测将不可用。" - }, - "enableSmartTransactions": { - "message": "启用智能交易" - }, - "enableToken": { - "message": "启用 $1", - "description": "$1 is a token symbol, e.g. ETH" - }, - "encryptionPublicKeyNotice": { - "message": "$1 想要您的加密公钥。同意后,该网站将可以向您发送加密消息。", - "description": "$1 is the web3 site name" - }, - "encryptionPublicKeyRequest": { - "message": "申请加密公钥" - }, - "endOfFlowMessage1": { - "message": "您通过了测试——保管好您的账户助记词,这是您的责任!" - }, - "endOfFlowMessage10": { - "message": "全部完成" - }, - "endOfFlowMessage2": { - "message": "安全保存技巧" - }, - "endOfFlowMessage3": { - "message": "在多处保存备份。" - }, - "endOfFlowMessage4": { - "message": "绝不向任何人分享该账户助记词。" - }, - "endOfFlowMessage5": { - "message": "谨防网络钓鱼!MetaMask 绝不会主动要求您提供个人账户助记词。" - }, - "endOfFlowMessage6": { - "message": "如果您需要再次备份账户助记词,请通过“设置 -> 安全”选项完成该操作。" - }, - "endOfFlowMessage7": { - "message": "如果您有任何疑问或发现可疑之处,请联系我们的支持部门 $1。", - "description": "$1 is a clickable link with text defined by the 'here' key. The link will open to a form where users can file support tickets." - }, - "endOfFlowMessage8": { - "message": "MetaMask 无法恢复您的账户助记词。" - }, - "endOfFlowMessage9": { - "message": "了解更多。" - }, - "endpointReturnedDifferentChainId": { - "message": "RPC 端点使用链不同的链 ID: $1", - "description": "$1 is the return value of eth_chainId from an RPC endpoint" - }, - "ensIllegalCharacter": { - "message": "ENS 的非法字符。" - }, - "ensNotFoundOnCurrentNetwork": { - "message": "未在当前网络找到 ENS 名称。请尝试切换至以太坊主网。" - }, - "ensNotSupportedOnNetwork": { - "message": "网络不支持 ENS" - }, - "ensRegistrationError": { - "message": "ENS 名称注册错误" - }, - "ensUnknownError": { - "message": "ENS 查找失败。" - }, - "enterMaxSpendLimit": { - "message": "输入最大消费限额" - }, - "enterPassword": { - "message": "输入密码" - }, - "enterPasswordContinue": { - "message": "输入密码继续" - }, - "errorCode": { - "message": "代码:$1", - "description": "Displayed error code for debugging purposes. $1 is the error code" - }, - "errorDetails": { - "message": "错误详情", - "description": "Title for collapsible section that displays error details for debugging purposes" - }, - "errorMessage": { - "message": "信息:$1", - "description": "Displayed error message for debugging purposes. $1 is the error message" - }, - "errorName": { - "message": "代码:$1", - "description": "Displayed error name for debugging purposes. $1 is the error name" - }, - "errorPageMessage": { - "message": "通过重新加载页面再试一次,或联系支持部门 $1。", - "description": "Message displayed on generic error page in the fullscreen or notification UI, $1 is a clickable link with text defined by the 'here' key. The link will open to a form where users can file support tickets." - }, - "errorPagePopupMessage": { - "message": "通过关闭并重新打开弹出窗口再试一次,或联系支持部门 $1。", - "description": "Message displayed on generic error page in the popup UI, $1 is a clickable link with text defined by the 'here' key. The link will open to a form where users can file support tickets." - }, - "errorPageTitle": { - "message": "MetaMask 遇到了一个错误", - "description": "Title of generic error page" - }, - "errorStack": { - "message": "栈:", - "description": "Title for error stack, which is displayed for debugging purposes" - }, - "estimatedProcessingTimes": { - "message": "预计处理时间" - }, - "ethGasPriceFetchWarning": { - "message": "由于目前主要的燃料估算服务不可用,因此提供了备用燃料价格。" - }, - "ethereumPublicAddress": { - "message": "以太坊公共地址" - }, - "etherscan": { - "message": "Etherscan" - }, - "etherscanView": { - "message": "在 Etherscan 上查看账户" - }, - "etherscanViewOn": { - "message": "在 Etherscan 上查看" - }, - "expandExperience": { - "message": "扩展您的web3体验" - }, - "expandView": { - "message": "展开视图" - }, - "experimental": { - "message": "试验" - }, - "exportPrivateKey": { - "message": "导出私钥" - }, - "externalExtension": { - "message": "外部扩展程序" - }, - "failed": { - "message": "失败" - }, - "failedToFetchChainId": { - "message": "无法获取链 ID。您的 RPC URL 正确吗?" - }, - "failedToFetchTickerSymbolData": { - "message": "股票代码验证数据当前未能提供,请确保您输入的代码正确无误。这会影响您在此网络看到的兑换率" - }, - "failureMessage": { - "message": "出了点问题,我们无法完成此操作" - }, - "fast": { - "message": "快" - }, - "fastest": { - "message": "最快" - }, - "feeAssociatedRequest": { - "message": "此请求需要支付一定的费用。" - }, - "fiat": { - "message": "法币", - "description": "Exchange type" - }, - "fileImportFail": { - "message": "文件导入失败?点击这里!", - "description": "Helps user import their account from a JSON file" - }, - "flaskSnapSettingsCardButtonCta": { - "message": "查看详细信息", - "description": "Call to action a user can take to see more information about the Snap that is installed" - }, - "flaskSnapSettingsCardDateAddedOn": { - "message": "添加于", - "description": "Start of the sentence describing when and where snap was added" - }, - "flaskSnapSettingsCardFrom": { - "message": "自", - "description": "Part of the sentence describing when and where snap was added" - }, - "flaskWelcomeUninstall": { - "message": "您应该卸载此扩展程序", - "description": "This request is shown on the Flask Welcome screen. It is intended for non-developers, and will be bolded." - }, - "flaskWelcomeWarning1": { - "message": "Flask供开发人员试验不稳定的新API。除非您是开发人员或Beta测试人员,否则请$1。", - "description": "This is a warning shown on the Flask Welcome screen, intended to encourage non-developers not to proceed any further. $1 is the bolded message 'flaskWelcomeUninstall'" - }, - "flaskWelcomeWarning2": { - "message": "我们不保证此扩展程序的安全性或稳定性。Flask提供的新API并未针对网络钓鱼攻击进行强化,这意味着任何需要Flask的站点或快取都可能是窃取您资产的恶意企图。", - "description": "This explains the risks of using MetaMask Flask" - }, - "flaskWelcomeWarning3": { - "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" - }, - "followUsOnTwitter": { - "message": "在 Twitter 上关注我们" - }, - "forbiddenIpfsGateway": { - "message": "禁用的 IPFS 网关:请指定一个 CID 网关" - }, - "forgetDevice": { - "message": "忽略此设备" - }, - "forgotPassword": { - "message": "忘记密码了?" - }, - "from": { - "message": "自" - }, - "fromAddress": { - "message": "从:$1", - "description": "$1 is the address to include in the From label. It is typically shortened first using shortenAddress" - }, - "fromTokenLists": { - "message": "从代币列表:$1" - }, - "functionApprove": { - "message": "功能:批准" - }, - "functionSetApprovalForAll": { - "message": "功能:SetApprovalForAll" - }, - "functionType": { - "message": "功能类型" - }, - "gas": { - "message": "燃料" - }, - "gasDisplayAcknowledgeDappButtonText": { - "message": "编辑建议的燃料费" - }, - "gasDisplayDappWarning": { - "message": "这笔燃料费是由 $1 建议的。忽略它可能会导致您的交易出现问题。如果您有疑问,请联系 $1。", - "description": "$1 represents the Dapp's origin" - }, - "gasEstimatesUnavailableWarning": { - "message": "无法获取我们的低、中、高估计值。" - }, - "gasFee": { - "message": "燃料费" - }, - "gasLimit": { - "message": "燃料上限" - }, - "gasLimitInfoTooltipContent": { - "message": "燃料上限是指您愿意花费的最大燃料单位量。" - }, - "gasLimitRecommended": { - "message": "建议的燃料上限是$1。如果燃料上限低于此值,则可能会失败。" - }, - "gasLimitTooLow": { - "message": "燃料上限至少为21000" - }, - "gasLimitTooLowWithDynamicFee": { - "message": "燃料上限至少为 $1", - "description": "$1 is the custom gas limit, in decimal." - }, - "gasLimitV2": { - "message": "燃料限制" - }, - "gasOption": { - "message": "燃料选项" - }, - "gasPrice": { - "message": "Gas 价格 (GWEI)" - }, - "gasPriceExcessive": { - "message": "您的燃料费设置得过高。请考虑降低金额。" - }, - "gasPriceExcessiveInput": { - "message": "燃料价格过高" - }, - "gasPriceExtremelyLow": { - "message": "燃料价格极低" - }, - "gasPriceFetchFailed": { - "message": "由于网络错误,燃料价格估算失败。" - }, - "gasPriceInfoTooltipContent": { - "message": "燃料价格指明了您愿意为每单位燃料支付的以太币数量。" - }, - "gasTimingHoursShort": { - "message": "$1 小时", - "description": "$1 represents a number of hours" - }, - "gasTimingMinutes": { - "message": "$1 分钟", - "description": "$1 represents a number of minutes" - }, - "gasTimingMinutesShort": { - "message": "$1 分钟", - "description": "$1 represents a number of minutes" - }, - "gasTimingNegative": { - "message": "可能在 $1 内", - "description": "$1 represents an amount of time" - }, - "gasTimingPositive": { - "message": "有可能在 $1 以内", - "description": "$1 represents an amount of time" - }, - "gasTimingSeconds": { - "message": "$1 秒", - "description": "$1 represents a number of seconds" - }, - "gasTimingSecondsShort": { - "message": "$1 秒", - "description": "$1 represents a number of seconds" - }, - "gasTimingVeryPositive": { - "message": "很可能在 $1 以内", - "description": "$1 represents an amount of time" - }, - "gasUsed": { - "message": "使用的燃料" - }, - "gdprMessage": { - "message": "这些数据是汇总的,因此,根据《通用数据保护条例》(欧盟)2016/679,这些数据是匿名的。有关我们隐私惯例的更多信息,请参见我们的 $1。", - "description": "$1 refers to the gdprMessagePrivacyPolicy message, the translation of which is meant to be used exclusively in the context of gdprMessage" - }, - "gdprMessagePrivacyPolicy": { - "message": "隐私政策", - "description": "this translation is intended to be exclusively used as the replacement for the $1 in the gdprMessage translation" - }, - "general": { - "message": "常规" - }, - "getEther": { - "message": "获取以太币" - }, - "getEtherFromFaucet": { - "message": "从 $1 的水龙头获取以太币", - "description": "Displays network name for Ether faucet" - }, - "getStarted": { - "message": "开始使用" - }, - "goBack": { - "message": "返回" - }, - "goerli": { - "message": "Goerli 测试网络" - }, - "gotIt": { - "message": "知道了!" - }, - "grantedToWithColon": { - "message": "授予:" - }, - "gwei": { - "message": "GWEI" - }, - "happyToSeeYou": { - "message": "我们很高兴见到您。" - }, - "hardware": { - "message": "硬件" - }, - "hardwareWalletConnected": { - "message": "已连接的硬件钱包" - }, - "hardwareWalletLegacyDescription": { - "message": "(旧)", - "description": "Text representing the MEW path" - }, - "hardwareWalletSupportLinkConversion": { - "message": "点击这里" - }, - "hardwareWallets": { - "message": "连接硬件钱包" - }, - "hardwareWalletsMsg": { - "message": "选择希望用于 MetaMask 的硬件钱包。" - }, - "here": { - "message": "此处", - "description": "as in -click here- for more information (goes with troubleTokenBalances)" - }, - "hexData": { - "message": "十六进制数据" - }, - "hide": { - "message": "隐藏" - }, - "hideFullTransactionDetails": { - "message": "隐藏完整的交易细节" - }, - "hideSeedPhrase": { - "message": "隐藏助记词" - }, - "hideToken": { - "message": "隐藏代币" - }, - "hideTokenPrompt": { - "message": "隐藏代币?" - }, - "hideTokenSymbol": { - "message": "隐藏 $1", - "description": "$1 is the symbol for a token (e.g. 'DAI')" - }, - "hideZeroBalanceTokens": { - "message": "隐藏没有余额的代币" - }, - "high": { - "message": "过高" - }, - "highGasSettingToolTipMessage": { - "message": "使用$1来覆盖网络流量因像流行的 NFT 丢弃而出现的剧增。", - "description": "$1 is key 'high' (text: 'Aggressive') separated here so that it can be passed in with bold fontweight" - }, - "highLowercase": { - "message": "高" - }, - "history": { - "message": "历史记录" - }, - "ignoreAll": { - "message": "忽略所有" - }, - "ignoreTokenWarning": { - "message": "如果您隐藏代币,它们将不会在您的钱包中显示。但您仍然可以通过搜索代币来添加它们。" - }, - "import": { - "message": "导入", - "description": "Button to import an account from a selected file" - }, - "importAccount": { - "message": "导入账户" - }, - "importAccountError": { - "message": "导入账户时出错。" - }, - "importAccountMsg": { - "message": "导入的账户将不会与最初创建的 MetaMask 账户助记词相关联。了解更多有关导入账户的信息" - }, - "importAccountSeedPhrase": { - "message": "使用账户助记词导入钱包" - }, - "importMyWallet": { - "message": "导入我的钱包" - }, - "importNFT": { - "message": "导入 NFT" - }, - "importNFTAddressToolTip": { - "message": "例如,在OpenSea中,NFT页面的详情下,有一个蓝色的超链接值,标记为“合约地址”。如果您点击它,它将带您前往该合约在Etherscan上的地址;在该页面的左上角,应该有一个标记为“合约”的图标,在右侧,有一长串字母和数字。这是创建您的NFT的合约地址。点击地址右侧的“复制”图标,就可以将它复制到剪贴板上。" - }, - "importNFTPage": { - "message": "导入NFT页面" - }, - "importNFTTokenIdToolTip": { - "message": "收藏品的ID是唯一标识符,因为所有NFT都是独一无二的。同样,在OpenSea上,此数字位于“详情”下方。记下它,或将它复制到剪贴板上。" - }, - "importNFTs": { - "message": "添加收藏品" - }, - "importTokenQuestion": { - "message": "导入代币?" - }, - "importTokenWarning": { - "message": "任何人都可以用任何名称创建代币,包括现有代币的虚假版本。添加和交易风险自负!" - }, - "importTokens": { - "message": "添加资产" - }, - "importTokensCamelCase": { - "message": "添加代币" - }, - "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": "使用账户助记词导入您的现有钱包" - }, - "imported": { - "message": "已导入", - "description": "status showing that an account has been fully loaded into the keyring" - }, - "infuraBlockedNotification": { - "message": "MetaMask 无法连接到区块链主机。请检查可能的原因 $1。", - "description": "$1 is a clickable link with with text defined by the 'here' key" - }, - "initialTransactionConfirmed": { - "message": "您的初始交易已被网络确认。请点击“确定”返回。" - }, - "insufficientBalance": { - "message": "余额不足。" - }, - "insufficientCurrencyBuyOrDeposit": { - "message": "您的账户中没有足够的$1可以支付$2网络上的交易费用。$3或从另一个账户存入。", - "description": "$1 is the native currency of the network, $2 is the name of the current network, $3 is the key 'buy' + the ticker symbol of the native currency of the chain wrapped in a button" - }, - "insufficientCurrencyDeposit": { - "message": "您的账户中没有足够的$1可以支付$2网络上的交易费用。请从另一个账户存入$1。", - "description": "$1 is the native currency of the network, $2 is the name of the current network" - }, - "insufficientFunds": { - "message": "资金不足." - }, - "insufficientFundsForGas": { - "message": "燃料资金不足" - }, - "insufficientTokens": { - "message": "代币不足。" - }, - "invalidAddress": { - "message": "地址无效" - }, - "invalidAddressRecipient": { - "message": "接收方地址无效" - }, - "invalidAddressRecipientNotEthNetwork": { - "message": "非 ETH 网络,请使用小写" - }, - "invalidAssetType": { - "message": "该资产是NFT,需要在NFT选项卡下的“导入NFT”页面上重新添加" - }, - "invalidBlockExplorerURL": { - "message": "无效的区块浏览器 URL" - }, - "invalidChainIdTooBig": { - "message": "无效的链 ID,链 ID 过大。" - }, - "invalidCustomNetworkAlertContent1": { - "message": "需要重新输入自定义网络 '$1' 的链 ID。", - "description": "$1 is the name/identifier of the network." - }, - "invalidCustomNetworkAlertContent2": { - "message": "为了保护您免受恶意或有问题的网络供应商的影响,现在所有的自定义网络都需要有链 ID。" - }, - "invalidCustomNetworkAlertContent3": { - "message": "进入设置 > 网络并输入链 ID。您可以通过 $1 查找最热门网络的链 ID。", - "description": "$1 is a link to https://chainid.network" - }, - "invalidCustomNetworkAlertTitle": { - "message": "无效的自定义网络" - }, - "invalidHexNumber": { - "message": "无效的十六进制数字。" - }, - "invalidHexNumberLeadingZeros": { - "message": "无效的十六进制数字。删除所有前导零。" - }, - "invalidIpfsGateway": { - "message": "无效的 IPFS 网关。该值必须是一个有效的 URL" - }, - "invalidNumber": { - "message": "无效数字。输入一个十进制或带有“0x”前缀的十六进制数字。" - }, - "invalidNumberLeadingZeros": { - "message": "无效数字。删除所有前导零。" - }, - "invalidRPC": { - "message": "RPC URL 无效" - }, - "invalidSeedPhrase": { - "message": "助记词无效" - }, - "invalidSeedPhraseCaseSensitive": { - "message": "输入无效!助记词须区分大小写。" - }, - "ipfsGateway": { - "message": "IPFS 网关" - }, - "ipfsGatewayDescription": { - "message": "输入用于 ENS 内容解析的 IPFS CID 网关的 URL。" - }, - "jazzAndBlockies": { - "message": "哈希头像是帮助您一眼识别账户的独特图标,有 Jazzicons 和 Blockies 两种不同风格。" - }, - "jazzicons": { - "message": "Jazzicons" - }, - "jsDeliver": { - "message": "jsDeliver" - }, - "jsonFile": { - "message": "JSON 文件", - "description": "format for importing an account" - }, - "keystone": { - "message": "Keystone" - }, - "keystoneTutorial": { - "message": " (使用教程)" - }, - "knownAddressRecipient": { - "message": "已知合约地址。" - }, - "knownTokenWarning": { - "message": "此操作将编辑已经在您的钱包中列出的代币,有肯能被用来欺骗您。只有确定要更改这些代币的内容时,才通过此操作。了解更多关于 $1" - }, - "lastConnected": { - "message": "最后连接" - }, - "learnCancelSpeeedup": { - "message": "学习如何 $1", - "description": "$1 is link to cancel or speed up transactions" - }, - "learnMore": { - "message": "了解更多" - }, - "learnMoreAboutGas": { - "message": "想要 $1 有关燃料的相关信息吗?", - "description": "$1 will be replaced by the learnMore translation key" - }, - "learnMoreUpperCase": { - "message": "了解更多" - }, - "learnScamRisk": { - "message": "诈骗和安全风险的信息。" - }, - "ledgerAccountRestriction": { - "message": "您需要先使用最后一个账户,然后才能添加新账户。" - }, - "ledgerConnectionInstructionCloseOtherApps": { - "message": "关闭任何连接到您设备的其他软件,然后点击这里刷新。" - }, - "ledgerConnectionInstructionHeader": { - "message": "点击确认前:" - }, - "ledgerConnectionInstructionStepFour": { - "message": "在您的 Ledger 设备上启用“智能合约数据”或“盲签”" - }, - "ledgerConnectionInstructionStepOne": { - "message": "在“设置 > 高级”下启用使用 Ledger Live" - }, - "ledgerConnectionInstructionStepThree": { - "message": "在您的 Ledger 设备中插入并选择 Ethereum 应用程序" - }, - "ledgerConnectionInstructionStepTwo": { - "message": "打开和解锁 Ledger Live 应用程序" - }, - "ledgerConnectionPreferenceDescription": { - "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": { - "message": "Ledger 设备打开失败。您的 Ledger 可能已连接到其他软件。请关闭 Ledger Live 或其他连接到您的 Ledger 设备的应用程序,并尝试再次连接。" - }, - "ledgerLive": { - "message": "Ledger Live", - "description": "The name of a desktop app that can be used with your ledger device. We can also use it to connect a users Ledger device to MetaMask." - }, - "ledgerLiveApp": { - "message": "Ledger Live 应用程序" - }, - "ledgerLocked": { - "message": "无法连接到 Ledger 设备。请确保您的设备已解锁并打开 Etherum 应用程序。" - }, - "ledgerTimeout": { - "message": "Ledger Live 响应时间过长或连接超时。请确保 Ledger Live 应用程序已打开且您的设备已解锁。" - }, - "ledgerTransportChangeWarning": { - "message": "如果您的 Ledger Live 应用程序已打开,请断开任何打开的 Ledger Live 的连接并关闭 Ledger Live 应用程序。" - }, - "ledgerWebHIDNotConnectedErrorMessage": { - "message": "Ledger 设备未连接。如果您想要连接您的 Ledger,请再次点击“继续”并批准 HID 连接", - "description": "An error message shown to the user during the hardware connect flow." - }, - "letsGoSetUp": { - "message": "是的,让我们开始吧!" - }, - "levelArrow": { - "message": "水平箭头" - }, - "lightTheme": { - "message": "浅色" - }, - "likeToImportTokens": { - "message": "您想导入这些代币吗?" - }, - "link": { - "message": "链接" - }, - "links": { - "message": "链接" - }, - "loadMore": { - "message": "加载更多" - }, - "loading": { - "message": "正在加载..." - }, - "loadingNFTs": { - "message": "正在加载NFT......" - }, - "loadingTokens": { - "message": "加载代币中……" - }, - "localhost": { - "message": "Localhost 8545" - }, - "lock": { - "message": "注销" - }, - "lockTimeTooGreat": { - "message": "锁定时间过长" - }, - "logo": { - "message": "$1标志", - "description": "$1 is the name of the ticker" - }, - "low": { - "message": "低" - }, - "lowGasSettingToolTipMessage": { - "message": "使用$1等待较便宜的价格。时间估计远不准确,因为价格有些难以预测。", - "description": "$1 is key 'low' separated here so that it can be passed in with bold fontweight" - }, - "lowLowercase": { - "message": "低" - }, - "lowPriorityMessage": { - "message": "以后的交易将在这个时候之后排队。最后一次看到的价格是在一段时间之前。" - }, - "mainnet": { - "message": "以太坊主网" - }, - "mainnetToken": { - "message": "该地址与已知的以太坊主网代币地址匹配。重新检查您尝试添加的代币的合约地址和网络。" - }, - "makeAnotherSwap": { - "message": "创建新的交换" - }, - "makeSureNoOneWatching": { - "message": "请确保没有人在观看您的屏幕", - "description": "Warning to users to be care while creating and saving their new Secret Recovery Phrase" - }, - "malformedData": { - "message": "格式错误的数据" - }, - "manageSnaps": { - "message": "管理已安装的Snap" - }, - "max": { - "message": "最大" - }, - "maxBaseFee": { - "message": "最大基本费用" - }, - "maxFee": { - "message": "最大费用" - }, - "maxPriorityFee": { - "message": "最大优先费用" - }, - "medium": { - "message": "市场" - }, - "mediumGasSettingToolTipMessage": { - "message": "使用 $1 按当前市场价格快速处理。", - "description": "$1 is key 'medium' (text: 'Market') separated here so that it can be passed in with bold fontweight" - }, - "memo": { - "message": "备注" - }, - "memorizePhrase": { - "message": "记住该账户助记词。" - }, - "message": { - "message": "消息" - }, - "metaMaskConnectStatusParagraphOne": { - "message": "现在您可以更好地控制 MetaMask 中的账户连接。" - }, - "metaMaskConnectStatusParagraphThree": { - "message": "点击它以管理您的连接账户。" - }, - "metaMaskConnectStatusParagraphTwo": { - "message": "连接状态按钮显示所访问的网站是否与您当前选择的账户连接。" - }, - "metamaskDescription": { - "message": "将您连接到以太坊和去中心化网络。" - }, - "metamaskSwapsOfflineDescription": { - "message": "MetaMask Swaps 正在进行维护。请稍后再查看。" - }, - "metamaskVersion": { - "message": "MetaMask 版本" - }, - "metametricsCommitmentsAllowOptOut": { - "message": "始终允许您通过“设置”选择退出" - }, - "metametricsCommitmentsAllowOptOut2": { - "message": "始终可通过设置选择退出" - }, - "metametricsCommitmentsBoldNever": { - "message": "永不", - "description": "This string is localized separately from some of the commitments so that we can bold it" - }, - "metametricsCommitmentsIntro": { - "message": "MetaMask.." - }, - "metametricsCommitmentsNeverCollect": { - "message": "决不收集密钥、地址、交易、余额、哈希或任何个人信息" - }, - "metametricsCommitmentsNeverCollectIP": { - "message": "$1 收集您的完整 IP 地址", - "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'" - }, - "metametricsCommitmentsNeverCollectKeysEtc": { - "message": "$1 收集密钥、地址、交易记录、余额、哈希或任何个人信息", - "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'" - }, - "metametricsCommitmentsNeverIP": { - "message": "永不收集您的完整 IP 地址" - }, - "metametricsCommitmentsNeverSell": { - "message": "决不出售数据牟利。绝对不会!" - }, - "metametricsCommitmentsNeverSellDataForProfit": { - "message": "$1 为利益而出售您的数据,永远不会!", - "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'" - }, - "metametricsCommitmentsSendAnonymizedEvents": { - "message": "发送匿名化点击和页面浏览事件" - }, - "metametricsHelpImproveMetaMask": { - "message": "帮助我们改进 MetaMask" - }, - "metametricsOptInDescription": { - "message": "MetaMask 希望收集使用数据,以更好地了解我们的用户如何与扩展程序交互。这些数据将被用于持续改进我们产品和以太坊生态系统的可用性和用户体验。" - }, - "metametricsOptInDescription2": { - "message": "我们想要收集基本使用数据以提高我们产品的可用性。这些数据将......" - }, - "metametricsTitle": { - "message": "和600多万用户一起改进 MetaMask" - }, - "mismatchedChainLinkText": { - "message": "验证网络信息", - "description": "Serves as link text for the 'mismatchedChain' key. This text will be embedded inside the translation for that key." - }, - "mismatchedChainRecommendation": { - "message": "我们建议您在继续之前$1。", - "description": "$1 is a clickable link with text defined by the 'mismatchedChainLinkText' key. The link will open to instructions for users to validate custom network details." - }, - "mismatchedNetworkName": { - "message": "根据我们的记录,该网络名称可能与此链ID不匹配。" - }, - "mismatchedNetworkSymbol": { - "message": "所提交的货币符号与我们对此链ID的预期不匹配。" - }, - "mismatchedRpcUrl": { - "message": "根据我们的记录,所提交的RPC URL值与此链ID的已知提供者不匹配。" - }, - "missingNFT": { - "message": "找不到您的 NFT?" - }, - "missingSetting": { - "message": "找不到设置吗?" - }, - "missingSettingRequest": { - "message": "在这里请求" - }, - "missingToken": { - "message": "没有看到您的代币?" - }, - "mobileSyncWarning": { - "message": "“与扩展程序同步”功能暂时被禁用。如果您想要在 MetaMask 移动设备上使用您的扩展程序钱包,那么在您的移动应用程序上:返回钱包设置选项并选择“使用账户助记词导入”选项。使用您的扩展程序钱包的助记词来将您的钱包导入移动设备。" - }, - "mustSelectOne": { - "message": "至少选择1种代币。" - }, - "myAccounts": { - "message": "我的账户" - }, - "name": { - "message": "名称" - }, - "needCryptoInWallet": { - "message": "要使用MetaMask与去中心化应用程序互动,您的钱包中需要有$1。", - "description": "$1 represents the cypto symbol to be purchased" - }, - "needHelp": { - "message": "需要帮助?请联系 $1", - "description": "$1 represents `needHelpLinkText`, the text which goes in the help link" - }, - "needHelpFeedback": { - "message": "分享您的反馈" - }, - "needHelpLinkText": { - "message": "MetaMask 支持" - }, - "needHelpSubmitTicket": { - "message": "提交工单" - }, - "needImportFile": { - "message": "您必须选择一个文件来导入。", - "description": "User is important an account and needs to add a file to continue" - }, - "negativeETH": { - "message": "不能发负值的 ETH。" - }, - "network": { - "message": "网络: " - }, - "networkAddedSuccessfully": { - "message": "网络添加成功!" - }, - "networkDetails": { - "message": "网络详情" - }, - "networkIsBusy": { - "message": "网络繁忙。燃料价格较高,估值较不准确。" - }, - "networkName": { - "message": "网络名称" - }, - "networkNameAvalanche": { - "message": "Avalanche" - }, - "networkNameBSC": { - "message": "BSC" - }, - "networkNameDefinition": { - "message": "与此网络关联的名称。" - }, - "networkNameEthereum": { - "message": "以太坊" - }, - "networkNamePolygon": { - "message": "Polygon" - }, - "networkNameTestnet": { - "message": "Testnet" - }, - "networkSettingsChainIdDescription": { - "message": "链 ID 用于签署交易。它必须与网络返回的链 ID 相匹配。您可以输入十进制或以'0x'开头的十六进制数字,但我们将以十进制显示该数字。" - }, - "networkStatus": { - "message": "网络状态" - }, - "networkStatusBaseFeeTooltip": { - "message": "基本费用由网络设定,每13-14秒更改一次。我们的 $1 和 $2 选项用于剧增。", - "description": "$1 and $2 are bold text for Medium and Aggressive respectively." - }, - "networkStatusPriorityFeeTooltip": { - "message": "优先费用(又称“矿工费”)。这笔费用直接向矿工支付,激励他们优先处理您的交易。" - }, - "networkStatusStabilityFeeTooltip": { - "message": "相对过去72小时,燃料费用为 $1。", - "description": "$1 is networks stability value - stable, low, high" - }, - "networkURL": { - "message": "网络 URL" - }, - "networkURLDefinition": { - "message": "用于访问此网络的 URL。" - }, - "networks": { - "message": "网络" - }, - "nevermind": { - "message": "没关系" - }, - "newAccount": { - "message": "新账户" - }, - "newAccountDetectedDialogMessage": { - "message": "检测到新地址!点击这里以添加到您的地址簿。" - }, - "newAccountNumberName": { - "message": "账户 $1", - "description": "Default name of next account to be created on create account screen" - }, - "newCollectibleAddedMessage": { - "message": "收藏品已成功添加!" - }, - "newContact": { - "message": "新联系人" - }, - "newContract": { - "message": "新合约" - }, - "newNFTDetectedMessage": { - "message": "允许 MetaMask 自动检测 Opensea 的 NFT 并在您的钱包中显示。" - }, - "newNFTsDetected": { - "message": "新功能!NFT 检测" - }, - "newNetworkAdded": { - "message": "成功添加了 “$1”!" - }, - "newPassword": { - "message": "新密码(至少 8 个字符)" - }, - "newToMetaMask": { - "message": "MetaMask 的新用户?" - }, - "newTokensImportedMessage": { - "message": "您已成功导入$1。", - "description": "$1 is the string of symbols of all the tokens imported" - }, - "newTokensImportedTitle": { - "message": "已导入代币" - }, - "newTotal": { - "message": "新总额" - }, - "newTransactionFee": { - "message": "新交易费用" - }, - "newValues": { - "message": "新的值" - }, - "next": { - "message": "下一步" - }, - "nextNonceWarning": { - "message": "Nonce 高于建议的 nouce 值 $1", - "description": "The next nonce according to MetaMask's internal logic" - }, - "nft": { - "message": "非同质化代币(NFT)" - }, - "nftTokenIdPlaceholder": { - "message": "输入代币ID" - }, - "nfts": { - "message": "收藏品" - }, - "nickname": { - "message": "昵称" - }, - "noAccountsFound": { - "message": "未找到符合给定查询条件的账户" - }, - "noAddressForName": { - "message": "此名称尚未设置地址。" - }, - "noAlreadyHaveSeed": { - "message": "不,我已经有一个账户助记词" - }, - "noConversionDateAvailable": { - "message": "没有可用的货币转换日期" - }, - "noConversionRateAvailable": { - "message": "无可用汇率" - }, - "noNFTs": { - "message": "尚无 NFT" - }, - "noSnaps": { - "message": "没有安装Snap" - }, - "noThanks": { - "message": "不,谢谢" - }, - "noThanksVariant2": { - "message": "不,谢谢." - }, - "noTransactions": { - "message": "您没有任何交易" - }, - "noWebcamFound": { - "message": "未找到您电脑的网络摄像头。请重试。" - }, - "noWebcamFoundTitle": { - "message": "未找到网络摄像头" - }, - "nonce": { - "message": "nonce" - }, - "nonceField": { - "message": "自定义交易 nonce" - }, - "nonceFieldDescription": { - "message": "打开这个功能可以改变确认屏幕上的 nonce(交易号码)。这是一个高级功能,请谨慎使用。" - }, - "nonceFieldHeading": { - "message": "自定义 Nonce" - }, - "notBusy": { - "message": "非忙碌中" - }, - "notCurrentAccount": { - "message": "这是正确的账户吗?这与您钱包中当前选择的账户不同" - }, - "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." - }, - "notifications10DescriptionOne": { - "message": "Ethereum Mainnet、Polygon、BSC 和 Avalanche 网络目前提供经改进的代币检测。 即将推出更多!" - }, - "notifications10DescriptionThree": { - "message": "代币检测功能默认开启。但是您可从设置中禁用它。" - }, - "notifications10DescriptionTwo": { - "message": "我们从第三方代币列表中获取代币。将自动检测在两个以上代币列表中列出的代币。" - }, - "notifications10Title": { - "message": "经改进的代币检测现已推出" - }, - "notifications11Description": { - "message": "代币可由任何人创建,而且名称可以重复。如您看到一个您不信任或未与之交互的代币出现——那么,不信任它会更安全。" - }, - "notifications11Title": { - "message": "欺诈和安全风险" - }, - "notifications12ActionText": { - "message": "启用黑暗模式" - }, - "notifications12Description": { - "message": "扩展程序的深色模式终于来了!若要开启,请前往“设置 -> 实验项”,然后选择一个显示选项:浅色、深色、系统。" - }, - "notifications12Title": { - "message": "何时启用黑暗模式?现在启用黑暗模式! 🕶️🦊" - }, - "notifications13ActionText": { - "message": "显示自定义网络列表" - }, - "notifications13Description": { - "message": "您现在可以轻松添加以下热门自定义网络:Arbitrum、Avalanche、Binance Smart Chain、Fantom、Harmony、Optimism、Palm和Polygon!如需启用此功能,请转到“设置” -> “实验”,然后打开“显示自定义网络列表”!", - "description": "Description of a notification in the 'See What's New' popup. Describes popular network feature." - }, - "notifications13Title": { - "message": "添加热门网络" - }, - "notifications1Description": { - "message": "MetaMask Mobile 用户现在可以在他们的移动钱包中交换代币。扫描二维码以获取移动应用程序并开始交换。", - "description": "Description of a notification in the 'See What's New' popup. Describes the swapping on mobile feature." - }, - "notifications1Title": { - "message": "可以在移动设备上交换了!", - "description": "Title for a notification in the 'See What's New' popup. Tells users that they can now use MetaMask Swaps on Mobile." - }, - "notifications3ActionText": { - "message": "了解更多", - "description": "The 'call to action' on the button, or link, of the 'Stay secure' notification. Upon clicking, users will be taken to a page about security on the metamask support website." - }, - "notifications3Description": { - "message": "及时了解 MetaMask 安全最佳实践,并从 MetaMask 官方支持部门获取最新的安全提示。", - "description": "Description of a notification in the 'See What's New' popup. Describes the information they can get on security from the linked support page." - }, - "notifications3Title": { - "message": "保持安全", - "description": "Title for a notification in the 'See What's New' popup. Encourages users to consider security." - }, - "notifications4ActionText": { - "message": "开始交换", - "description": "The 'call to action' on the button, or link, of the 'Swap on Binance Smart Chain!' notification. Upon clicking, users will be taken to a page where then can swap tokens on Binance Smart Chain." - }, - "notifications4Description": { - "message": "在您的钱包内获取最优惠的代币交换价格。MetaMask 现在将您连接到币安智能链上的多个去中心化交易所聚合器和专业做市商。", - "description": "Description of a notification in the 'See What's New' popup." - }, - "notifications4Title": { - "message": "在币安智能链上交换", - "description": "Title for a notification in the 'See What's New' popup. Encourages users to do swaps on Binance Smart Chain." - }, - "notifications5Description": { - "message": "您的“Seed Phrase”现在被称为“账户助记词”(Secret Recovery Phrase)。", - "description": "Description of a notification in the 'See What's New' popup. Describes the seed phrase wording update." - }, - "notifications6DescriptionOne": { - "message": "从 Chrome 版本91开始,启用我们的 Ledger 支持 (U2F) 的 API 不再支持硬件钱包。MetaMask 实施了新的 Ledger Live 支持,允许您继续通过 Ledger Live 桌面应用程序连接到您的 Ledger 设备。", - "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 账户。就是这样!", - "description": "Description of a notification in the 'See What's New' popup. Describes the Ledger support update." - }, - "notifications6DescriptionTwo": { - "message": "您可以通过点击“设置 > 高级> 使用 Ledger Live”来启用 Ledger Live 支持。", - "description": "Description of a notification in the 'See What's New' popup. Describes the Ledger support update." - }, - "notifications6Title": { - "message": "Chrome 用户的 Ledger 支持更新", - "description": "Title for a notification in the 'See What's New' popup. Lets users know about the Ledger support update" - }, - "notifications7DescriptionOne": { - "message": "MetaMask v10.1.0 包括使用 Ledger 设备时对 EIP-1559 交易的新支持。", - "description": "Description of a notification in the 'See What's New' popup. Describes changes for ledger and EIP1559 in v10.1.0" - }, - "notifications7DescriptionTwo": { - "message": "要在以太坊主网上完成交易,请确保您的 Ledger 设备拥有最新的固件。", - "description": "Description of a notification in the 'See What's New' popup. Describes the need to update ledger firmware." - }, - "notifications7Title": { - "message": "Ledger 固件更新", - "description": "Title for a notification in the 'See What's New' popup. Notifies ledger users of the need to update firmware." - }, - "notifications8ActionText": { - "message": "转到高级设置", - "description": "Description on an action button that appears in the What's New popup. Tells the user that if they click it, they will go to our Advanced Settings page." - }, - "notifications8DescriptionOne": { - "message": "从 MetaMask v10.4.0 开始,您不再需要 Ledger Live 即可将您的 Ledger 设备连接到 Metamask。", - "description": "Description of a notification in the 'See What's New' popup. Describes changes for how Ledger Live is no longer needed to connect the device." - }, - "notifications8DescriptionTwo": { - "message": "为了更轻松和更稳定的 ledger 体验,请转到设置中的“高级”选项卡,将“首选 Ledger 连接类型”切换为“WebHID”。", - "description": "Description of a notification in the 'See What's New' popup. Describes how the user can turn off the Ledger Live setting." - }, - "notifications8Title": { - "message": "Ledger 连接改进", - "description": "Title for a notification in the 'See What's New' popup. Notifies ledger users that there is an improvement in how they can connect their device." - }, - "notifications9DescriptionOne": { - "message": "当确认智能合约交易时,我们现在为您提供更多关于“数据”选项卡的见解。" - }, - "notifications9DescriptionTwo": { - "message": "您现在可以在确认之前更好地了解您的交易详情,并且可以更轻松地添加交易地址到您的地址簿,帮助您做出安全和知情的决定。" - }, - "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" - }, - "ofTextNofM": { - "message": "/" - }, - "off": { - "message": "关" - }, - "offlineForMaintenance": { - "message": "离线维护" - }, - "ok": { - "message": "确定" - }, - "on": { - "message": "开" - }, - "onboardingCreateWallet": { - "message": "创建新钱包" - }, - "onboardingImportWallet": { - "message": "导入现有钱包" - }, - "onboardingPinExtensionBillboardAccess": { - "message": "完全访问权限" - }, - "onboardingPinExtensionBillboardDescription": { - "message": "这些扩展程序可以查看和更改信息" - }, - "onboardingPinExtensionBillboardDescription2": { - "message": "在此网站上。" - }, - "onboardingPinExtensionBillboardTitle": { - "message": "扩展程序" - }, - "onboardingPinExtensionChrome": { - "message": "点击浏览器扩展程序图标" - }, - "onboardingPinExtensionDescription": { - "message": "在您的浏览器上固定 MetaMask,以便访问并轻松查看交易确认。" - }, - "onboardingPinExtensionDescription2": { - "message": "您可以通过点击扩展程序打开 MetaMask,并一键访问您的钱包。" - }, - "onboardingPinExtensionDescription3": { - "message": "点击浏览器扩展程序图标即可即时访问它" - }, - "onboardingPinExtensionLabel": { - "message": "固定 MetaMask" - }, - "onboardingPinExtensionStep1": { - "message": "1" - }, - "onboardingPinExtensionStep2": { - "message": "2" - }, - "onboardingPinExtensionTitle": { - "message": "您的 MetaMask 安装完成!" - }, - "onboardingReturnNotice": { - "message": "“$1”将关闭此选项卡,并直接返回到 $2", - "description": "Return the user to the site that initiated onboarding" - }, - "onboardingShowIncomingTransactionsDescription": { - "message": "在您的钱包中显示传入的交易依赖于与 $1 的通信。Etherscan 将有权访问您的以太坊地址和 IP 地址。查看 $2。", - "description": "$1 is a clickable link with text defined by the 'etherscan' key. $2 is a clickable link with text defined by the 'privacyMsg' key." - }, - "onboardingUsePhishingDetectionDescription": { - "message": "网络钓鱼检测警报依赖于与 $1 的通信。jsDeliver 将有权访问您的 IP 地址。查看 $2。", - "description": "The $1 is the word 'jsDeliver', from key 'jsDeliver' and $2 is the words Privacy Policy from key 'privacyMsg', both separated here so that it can be wrapped as a link" - }, - "onlyAddTrustedNetworks": { - "message": "恶意网络提供商可能会谎报区块链的状态并记录您的网络活动。只添加您信任的自定义网络。" - }, - "onlyConnectTrust": { - "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." - }, - "openSourceCode": { - "message": "检查源代码" - }, - "optional": { - "message": "可选" - }, - "optionalWithParanthesis": { - "message": "(可选)" - }, - "or": { - "message": "或" - }, - "origin": { - "message": "来源" - }, - "osTheme": { - "message": "系统" - }, - "padlock": { - "message": "挂锁" - }, - "parameters": { - "message": "参数" - }, - "participateInMetaMetrics": { - "message": "参加 MetaMetrics" - }, - "participateInMetaMetricsDescription": { - "message": "加入 MetaMetrics ,帮助我们改进 MetaMask" - }, - "password": { - "message": "密码" - }, - "passwordNotLongEnough": { - "message": "密码长度不足" - }, - "passwordSetupDetails": { - "message": "此密码只会在此设备上解锁您的 MetaMask 钱包。MetaMask 无法恢复此密码。" - }, - "passwordStrength": { - "message": "密码强度:$1", - "description": "Return password strength to the user when user wants to create password." - }, - "passwordStrengthDescription": { - "message": "强密码可以提高钱包的安全性,以防设备被盗或被入侵。" - }, - "passwordTermsWarning": { - "message": "我明白 MetaMask 无法为我恢复此密码。$1" - }, - "passwordsDontMatch": { - "message": "密码不匹配" - }, - "pastePrivateKey": { - "message": "请粘贴您的私钥:", - "description": "For importing an account from a private key" - }, - "pending": { - "message": "待处理" - }, - "pendingTransactionInfo": { - "message": "在那笔交易完成之前,这笔交易不会被处理。" - }, - "pendingTransactionMultiple": { - "message": "您有 ($1) 笔待处理的交易" - }, - "pendingTransactionSingle": { - "message": "您有 (1) 笔待处理的交易。", - "description": "$1 is count of pending transactions" - }, - "permissionRequest": { - "message": "权限请求" - }, - "permissionRequestCapitalized": { - "message": "权限请求" - }, - "permission_accessNetwork": { - "message": "访问互联网。", - "description": "The description of the `endowment:network-access` permission." - }, - "permission_accessSnap": { - "message": "连接$1的Snap。", - "description": "The description for the `wallet_snap_*` permission. $1 is the name of the Snap." - }, - "permission_customConfirmation": { - "message": "在MetaMask中显示确认。", - "description": "The description for the `snap_confirm` permission" - }, - "permission_ethereumAccounts": { - "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'." - }, - "permission_manageState": { - "message": "在您的设备上存储和管理其数据。", - "description": "The description for the `snap_manageState` permission" - }, - "permission_notifications": { - "message": "显示通知。", - "description": "The description for the `snap_notify` permission" - }, - "permission_unknown": { - "message": "未知权限:$1", - "description": "$1 is the name of a requested permission that is not recognized." - }, - "permissions": { - "message": "权限" - }, - "personalAddressDetected": { - "message": "检测到个人地址。请输入代币合约地址。" - }, - "pleaseConfirm": { - "message": "请确认" - }, - "plusXMore": { - "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" - }, - "preparingSwap": { - "message": "正在准备交换......" - }, - "prev": { - "message": "上一个" - }, - "primaryCurrencySetting": { - "message": "主要货币" - }, - "primaryCurrencySettingDescription": { - "message": "选择原生以优先显示链的原生货币(例如 ETH)的值。选择法定货币以优先显示以您所选法定货币显示的值。" - }, - "priorityFee": { - "message": "优先费用" - }, - "priorityFeeProperCase": { - "message": "优先费用" - }, - "privacyMsg": { - "message": "隐私政策" - }, - "privateKey": { - "message": "私钥", - "description": "select this type of file to use to import an account" - }, - "privateKeyWarning": { - "message": "警告:切勿泄露此密钥。任何拥有您私钥的人都可以窃取您账户中持有的任何资产。" - }, - "privateNetwork": { - "message": "私有网络" - }, - "proceedWithTransaction": { - "message": "我仍然想继续" - }, - "proposedApprovalLimit": { - "message": "拟议的审批上限" - }, - "provide": { - "message": "提供" - }, - "publicAddress": { - "message": "公共地址" - }, - "queue": { - "message": "队列" - }, - "queued": { - "message": "队列中" - }, - "reAddAccounts": { - "message": "重新添加任何其他账户" - }, - "reAdded": { - "message": "重新添加" - }, - "readdToken": { - "message": "将来您还可以通过账户选项菜单中的“导入代币”来添加此代币。" - }, - "receive": { - "message": "接收" - }, - "recents": { - "message": "最近" - }, - "recipientAddressPlaceholder": { - "message": "搜索、公共地址 (0x) 或 ENS" - }, - "recommendedGasLabel": { - "message": "建议" - }, - "recoveryPhraseReminderBackupStart": { - "message": "从这里开始" - }, - "recoveryPhraseReminderConfirm": { - "message": "明白了" - }, - "recoveryPhraseReminderHasBackedUp": { - "message": "始终将您的账户助记词保存在安全和秘密的地方" - }, - "recoveryPhraseReminderHasNotBackedUp": { - "message": "需要再次备份您的账户助记词?" - }, - "recoveryPhraseReminderItemOne": { - "message": "切勿与任何人分享您的账户助记词" - }, - "recoveryPhraseReminderItemTwo": { - "message": "MetaMask 团队绝对不会索要您的账户助记词" - }, - "recoveryPhraseReminderSubText": { - "message": "您的账户助记词控制您的所有账户。" - }, - "recoveryPhraseReminderTitle": { - "message": "保护您的资金" - }, - "refreshList": { - "message": "刷新列表" - }, - "reject": { - "message": "拒绝" - }, - "rejectAll": { - "message": "拒绝全部" - }, - "rejectTxsDescription": { - "message": "您将批量拒绝 $1 笔交易。" - }, - "rejectTxsN": { - "message": "拒绝 $1 笔交易" - }, - "rejected": { - "message": "已拒绝" - }, - "remember": { - "message": "记住:" - }, - "remindMeLater": { - "message": "稍后提醒我" - }, - "remove": { - "message": "删除" - }, - "removeAccount": { - "message": "删除账户" - }, - "removeAccountDescription": { - "message": "该账户将从您的钱包中删除。在继续操作前,确认您已拥有该导入账户的原始账户助记词或私钥。您可以通过账户下拉菜单再次导入或创建账户。" - }, - "removeNFT": { - "message": "删除 NFT" - }, - "removeSnap": { - "message": "移除Snap" - }, - "removeSnapConfirmation": { - "message": "您确定要移除$1吗?", - "description": "$1 represents the name of the snap" - }, - "removeSnapDescription": { - "message": "此操作将会删除snap及其数据,并撤销您获授予的权限。" - }, - "replace": { - "message": "替换" - }, - "requestsAwaitingAcknowledgement": { - "message": "待确认的请求" - }, - "required": { - "message": "必需" - }, - "reset": { - "message": "重置" - }, - "resetAccount": { - "message": "重置账户" - }, - "resetAccountDescription": { - "message": "重置账户将清除您的交易历史记录。这不会改变您账户中的余额,也不会要求您重新输入账户助记词。" - }, - "resetWallet": { - "message": "重置钱包" - }, - "resetWalletSubHeader": { - "message": "MetaMask不会保留密码的副本。如果您在解锁账户时遇到问题,需要重置您的钱包。您可以提供设置钱包时使用的助记词,以进行重置。" - }, - "resetWalletUsingSRP": { - "message": "此操作将从此设备中删除您当前的钱包和助记词,以及您编制的账户列表。使用助记词进行重置后,您将会看到一个账户列表(基于用于重置的助记词)。这个新列表将自动包括有余额的账户。您还可以使用之前创建的$1。您导入的自定义账户需要是$2,添加到账户中的任何自定义代币也需要是$3。" - }, - "resetWalletWarning": { - "message": "在继续之前,请确保您所使用的助记词正确无误。您将无法撤消此操作。" - }, - "restartMetamask": { - "message": "重新启动MetaMask" - }, - "restore": { - "message": "恢复" - }, - "restoreWalletPreferences": { - "message": "已找到 $1 的数据备份。您想恢复您的钱包偏好设置吗?", - "description": "$1 is the date at which the data was backed up" - }, - "retryTransaction": { - "message": "重试交易" - }, - "reusedTokenNameWarning": { - "message": "此处的代币使用了与您关注的另一种代币相同的符号,这可能会让人感到困惑或具有欺骗性。" - }, - "revealSeedWords": { - "message": "显示助记词" - }, - "revealSeedWordsDescription": { - "message": "如果更改浏览器或移动计算机,您将需要此助记词才能访问账户。将它们保存在安全、秘密的地方。" - }, - "revealSeedWordsWarning": { - "message": "这些账户助记词可以用来窃取您的所有账户。" - }, - "revealSeedWordsWarningTitle": { - "message": "切勿与任何人分享此账户助记词!" - }, - "revealTheSeedPhrase": { - "message": "显示助记词" - }, - "revokeAllTokensTitle": { - "message": "撤销访问您的所有$1的权限?", - "description": "$1 is the symbol of the token for which the user is revoking approval" - }, - "revokeApproveForAllDescription": { - "message": "通过撤销权限,以下$1将无法再访问您的$2", - "description": "$1 is either key 'account' or 'contract', and $2 is either a string or link of a given token symbol or name" - }, - "rpcUrl": { - "message": "新的 RPC URL" - }, - "safeTransferFrom": { - "message": "安全转账来自" - }, - "save": { - "message": "保存" - }, - "saveAsCsvFile": { - "message": "保存为 CSV 文件" - }, - "scanInstructions": { - "message": "将二维码放在摄像头前" - }, - "scanQrCode": { - "message": "扫描二维码" - }, - "scrollDown": { - "message": "向下滚动" - }, - "search": { - "message": "搜索" - }, - "searchAccounts": { - "message": "搜索账户" - }, - "searchResults": { - "message": "搜索结果" - }, - "searchSettings": { - "message": "在设置中搜索" - }, - "searchTokens": { - "message": "搜索代币" - }, - "secretBackupPhraseDescription": { - "message": "您的账户助记词可以帮助您轻松备份和恢复个人账户。" - }, - "secretBackupPhraseWarning": { - "message": "警告:切勿向他人透露您的账户助记词。任何拥有该账户助记词的人都可以永远拿走您的以太币。" - }, - "secretPhrase": { - "message": "只有这个钱包上的第一个账户将自动加载。完成此流程后,若要添加额外的账户,点击下拉菜单,然后选择“创建账户”。" - }, - "secretRecoveryPhrase": { - "message": "助记词" - }, - "secureWallet": { - "message": "安全钱包" - }, - "securityAndPrivacy": { - "message": "安全和隐私" - }, - "seedPhraseConfirm": { - "message": "确认助记词" - }, - "seedPhraseEnterMissingWords": { - "message": "确认助记词" - }, - "seedPhraseIntroNotRecommendedButtonCopy": { - "message": "稍后提醒我(不推荐)" - }, - "seedPhraseIntroRecommendedButtonCopy": { - "message": "保护我的钱包(推荐)" - }, - "seedPhraseIntroSidebarBulletFour": { - "message": "写下并存储在多个秘密位置。" - }, - "seedPhraseIntroSidebarBulletOne": { - "message": "保存到密码管理器" - }, - "seedPhraseIntroSidebarBulletThree": { - "message": "存放在保险箱内。" - }, - "seedPhraseIntroSidebarBulletTwo": { - "message": "储存在银行保险库。" - }, - "seedPhraseIntroSidebarCopyOne": { - "message": "您的账户助记词是由12个单词组成的短语,它是您的钱包和资金的“主密钥”" - }, - "seedPhraseIntroSidebarCopyThree": { - "message": "如果有人要求您的恢复短语,他们可能会试图欺骗您并偷窃您的钱包资金" - }, - "seedPhraseIntroSidebarCopyTwo": { - "message": "切勿分享您的账户助记词,包括也不能与 MetaMask 分享!" - }, - "seedPhraseIntroSidebarTitleOne": { - "message": "什么是账户助记词?" - }, - "seedPhraseIntroSidebarTitleThree": { - "message": "我是否应该分享我的账户助记词?" - }, - "seedPhraseIntroSidebarTitleTwo": { - "message": "如何保存我的账户助记词?" - }, - "seedPhraseIntroTitle": { - "message": "保护您的钱包安全" - }, - "seedPhraseIntroTitleCopy": { - "message": "在开始之前,观看这个简短的视频来了解您的账户助记词以及如何保护您的钱包安全。" - }, - "seedPhraseReq": { - "message": "助记词包含 12、15、18、21 或 24 个字词" - }, - "seedPhraseWriteDownDetails": { - "message": "请写下这个由12个单词组成的账户助记词,然后将其保存到您信任并且只有您可以访问的地方。" - }, - "seedPhraseWriteDownHeader": { - "message": "写下您的助记词" - }, - "selectAHigherGasFee": { - "message": "选择更高的燃料费用,加快交易处理速度。*" - }, - "selectAccounts": { - "message": "选择要在此网站上使用的账户" - }, - "selectAll": { - "message": "全部选择" - }, - "selectAnAccount": { - "message": "选择一个账户" - }, - "selectAnAccountAlreadyConnected": { - "message": "此账户已连接到 MetaMask" - }, - "selectEachPhrase": { - "message": "请选择每个单词,以确保其正确性。" - }, - "selectHdPath": { - "message": "选择 HD 路径" - }, - "selectNFTPrivacyPreference": { - "message": "在设置中打开 NFT 检测" - }, - "selectPathHelp": { - "message": "如果您没有看到您期望的账户,请尝试切换 HD 路径。" - }, - "selectType": { - "message": "选择类型" - }, - "selectingAllWillAllow": { - "message": "选择全部将允许本网站查看您当前的所有账户。确保您信任这个网站。" - }, - "send": { - "message": "发送" - }, - "sendAmount": { - "message": "发送金额" - }, - "sendBugReport": { - "message": "向我们发送错误报告。" - }, - "sendSpecifiedTokens": { - "message": "发送 $1", - "description": "Symbol of the specified token" - }, - "sendTo": { - "message": "发送到" - }, - "sendTokens": { - "message": "发送代币" - }, - "sendingDisabled": { - "message": "尚不支持发送ERC-1155 NFT资产。" - }, - "sendingNativeAsset": { - "message": "正在发送 $1", - "description": "$1 represents the native currency symbol for the current network (e.g. ETH or BNB)" - }, - "sendingToTokenContractWarning": { - "message": "警告:您将要发送到代币合约,这可能会导致资金损失。$1", - "description": "$1 is a clickable link with text defined by the 'learnMoreUpperCase' key. The link will open to a support article regarding the known contract address warning" - }, - "setAdvancedPrivacySettings": { - "message": "设置高级隐私设置" - }, - "setAdvancedPrivacySettingsDetails": { - "message": "MetaMask 使用这些可信的第三方服务来提高产品可用性和安全性。" - }, - "setApprovalForAll": { - "message": "设置批准所有" - }, - "setApprovalForAllTitle": { - "message": "批准$1,且无消费限制", - "description": "The token symbol that is being approved" - }, - "settings": { - "message": "设置" - }, - "settingsSearchMatchingNotFound": { - "message": "没有找到匹配的结果." - }, - "shorthandVersion": { - "message": "v$1", - "description": "$1 is replaced by a version string (e.g. 1.2.3)" - }, - "show": { - "message": "显示" - }, - "showAdvancedGasInline": { - "message": "高级燃料控制" - }, - "showAdvancedGasInlineDescription": { - "message": "选择此项可直接在发送和确认界面显示燃料价格和上限控制。" - }, - "showCustomNetworkList": { - "message": "显示自定义网络列表" - }, - "showCustomNetworkListDescription": { - "message": "选择此项,在添加新网络时就会显示附有预填详细信息的网络列表。" - }, - "showFiatConversionInTestnets": { - "message": "在测试网络上显示转换" - }, - "showFiatConversionInTestnetsDescription": { - "message": "选择此项以在测试网络上显示法定货币转换" - }, - "showHexData": { - "message": "显示十六进制数据" - }, - "showHexDataDescription": { - "message": "选择此项以在发送屏幕上显示十六进制数据字段" - }, - "showHide": { - "message": "显示/隐藏" - }, - "showIncomingTransactions": { - "message": "显示传入的交易" - }, - "showIncomingTransactionsDescription": { - "message": "选择此项以使用 Etherscan 在交易列表中显示传入的交易" - }, - "showPermissions": { - "message": "显示权限" - }, - "showPrivateKeys": { - "message": "显示私钥" - }, - "showRecommendations": { - "message": "显示建议" - }, - "showTestnetNetworks": { - "message": "显示测试网络" - }, - "showTestnetNetworksDescription": { - "message": "选择此项以在网络列表中显示测试网络" - }, - "sigRequest": { - "message": "签名请求" - }, - "sign": { - "message": "签名" - }, - "signNotice": { - "message": "谨慎行事。此操作有可能用来从您的账户提取资产。确保您信任此站点。" - }, - "signatureRequest": { - "message": "签名请求" - }, - "signatureRequest1": { - "message": "消息" - }, - "signed": { - "message": "已签名" - }, - "simulationErrorMessageV2": { - "message": "我们无法估算燃料。合约中可能存在错误,这笔交易可能会失败。" - }, - "skip": { - "message": "跳过" - }, - "skipAccountSecurity": { - "message": "跳过账户安全?" - }, - "skipAccountSecurityDetails": { - "message": "我明白,在我备份我的账户助记词之前,我可能会丢失我的账户及其所有资产。" - }, - "slow": { - "message": "慢" - }, - "smartTransaction": { - "message": "智能交易" - }, - "snapAccess": { - "message": "$1的snap可以访问:", - "description": "$1 represents the name of the snap" - }, - "snapAdded": { - "message": "从 $2 添加到 $1", - "description": "$1 represents the date the snap was installed, $2 represents which origin installed the snap." - }, - "snapError": { - "message": "Snap错误:'$1'。错误代码:'$2'", - "description": "This is shown when a snap encounters an error. $1 is the error message from the snap, and $2 is the error code." - }, - "snapInstall": { - "message": "安装Snap" - }, - "snapInstallWarningCheck": { - "message": "请勾选全部以确认您理解。" - }, - "snapRequestsPermission": { - "message": "此Snap正在请求以下权限:" - }, - "snaps": { - "message": "Snap" - }, - "snapsSettingsDescription": { - "message": "管理您的Snap" - }, - "snapsStatus": { - "message": "Snap状态取决于活动。" - }, - "snapsToggle": { - "message": "Snap仅在启用后才会运行" - }, - "someNetworksMayPoseSecurity": { - "message": "某些网络可能会带来安全和/或隐私风险。在添加和使用网络之前,请先了解风险。" - }, - "somethingWentWrong": { - "message": "哎呀!出了点问题。" - }, - "source": { - "message": "来源" - }, - "speedUp": { - "message": "加速" - }, - "speedUpCancellation": { - "message": "加速该取消操作" - }, - "speedUpExplanation": { - "message": "我们根据当前网络条件更新了燃料费用,将其提高了至少10%(网络要求)。" - }, - "speedUpPopoverTitle": { - "message": "加快交易速度" - }, - "speedUpTooltipText": { - "message": "新燃料费" - }, - "speedUpTransaction": { - "message": "加速该交易" - }, - "spendLimitAmount": { - "message": "消费限额" - }, - "spendLimitInsufficient": { - "message": "消费限额不足" - }, - "spendLimitInvalid": { - "message": "消费限额无效;必须是正数" - }, - "spendLimitPermission": { - "message": "支付限额权限" - }, - "spendLimitRequestedBy": { - "message": "$1 请求的消费限额", - "description": "Origin of the site requesting the spend limit" - }, - "spendLimitTooLarge": { - "message": "消费限额过大" - }, - "srpInputNumberOfWords": { - "message": "我有一个包含$1个单词的助记词", - "description": "This is the text for each option in the dropdown where a user selects how many words their secret recovery phrase has during import. The $1 is the number of words (either 12, 15, 18, 21, or 24)." - }, - "srpPasteFailedTooManyWords": { - "message": "粘贴失败,因为它包含超过24个单词。一个助记词最多可包含24个单词。", - "description": "Description of SRP paste erorr when the pasted content has too many words" - }, - "srpPasteTip": { - "message": "您可以将整个助记词粘贴到任何字段中", - "description": "Our secret recovery phrase input is split into one field per word. This message explains to users that they can paste their entire secrete recovery phrase into any field, and we will handle it correctly." - }, - "srpToggleShow": { - "message": "显示/隐藏助记词中的这个单词", - "description": "Describes a toggle that is used to show or hide a single word of the secret recovery phrase" - }, - "srpWordHidden": { - "message": "这个单词已隐藏", - "description": "Explains that a word in the secret recovery phrase is hidden" - }, - "srpWordShown": { - "message": "这个单词处于显示状态", - "description": "Explains that a word in the secret recovery phrase is being shown" - }, - "stable": { - "message": "稳定" - }, - "stableLowercase": { - "message": "稳定" - }, - "stateLogError": { - "message": "检索状态日志时出错。" - }, - "stateLogFileName": { - "message": "MetaMask 状态日志" - }, - "stateLogs": { - "message": "状态日志" - }, - "stateLogsDescription": { - "message": "状态日志包含您的公共账户地址和已发送的交易。" - }, - "status": { - "message": "状态" - }, - "statusConnected": { - "message": "已连接" - }, - "statusNotConnected": { - "message": "未连接" - }, - "step1LatticeWallet": { - "message": "请确保您的 Lattice1 已准备好连接" - }, - "step1LatticeWalletMsg": { - "message": "当您的 Lattice1 设备设置好并在线时,您可以将 MetaMask 与它连接。解锁您的设备并准备好您的设备 ID。若要了解有关使用硬件钱包的更多信息,$1", - "description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key" - }, - "step1LedgerWallet": { - "message": "下载 Ledger 应用程序" - }, - "step1LedgerWalletMsg": { - "message": "下载、设置并输入您的密码以解锁 $1。", - "description": "$1 represents the `ledgerLiveApp` localization value" - }, - "step1TrezorWallet": { - "message": "插入 Trezor 钱包" - }, - "step1TrezorWalletMsg": { - "message": "将您的钱包直接连接到电脑。若要了解有关使用硬件钱包设备的更多信息,$1", - "description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key" - }, - "step2LedgerWallet": { - "message": "插入 Ledger 钱包" - }, - "step2LedgerWalletMsg": { - "message": "将您的钱包直接连接到电脑。解锁 Ledger 并打开 Ethereum 应用程序。若要了解有关使用您的硬件钱包设备的更多信息,$1。", - "description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key" - }, - "stillGettingMessage": { - "message": "仍然收到此消息?" - }, - "storePhrase": { - "message": "通过如 1Password 等密码管理工具保存该账户助记词。" - }, - "strong": { - "message": "强" - }, - "stxAreHere": { - "message": "智能交易已推出!" - }, - "stxBenefit1": { - "message": "将交易成本减至最低" - }, - "stxBenefit2": { - "message": "减少交易失败" - }, - "stxBenefit3": { - "message": "消除卡住的交易" - }, - "stxBenefit4": { - "message": "防止抢先交易" - }, - "stxCancelled": { - "message": "交换就会失败" - }, - "stxCancelledDescription": { - "message": "您的交易就会失败,并被取消,以保护您免于支付不必要的燃料费。" - }, - "stxCancelledSubDescription": { - "message": "再次尝试进行交换。下次我们会在这里保护您免受类似风险。 " - }, - "stxDescription": { - "message": "MetaMask Swap变得更加智能!启用智能交易将允许MetaMask从编程上优化您的交换,以帮助:" - }, - "stxErrorNotEnoughFunds": { - "message": "没有足够的资金进行智能交易。" - }, - "stxErrorUnavailable": { - "message": "智能交易暂时不可用。" - }, - "stxFailure": { - "message": "交换失败" - }, - "stxFailureDescription": { - "message": "突然的市场变化可能导致失败。如果问题仍然存在,请联系$1。", - "description": "This message is shown to a user if their swap fails. The $1 will be replaced by support.metamask.io" - }, - "stxFallbackPendingTx": { - "message": "智能交易暂时不可用,因为您有一笔待处理的交易。" - }, - "stxFallbackUnavailable": { - "message": "即使智能交易不可用,您仍然可以交换代币。" - }, - "stxPendingPrivatelySubmittingSwap": { - "message": "正在秘密提交您的Swap..." - }, - "stxPendingPubliclySubmittingSwap": { - "message": "正在公开提交您的Swap..." - }, - "stxSubDescription": { - "message": "*智能交易将尝试多次隐秘提交您的交易。如果所有尝试都失败,交易将会公开广播,以确保您的交换能成功进行。" - }, - "stxSuccess": { - "message": "交换完成!" - }, - "stxSuccessDescription": { - "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": "在提交前模拟交易,以降低交易成本并减少失败。" - }, - "stxTryRegular": { - "message": "尝试定期交换。" - }, - "stxTryingToCancel": { - "message": "正在尝试取消您的交易......" - }, - "stxUnavailable": { - "message": "智能交易被禁用" - }, - "stxUnknown": { - "message": "状态未知" - }, - "stxUnknownDescription": { - "message": "有一笔交易已经成功,但我们不确定是哪一笔。这可能是由于在处理此交换时提交了另一笔交易。" - }, - "stxUserCancelled": { - "message": "交换已取消" - }, - "stxUserCancelledDescription": { - "message": "您的交易已被取消,您并未支付任何不必要的燃料费。" - }, - "stxYouCanOptOut": { - "message": "您可以随时选择退出高级设置。" - }, - "submit": { - "message": "提交" - }, - "submitted": { - "message": "已提交" - }, - "support": { - "message": "获取帮助" - }, - "supportCenter": { - "message": "访问我们的支持中心" - }, - "swap": { - "message": "交换" - }, - "swapAggregator": { - "message": "聚合器" - }, - "swapAllowSwappingOf": { - "message": "允许交换 $1", - "description": "Shows a user that they need to allow a token for swapping on their hardware wallet" - }, - "swapAmountReceived": { - "message": "保证金额" - }, - "swapAmountReceivedInfo": { - "message": "这是您将收到的最低金额。根据滑点值,您可能会收到更多。" - }, - "swapApproval": { - "message": "批准 $1 进行交换", - "description": "Used in the transaction display list to describe a transaction that is an approve call on a token that is to be swapped.. $1 is the symbol of a token that has been approved." - }, - "swapApproveNeedMoreTokens": { - "message": "您还需要 $1 的 $2 来完成这笔交换", - "description": "Tells the user how many more of a given token they need for a specific swap. $1 is an amount of tokens and $2 is the token symbol." - }, - "swapApproveNeedMoreTokensSmartTransactions": { - "message": "您还需要更多$1才能使用智能交易完成此交换。", - "description": "Tells the user that they need more of a certain token ($1) before they can complete the swap via smart transactions." - }, - "swapBestOfNQuotes": { - "message": "$1 报价中最棒的。", - "description": "$1 is the number of quotes that the user can select from when opening the list of quotes on the 'view quote' screen" - }, - "swapBuildQuotePlaceHolderText": { - "message": "没有与 $1 匹配的代币", - "description": "Tells the user that a given search string does not match any tokens in our token lists. $1 can be any string of text" - }, - "swapConfirmWithHwWallet": { - "message": "使用您的硬件钱包确认" - }, - "swapContractDataDisabledErrorDescription": { - "message": "在您的 Ledger 的 Etherum 应用程序中,转到“设置”并允许合约数据。然后再次尝试交换。" - }, - "swapContractDataDisabledErrorTitle": { - "message": "您的 Ledger 上未启用合约数据" - }, - "swapCustom": { - "message": "自定义" - }, - "swapDecentralizedExchange": { - "message": "去中心化交易所" - }, - "swapDirectContract": { - "message": "直接合约" - }, - "swapEditLimit": { - "message": "编辑限制" - }, - "swapEnableDescription": { - "message": "这是必须的,并授予 MetaMask 权限交换您的 $1。", - "description": "Gives the user info about the required approval transaction for swaps. $1 will be the symbol of a token being approved for swaps." - }, - "swapEnableTokenForSwapping": { - "message": "这将 $1 进行交换", - "description": "$1 is for the 'enableToken' key, e.g. 'enable ETH'" - }, - "swapEstimatedNetworkFees": { - "message": "预估网络费用" - }, - "swapEstimatedNetworkFeesInfo": { - "message": "这是预估的网络费用,将用于完成您的交换。实际金额可能会根据网络条件而变化。" - }, - "swapFailedErrorDescriptionWithSupportLink": { - "message": "交易有时会失败,我们随时为您提供帮助。如果此问题仍然存在,您可以在 $1 联系我们的客服,以获得进一步的帮助。", - "description": "This message is shown to a user if their swap fails. The $1 will be replaced by support.metamask.io" - }, - "swapFailedErrorTitle": { - "message": "交换失败" - }, - "swapFetchingQuoteNofN": { - "message": "获取$2的$1报价", - "description": "A count of possible quotes shown to the user while they are waiting for quotes to be fetched. $1 is the number of quotes already loaded, and $2 is the total number of resources that we check for quotes. Keep in mind that not all resources will have a quote for a particular swap." - }, - "swapFetchingQuotes": { - "message": "取得报价中" - }, - "swapFetchingQuotesErrorDescription": { - "message": "呃……出错了。再试一次,如果错误仍存在,请联系客服。" - }, - "swapFetchingQuotesErrorTitle": { - "message": "获取报价出错" - }, - "swapFetchingTokens": { - "message": "获取代币中……" - }, - "swapFromTo": { - "message": "$1 到 $2 的交换", - "description": "Tells a user that they need to confirm on their hardware wallet a swap of 2 tokens. $1 is a source token and $2 is a destination token" - }, - "swapGasFeesDetails": { - "message": "燃料费用是估算的,并将根据网络流量和交易复杂性而波动。" - }, - "swapGasFeesLearnMore": { - "message": "了解更多关于燃料费的信息" - }, - "swapGasFeesSplit": { - "message": "上一个屏幕上的燃料费用在这两笔交易之间分摊。" - }, - "swapGasFeesSummary": { - "message": "燃料费用支付给在 $1 网络上处理交易的加密矿工。MetaMask 不会从燃料费用中获利。", - "description": "$1 is the selected network, e.g. Ethereum or BSC" - }, - "swapHighSlippageWarning": { - "message": "滑点金额非常高。" - }, - "swapIncludesMMFee": { - "message": "包括 $1% 的 MetaMask 费用。", - "description": "Provides information about the fee that metamask takes for swaps. $1 is a decimal number." - }, - "swapLowSlippageError": { - "message": "交易可能会失败,最大滑点过低。" - }, - "swapMaxSlippage": { - "message": "最大滑点" - }, - "swapMetaMaskFee": { - "message": "MetaMask 费用" - }, - "swapMetaMaskFeeDescription": { - "message": "我们每次都能从顶级流动性资源中找到最优惠的价格。$1% 的费用会自动计入此报价。", - "description": "Provides information about the fee that metamask takes for swaps. $1 is a decimal number." - }, - "swapNQuotesWithDot": { - "message": "$1 报价。", - "description": "$1 is the number of quotes that the user can select from when opening the list of quotes on the 'view quote' screen" - }, - "swapNewQuoteIn": { - "message": "$1 后更新报价", - "description": "Tells the user the amount of time until the currently displayed quotes are update. $1 is a time that is counting down from 1:00 to 0:00" - }, - "swapOnceTransactionHasProcess": { - "message": "处理完此交易后,您的 $1 将被添加到您的账户中。", - "description": "This message communicates the token that is being transferred. It is shown on the awaiting swap screen. The $1 will be a token symbol." - }, - "swapPriceDifference": { - "message": "您将用 $1 $2 (~$3) 交换 $4 $5 (~$6)。", - "description": "This message represents the price slippage for the swap. $1 and $4 are a number (ex: 2.89), $2 and $5 are symbols (ex: ETH), and $3 and $6 are fiat currency amounts." - }, - "swapPriceDifferenceTitle": { - "message": "~$1% 的价差", - "description": "$1 is a number (ex: 1.23) that represents the price difference." - }, - "swapPriceImpactTooltip": { - "message": "价格影响是当前市场价格与交易执行期间收到的金额之间的差异。价格影响是您的交易规模相对于流动资金池规模的一个函数。" - }, - "swapPriceUnavailableDescription": { - "message": "由于缺乏市场价格数据,无法确定价格影响。在交换之前,请确认您对即将收到的代币数量感到满意。" - }, - "swapPriceUnavailableTitle": { - "message": "在继续之前,请检查您的费率" - }, - "swapProcessing": { - "message": "处理中" - }, - "swapQuoteDetails": { - "message": "报价详情" - }, - "swapQuoteSource": { - "message": "报价来源" - }, - "swapQuotesExpiredErrorDescription": { - "message": "请请求新的报价,以获得最新的价格。" - }, - "swapQuotesExpiredErrorTitle": { - "message": "报价超时" - }, - "swapQuotesNotAvailableErrorDescription": { - "message": "尝试调整金额或滑点设置,然后重试。" - }, - "swapQuotesNotAvailableErrorTitle": { - "message": "无可用报价" - }, - "swapRate": { - "message": "费率" - }, - "swapReceiving": { - "message": "正在接收" - }, - "swapReceivingInfoTooltip": { - "message": "这是一个预估额。确切的金额取决于滑点。" - }, - "swapRequestForQuotation": { - "message": "请求报价" - }, - "swapReviewSwap": { - "message": "审查交换" - }, - "swapSelect": { - "message": "选择" - }, - "swapSelectAQuote": { - "message": "选择一个报价" - }, - "swapSelectAToken": { - "message": "选择代币" - }, - "swapSelectQuotePopoverDescription": { - "message": "以下是从多个流动性来源收集到的所有报价。" - }, - "swapSlippageNegative": { - "message": "滑点必须大于或等于0" - }, - "swapSlippagePercent": { - "message": "$1%", - "description": "$1 is the amount of % for slippage" - }, - "swapSource": { - "message": "流动性来源" - }, - "swapSourceInfo": { - "message": "我们搜索多个流动性来源(交易所、聚合器和专业做市商),以找到最优惠的价格和最低的网络费用。" - }, - "swapSuggested": { - "message": "建议的交换" - }, - "swapSuggestedGasSettingToolTipMessage": { - "message": "交换是复杂和时间敏感的交易。我们建议使用此燃料费用,以便在成本和成功交换的信心之间保持良好的平衡。" - }, - "swapSwapFrom": { - "message": "交换自" - }, - "swapSwapSwitch": { - "message": "在代币之间切换" - }, - "swapSwapTo": { - "message": "交换为" - }, - "swapToConfirmWithHwWallet": { - "message": "使用您的硬件钱包确认" - }, - "swapTokenAvailable": { - "message": "您的 $1 已添加到您的账户。", - "description": "This message is shown after a swap is successful and communicates the exact amount of tokens the user has received for a swap. The $1 is a decimal number of tokens followed by the token symbol." - }, - "swapTokenBalanceUnavailable": { - "message": "我们无法检索您的 $1 余额", - "description": "This message communicates to the user that their balance of a given token is currently unavailable. $1 will be replaced by a token symbol" - }, - "swapTokenToToken": { - "message": "用 $1 交换 $2", - "description": "Used in the transaction display list to describe a swap. $1 and $2 are the symbols of tokens in involved in a swap." - }, - "swapTokenVerificationAddedManually": { - "message": "此代币已手动添加。" - }, - "swapTokenVerificationMessage": { - "message": "始终在 $1 上确认代币地址。", - "description": "Points the user to Etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"Etherscan\" followed by an info icon that shows more info on hover." - }, - "swapTokenVerificationOnlyOneSource": { - "message": "仅在1个来源上进行了验证。" - }, - "swapTokenVerificationSources": { - "message": "在 $1 个来源上进行了验证。", - "description": "Indicates the number of token information sources that recognize the symbol + address. $1 is a decimal number." - }, - "swapTooManyDecimalsError": { - "message": "$1 允许最多 $2 个小数位", - "description": "$1 is a token symbol and $2 is the max. number of decimals allowed for the token" - }, - "swapTransactionComplete": { - "message": "交易完成" - }, - "swapTwoTransactions": { - "message": "2笔交易" - }, - "swapUnknown": { - "message": "未知" - }, - "swapVerifyTokenExplanation": { - "message": "多个代币可以使用相同的名称和符号。检查 $1 以确认这是您正在寻找的代币。", - "description": "This appears in a tooltip next to the verifyThisTokenOn message. It gives the user more information about why they should check the token on a block explorer. $1 will be the name or url of the block explorer, which will be the translation of 'etherscan' or a block explorer url specified for a custom network." - }, - "swapYourTokenBalance": { - "message": "$1 $2 可用于交换", - "description": "Tells the user how much of a token they have in their balance. $1 is a decimal number amount of tokens, and $2 is a token symbol" - }, - "swapZeroSlippage": { - "message": "0%滑点" - }, - "swapsAdvancedOptions": { - "message": "高级选项" - }, - "swapsExcessiveSlippageWarning": { - "message": "滑点金额太高,会导致不良率。请将最大滑点降低到低于15%的值。" - }, - "swapsMaxSlippage": { - "message": "最大滑点" - }, - "swapsNotEnoughForTx": { - "message": "没有足够的 $1 来完成此交易", - "description": "Tells the user that they don't have enough of a token for a proposed swap. $1 is a token symbol" - }, - "swapsViewInActivity": { - "message": "在活动中查看" - }, - "switchEthereumChainConfirmationDescription": { - "message": "这将切换 MetaMask 中选定的网络到以前添加的网络:" - }, - "switchEthereumChainConfirmationTitle": { - "message": "允许此网站切换网络?" - }, - "switchNetwork": { - "message": "切换网络" - }, - "switchNetworks": { - "message": "切换网络" - }, - "switchToNetwork": { - "message": "切换至$1", - "description": "$1 represents the custom network that has previously been added" - }, - "switchToThisAccount": { - "message": "切换到该账户" - }, - "switchingNetworksCancelsPendingConfirmations": { - "message": "切换网络将取消所有待处理的确认" - }, - "symbol": { - "message": "符号" - }, - "symbolBetweenZeroTwelve": { - "message": "符号不得超过11个字符。" - }, - "syncFailed": { - "message": "同步失败" - }, - "syncInProgress": { - "message": "同步进行中" - }, - "syncWithMobile": { - "message": "与移动设备同步" - }, - "syncWithMobileBeCareful": { - "message": "扫描此代码时,请确保附近没有其他人在看您的屏幕" - }, - "syncWithMobileComplete": { - "message": "您的数据已同步成功。尽情体验 MetaMask 移动应用程序吧!" - }, - "syncWithMobileDesc": { - "message": "您可以将您的账户和信息与您的移动设备同步。打开 MetaMask 移动应用程序,进入“设置”,点击“从浏览器扩展程序同步”" - }, - "syncWithMobileDescNewUsers": { - "message": "如果您是首次启用 MetaMask 移动应用程序,请通过个人手机完成如下操作。" - }, - "syncWithMobileScanThisCode": { - "message": "使用 MetaMask 移动应用程序扫描此代码" - }, - "syncWithMobileTitle": { - "message": "与移动设备同步" - }, - "syncWithThreeBox": { - "message": "与 3Box 同步数据(实验功能)" - }, - "syncWithThreeBoxDescription": { - "message": "开启以使用 3Box 备份您的设置。此功能目前是实验功能,使用时风险自负。" - }, - "syncWithThreeBoxDisabled": { - "message": "由于初始同步过程中出现错误,3Box 已被禁用" - }, - "tenPercentIncreased": { - "message": "增加10%" - }, - "terms": { - "message": "使用条款" - }, - "termsOfService": { - "message": "服务条款" - }, - "testFaucet": { - "message": "测试水龙头" - }, - "testNetworks": { - "message": "测试网络" - }, - "theme": { - "message": "主题" - }, - "themeDescription": { - "message": "选择您喜欢的MetaMask主题。" - }, - "thisWillCreate": { - "message": "这将创建新的钱包和账户助记词" - }, - "time": { - "message": "时间" - }, - "tips": { - "message": "小贴士" - }, - "to": { - "message": "至" - }, - "toAddress": { - "message": "至:$1", - "description": "$1 is the address to include in the To label. It is typically shortened first using shortenAddress" - }, - "toggleTestNetworks": { - "message": "$1 测试网络", - "description": "$1 is a clickable link with text defined by the 'showHide' key. The link will open to the advanced settings where users can enable the display of test networks in the network dropdown." - }, - "token": { - "message": "代币" - }, - "tokenAddress": { - "message": "代币地址" - }, - "tokenAlreadyAdded": { - "message": "代币已添加。" - }, - "tokenContractAddress": { - "message": "代币合约地址" - }, - "tokenDecimalFetchFailed": { - "message": "需要代币小数。" - }, - "tokenDecimalTitle": { - "message": "代币小数:" - }, - "tokenDetails": { - "message": "代币详情" - }, - "tokenDetection": { - "message": "代币检测" - }, - "tokenDetectionAlertMessage": { - "message": "代币检测目前适用于 $1. $2" - }, - "tokenDetectionToggleDescription": { - "message": "ConsenSys的代币API使用来自各种第三方的代币列表,汇总成一个代币列表。关闭它将会停止检测添加到您钱包中的新代币,但会保留搜索代币以导入的选项。" - }, - "tokenId": { - "message": "代币 ID" - }, - "tokenList": { - "message": "代币列表:" - }, - "tokenSymbol": { - "message": "代币符号" - }, - "tokensFoundTitle": { - "message": "发现$1新代币", - "description": "$1 is the number of new tokens detected" - }, - "tooltipApproveButton": { - "message": "我理解" - }, - "total": { - "message": "共计" - }, - "transaction": { - "message": "交易" - }, - "transactionCancelAttempted": { - "message": "已在 $2 尝试取消交易 ,燃料费用预计为 $1" - }, - "transactionCancelSuccess": { - "message": "交易已在 $2 成功取消。" - }, - "transactionConfirmed": { - "message": "交易已在 $2 确认。" - }, - "transactionCreated": { - "message": "在 $2 创建了值为 $1 的交易。" - }, - "transactionData": { - "message": "交易数据" - }, - "transactionDecodingAccreditationDecoded": { - "message": "由 Truffle 解码" - }, - "transactionDecodingAccreditationVerified": { - "message": "已在 $1 验证的合约" - }, - "transactionDecodingUnsupportedNetworkError": { - "message": "链 ID $1 不可使用交易解码" - }, - "transactionDetailDappGasMoreInfo": { - "message": "建议的网站" - }, - "transactionDetailDappGasTooltip": { - "message": "编辑以使用 MetaMask 建议的基于最新区块的燃料费用。" - }, - "transactionDetailGasHeading": { - "message": "估算的燃料费" - }, - "transactionDetailGasInfoV2": { - "message": "估算" - }, - "transactionDetailGasTooltipConversion": { - "message": "了解更多关于燃料费的信息" - }, - "transactionDetailGasTooltipExplanation": { - "message": "燃料费由网络设定,并根据网络流量和交易的复杂性而波动。" - }, - "transactionDetailGasTooltipIntro": { - "message": "燃料费用支付给在 $1 网络上处理交易的加密矿工。MetaMask 不会从燃料费用中获利。" - }, - "transactionDetailGasTotalSubtitle": { - "message": "金额 + 燃料费" - }, - "transactionDetailLayer2GasHeading": { - "message": "2层燃料费用" - }, - "transactionDetailMultiLayerTotalSubtitle": { - "message": "金额 + 费用" - }, - "transactionDropped": { - "message": "交易已在 $2 放弃。" - }, - "transactionError": { - "message": "交易出错。合约代码中抛出异常。" - }, - "transactionErrorNoContract": { - "message": "试图在非合约地址上调用函数。" - }, - "transactionErrored": { - "message": "交易出现错误。" - }, - "transactionFee": { - "message": "交易费" - }, - "transactionHistoryBaseFee": { - "message": "基本费用 (GWEI)" - }, - "transactionHistoryL1GasLabel": { - "message": "1层燃料费总计" - }, - "transactionHistoryL2GasLimitLabel": { - "message": "2层燃料上限" - }, - "transactionHistoryL2GasPriceLabel": { - "message": "2层燃料价格" - }, - "transactionHistoryMaxFeePerGas": { - "message": "每单位燃料的最大费用" - }, - "transactionHistoryPriorityFee": { - "message": "优先费用 (GWEI)" - }, - "transactionHistoryTotalGasFee": { - "message": "燃料费总额" - }, - "transactionResubmitted": { - "message": "已在 $2 重新提交交易,燃料费预计升至 $1" - }, - "transactionSubmitted": { - "message": "已在 $2 提交交易,燃料费预计为 $1。" - }, - "transactionUpdated": { - "message": "交易于 $2 更新。" - }, - "transfer": { - "message": "转移" - }, - "transferBetweenAccounts": { - "message": "在我的账户之间转移" - }, - "transferFrom": { - "message": "转移自" - }, - "troubleConnectingToWallet": { - "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" - }, - "trustSiteApprovePermission": { - "message": "通过授予权限,您允许以下 $1 访问您的资金" - }, - "tryAgain": { - "message": "重试" - }, - "turnOnTokenDetection": { - "message": "开启增强型代币检测" - }, - "twelveHrTitle": { - "message": "12小时:" - }, - "txInsightsNotSupported": { - "message": "此合约目前不支持交易见解。" - }, - "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." - }, - "unapproved": { - "message": "未批准" - }, - "units": { - "message": "单位" - }, - "unknown": { - "message": "未知" - }, - "unknownCameraError": { - "message": "尝试访问您的相机时出错。请重试……" - }, - "unknownCameraErrorTitle": { - "message": "糟糕!出问题了...." - }, - "unknownCollection": { - "message": "未命名的收藏" - }, - "unknownNetwork": { - "message": "未知的私有网络" - }, - "unknownQrCode": { - "message": "错误:我们无法识别该二维码" - }, - "unlimited": { - "message": "无限制" - }, - "unlock": { - "message": "登录" - }, - "unlockMessage": { - "message": "即将进入去中心化网络" - }, - "unrecognizedChain": { - "message": "这个自定义网络无法识别。我们建议您在继续操作之前 $1", - "description": "$1 is a clickable link with text defined by the 'unrecognizedChanLinkText' key. The link will open to instructions for users to validate custom network details." - }, - "unsendableAsset": { - "message": "当前不支持发送可收藏的 (ERC-721) 代币", - "description": "This is an error message we show the user if they attempt to send a collectible asset type, for which currently don't support sending" - }, - "unverifiedContractAddressMessage": { - "message": "我们无法验证此合约。请确保此地址是可靠的。" - }, - "upArrow": { - "message": "向上箭头" - }, - "updatedWithDate": { - "message": "已于 $1 更新" - }, - "urlErrorMsg": { - "message": "URL 需要相应的 HTTP/HTTPS 前缀。" - }, - "urlExistsErrorMsg": { - "message": "此 URL 目前已被 $1 网络使用。" - }, - "useCollectibleDetection": { - "message": "自动检测 NFT" - }, - "useCollectibleDetectionDescription": { - "message": "显示 NFT 媒体和数据可能会将您的 IP 地址暴露给集中式服务器。第三方 API(例如 OpenSea)用于在您的钱包中检测 NFT。这会通过这些服务暴露您的账户地址。如果您不希望该应用程序从这些服务中提取数据,请禁用此功能。" - }, - "usePhishingDetection": { - "message": "使用网络钓鱼检测" - }, - "usePhishingDetectionDescription": { - "message": "显示针对 Ethereum 用户的网络钓鱼域名警告" - }, - "useTokenDetectionPrivacyDesc": { - "message": "要自动显示发送到您账户的代币,需要与第三方服务器通信以获取代币的图像。这些服务器将拥有您的IP地址的访问权限。" - }, - "usedByClients": { - "message": "被各种不同的客户使用" - }, - "userName": { - "message": "用户名" - }, - "verifyThisTokenDecimalOn": { - "message": "代币小数可以在 $1 上找到", - "description": "Points the user to etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"etherscan\"" - }, - "verifyThisTokenOn": { - "message": "在 $1 上验证此代币", - "description": "Points the user to etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"etherscan\"" - }, - "verifyThisUnconfirmedTokenOn": { - "message": "在 $1 上验证此代币,并确保这是您想要交易的代币。", - "description": "Points the user to etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"etherscan\"" - }, - "viewAccount": { - "message": "查看账户" - }, - "viewAllDetails": { - "message": "查看所有详情" - }, - "viewContact": { - "message": "查看联系人" - }, - "viewFullTransactionDetails": { - "message": "查看全部交易详情" - }, - "viewMore": { - "message": "查看更多" - }, - "viewOnBlockExplorer": { - "message": "在区块浏览器上查看" - }, - "viewOnCustomBlockExplorer": { - "message": "在 $2 上查看 $1", - "description": "$1 is the action type. e.g (Account, Transaction, Swap) and $2 is the Custom Block Exporer URL" - }, - "viewOnEtherscan": { - "message": "在 Etherscan 上查看 $1", - "description": "$1 is the action type. e.g (Account, Transaction, Swap)" - }, - "viewOnOpensea": { - "message": "在 Opensea 上查看" - }, - "viewinExplorer": { - "message": "在 Explorer 中查看 $1", - "description": "$1 is the action type. e.g (Account, Transaction, Swap)" - }, - "visitWebSite": { - "message": "访问我们的网站" - }, - "walletConnectionGuide": { - "message": "我们的硬件钱包连接指南" - }, - "walletCreationSuccessDetail": { - "message": "您已经成功地保护了您的钱包。请确保您的账户助记词安全和秘密——这是您的责任!" - }, - "walletCreationSuccessReminder1": { - "message": "MetaMask 无法恢复您的账户助记词。" - }, - "walletCreationSuccessReminder2": { - "message": "MetaMask 绝对不会索要您的账户助记词。" - }, - "walletCreationSuccessReminder3": { - "message": "对任何人 $1,否则您的资金有被盗风险", - "description": "$1 is separated as walletCreationSuccessReminder3BoldSection so that we can bold it" - }, - "walletCreationSuccessReminder3BoldSection": { - "message": "切勿分享您的账户助记词", - "description": "This string is localized separately from walletCreationSuccessReminder3 so that we can bold it" - }, - "walletCreationSuccessTitle": { - "message": "钱包创建成功" - }, - "wantToAddThisNetwork": { - "message": "想要添加此网络吗?" - }, - "warning": { - "message": "警告" - }, - "weak": { - "message": "弱" - }, - "web3ShimUsageNotification": { - "message": "我们发现当前的网站尝试使用已经删除的 window.web3 API。如果这个网站出现故障,请点击 $1 以获取更多信息。", - "description": "$1 is a clickable link." - }, - "webhid": { - "message": "WebHID", - "description": "Refers to a interface for connecting external devices to the browser. Used for connecting ledger to the browser. Read more here https://developer.mozilla.org/en-US/docs/Web/API/WebHID_API" - }, - "welcome": { - "message": "欢迎使用 MetaMask" - }, - "welcomeBack": { - "message": "欢迎回来!" - }, - "welcomeExploreDescription": { - "message": "存储、发送和使用加密货币和资产。" - }, - "welcomeExploreTitle": { - "message": "探索去中心化应用" - }, - "welcomeLoginDescription": { - "message": "使用您的 MetaMask 登录去中心化应用 - 无需注册。" - }, - "welcomeLoginTitle": { - "message": "迎接您的钱包" - }, - "welcomeToMetaMask": { - "message": "让我们开始吧" - }, - "welcomeToMetaMaskIntro": { - "message": "MetaMask 深受数百万人信任,是一款可以让所有人进入 web3 世界的安全钱包。" - }, - "whatsNew": { - "message": "最新动态", - "description": "This is the title of a popup that gives users notifications about new features and updates to MetaMask." - }, - "whatsThis": { - "message": "这是什么?" - }, - "writePhrase": { - "message": "请将该账户助记词记录在纸上,并保存在安全的地方。如果希望提升安全性,请将它记录在多张纸上,并分别保存在2 - 3个不同的地方。" - }, - "xOfY": { - "message": "$1 / $2", - "description": "$1 and $2 are intended to be two numbers, where $2 is a total, and $1 is a count towards that total" - }, - "xOfYPending": { - "message": "$1 / $2 待处理", - "description": "$1 and $2 are intended to be two numbers, where $2 is a total number of pending confirmations, and $1 is a count towards that total" - }, - "yes": { - "message": "是" - }, - "yesLetsTry": { - "message": "是的,我们试一下" - }, - "youHaveAddedAll": { - "message": "您已经添加了所有热门网络。您可以探索更多网络$1,或者您可以$2", - "description": "$1 is a link with the text 'here' and $2 is a button with the text 'add more networks manually'" - }, - "youNeedToAllowCameraAccess": { - "message": "需要开启相机访问权限,才能使用该功能。" - }, - "youSign": { - "message": "您正在签名" - }, - "yourPrivateSeedPhrase": { - "message": "您的个人账户助记词" - }, - "zeroGasPriceOnSpeedUpError": { - "message": "加速时零燃料价格" - } -} diff --git a/app/_locales/zh_CN/messages.json b/app/_locales/zh_CN/messages.json index 89ec54068d9d..d517d3b2e645 100644 --- a/app/_locales/zh_CN/messages.json +++ b/app/_locales/zh_CN/messages.json @@ -878,9 +878,6 @@ "data": { "message": "数据" }, - "dataBackupFoundInfo": { - "message": "您的部分账户数据已在之前安装 MetaMask 时备份。其中可能包括您的设置、联系人和代币。您现在想恢复这些数据吗?" - }, "dataBackupSeemsCorrupt": { "message": "无法还原数据。文件似乎已损坏。" }, @@ -2865,10 +2862,6 @@ "restoreUserDataDescription": { "message": "您可以使用以前备份的JSON文件来恢复包含首选项和账户地址的用户设置。" }, - "restoreWalletPreferences": { - "message": "已找到 $1 的数据备份。您想恢复您的钱包偏好设置吗?", - "description": "$1 is the date at which the data was backed up" - }, "retryTransaction": { "message": "重试交易" }, @@ -3841,15 +3834,6 @@ "syncWithMobileTitle": { "message": "与移动设备同步" }, - "syncWithThreeBox": { - "message": "与 3Box 同步数据(实验功能)" - }, - "syncWithThreeBoxDescription": { - "message": "开启以使用 3Box 备份您的设置。此功能目前是实验功能,使用时风险自负。" - }, - "syncWithThreeBoxDisabled": { - "message": "由于初始同步过程中出现错误,3Box 已被禁用" - }, "tenPercentIncreased": { "message": "增加10%" }, diff --git a/app/scripts/controllers/metametrics.js b/app/scripts/controllers/metametrics.js index 77f1ef39c915..212b9a908a27 100644 --- a/app/scripts/controllers/metametrics.js +++ b/app/scripts/controllers/metametrics.js @@ -714,7 +714,7 @@ export default class MetaMetricsController { ).length, [TRAITS.NUMBER_OF_TOKENS]: this._getNumberOfTokens(metamaskState), [TRAITS.OPENSEA_API_ENABLED]: metamaskState.openSeaEnabled, - [TRAITS.THREE_BOX_ENABLED]: metamaskState.threeBoxSyncingAllowed, + [TRAITS.THREE_BOX_ENABLED]: false, // deprecated, hard-coded as false [TRAITS.THEME]: metamaskState.theme || 'default', [TRAITS.TOKEN_DETECTION_ENABLED]: metamaskState.useTokenDetection, }; diff --git a/app/scripts/controllers/metametrics.test.js b/app/scripts/controllers/metametrics.test.js index 77fa34e5402e..1925da7a9141 100644 --- a/app/scripts/controllers/metametrics.test.js +++ b/app/scripts/controllers/metametrics.test.js @@ -675,7 +675,6 @@ describe('MetaMetricsController', function () { identities: [{}, {}], ledgerTransportType: 'web-hid', openSeaEnabled: true, - threeBoxSyncingAllowed: false, useCollectibleDetection: false, theme: 'default', useTokenDetection: true, @@ -714,7 +713,6 @@ describe('MetaMetricsController', function () { ledgerTransportType: 'web-hid', openSeaEnabled: true, identities: [{}, {}], - threeBoxSyncingAllowed: false, useCollectibleDetection: false, theme: 'default', useTokenDetection: true, @@ -735,7 +733,6 @@ describe('MetaMetricsController', function () { ledgerTransportType: 'web-hid', openSeaEnabled: false, identities: [{}, {}, {}], - threeBoxSyncingAllowed: false, useCollectibleDetection: false, theme: 'default', useTokenDetection: true, @@ -764,7 +761,6 @@ describe('MetaMetricsController', function () { ledgerTransportType: 'web-hid', openSeaEnabled: true, identities: [{}, {}], - threeBoxSyncingAllowed: false, useCollectibleDetection: true, theme: 'default', useTokenDetection: true, @@ -783,7 +779,6 @@ describe('MetaMetricsController', function () { ledgerTransportType: 'web-hid', openSeaEnabled: true, identities: [{}, {}], - threeBoxSyncingAllowed: false, useCollectibleDetection: true, theme: 'default', useTokenDetection: true, diff --git a/app/scripts/controllers/threebox.js b/app/scripts/controllers/threebox.js deleted file mode 100644 index 6af4b9711196..000000000000 --- a/app/scripts/controllers/threebox.js +++ /dev/null @@ -1,305 +0,0 @@ -import { ObservableStore } from '@metamask/obs-store'; - -/* eslint-disable import/first,import/order */ -const Box = process.env.IN_TEST - ? require('../../../development/mock-3box') - : require('3box'); -/* eslint-enable import/order */ - -import log from 'loglevel'; -import { JsonRpcEngine } from 'json-rpc-engine'; -import { providerFromEngine } from 'eth-json-rpc-middleware'; -import Migrator from '../lib/migrator'; -import migrations from '../migrations'; -import createOriginMiddleware from '../lib/createOriginMiddleware'; -import createMetamaskMiddleware from './network/createMetamaskMiddleware'; -/* eslint-enable import/first */ - -const SYNC_TIMEOUT = 60 * 1000; // one minute - -export default class ThreeBoxController { - constructor(opts = {}) { - const { - preferencesController, - keyringController, - addressBookController, - version, - getKeyringControllerState, - trackMetaMetricsEvent, - } = opts; - - this.preferencesController = preferencesController; - this.addressBookController = addressBookController; - this.keyringController = keyringController; - this.provider = this._createProvider({ - version, - getAccounts: async ({ origin }) => { - if (origin !== '3Box') { - return []; - } - const { isUnlocked } = getKeyringControllerState(); - - const accounts = await this.keyringController.getAccounts(); - - if (isUnlocked && accounts[0]) { - const appKeyAddress = await this.keyringController.getAppKeyAddress( - accounts[0], - 'wallet://3box.metamask.io', - ); - return [appKeyAddress]; - } - return []; - }, - processPersonalMessage: async (msgParams) => { - const accounts = await this.keyringController.getAccounts(); - return keyringController.signPersonalMessage( - { ...msgParams, from: accounts[0] }, - { - withAppKeyOrigin: 'wallet://3box.metamask.io', - }, - ); - }, - }); - this._trackMetaMetricsEvent = trackMetaMetricsEvent; - - const initState = { - threeBoxSyncingAllowed: false, - showRestorePrompt: true, - threeBoxLastUpdated: 0, - ...opts.initState, - threeBoxAddress: null, - threeBoxSynced: false, - threeBoxDisabled: false, - }; - this.store = new ObservableStore(initState); - this.registeringUpdates = false; - this.lastMigration = migrations - .sort((a, b) => a.version - b.version) - .slice(-1)[0]; - - if (initState.threeBoxSyncingAllowed) { - this.init(); - } - } - - async init() { - const accounts = await this.keyringController.getAccounts(); - this.address = accounts[0]; - - this._trackMetaMetricsEvent({ - event: '3Box Initiated', - category: '3Box', - }); - - if (this.address && !(this.box && this.store.getState().threeBoxSynced)) { - await this.new3Box(); - } - } - - async _update3Box() { - try { - const { threeBoxSyncingAllowed, threeBoxSynced } = this.store.getState(); - if (threeBoxSyncingAllowed && threeBoxSynced) { - const newState = { - preferences: this.preferencesController.store.getState(), - addressBook: this.addressBookController.state, - lastUpdated: Date.now(), - lastMigration: this.lastMigration, - }; - - await this.space.private.set( - 'metamaskBackup', - JSON.stringify(newState), - ); - await this.setShowRestorePromptToFalse(); - } - } catch (error) { - console.error(error); - } - } - - _createProvider(providerOpts) { - const metamaskMiddleware = createMetamaskMiddleware(providerOpts); - const engine = new JsonRpcEngine(); - engine.push(createOriginMiddleware({ origin: '3Box' })); - engine.push(metamaskMiddleware); - const provider = providerFromEngine(engine); - return provider; - } - - _waitForOnSyncDone() { - return new Promise((resolve) => { - this.box.onSyncDone(() => { - log.debug('3Box box sync done'); - return resolve(); - }); - }); - } - - async new3Box() { - const accounts = await this.keyringController.getAccounts(); - this.address = await this.keyringController.getAppKeyAddress( - accounts[0], - 'wallet://3box.metamask.io', - ); - let backupExists; - try { - const threeBoxConfig = await Box.getConfig(this.address); - backupExists = threeBoxConfig.spaces && threeBoxConfig.spaces.metamask; - } catch (e) { - if (e.message.match(/^Error: Invalid response \(404\)/u)) { - this._trackMetaMetricsEvent({ - event: '3Box Backup does not exist', - category: '3Box', - }); - - backupExists = false; - } else { - this._trackMetaMetricsEvent({ - event: '3Box Config Error', - category: '3Box', - }); - - throw e; - } - } - if (this.getThreeBoxSyncingState() || backupExists) { - this.store.updateState({ threeBoxSynced: false }); - - let timedOut = false; - const syncTimeout = setTimeout(() => { - log.error(`3Box sync timed out after ${SYNC_TIMEOUT} ms`); - timedOut = true; - this.store.updateState({ - threeBoxDisabled: true, - threeBoxSyncingAllowed: false, - }); - }, SYNC_TIMEOUT); - try { - this.box = await Box.openBox(this.address, this.provider); - await this._waitForOnSyncDone(); - this.space = await this.box.openSpace('metamask', { - onSyncDone: async () => { - const stateUpdate = { - threeBoxSynced: true, - threeBoxAddress: this.address, - }; - if (timedOut) { - log.info(`3Box sync completed after timeout; no longer disabled`); - stateUpdate.threeBoxDisabled = false; - } - - clearTimeout(syncTimeout); - this.store.updateState(stateUpdate); - - log.debug('3Box space sync done'); - - this._trackMetaMetricsEvent({ - event: '3Box Synced', - category: '3Box', - }); - }, - }); - } catch (e) { - this._trackMetaMetricsEvent({ - event: '3Box Initiation Error', - category: '3Box', - }); - - console.error(e); - throw e; - } - } - } - - async getLastUpdated() { - const res = await this.space.private.get('metamaskBackup'); - const parsedRes = JSON.parse(res || '{}'); - return parsedRes.lastUpdated; - } - - async migrateBackedUpState(backedUpState) { - const migrator = new Migrator({ migrations }); - const { preferences, addressBook } = JSON.parse(backedUpState); - const formattedStateBackup = { - PreferencesController: preferences, - AddressBookController: addressBook, - }; - const initialMigrationState = - migrator.generateInitialState(formattedStateBackup); - const migratedState = await migrator.migrateData(initialMigrationState); - return { - preferences: migratedState.data.PreferencesController, - addressBook: migratedState.data.AddressBookController, - }; - } - - async restoreFromThreeBox() { - const backedUpState = await this.space.private.get('metamaskBackup'); - const { preferences, addressBook } = await this.migrateBackedUpState( - backedUpState, - ); - this.store.updateState({ threeBoxLastUpdated: backedUpState.lastUpdated }); - preferences && this.preferencesController.store.updateState(preferences); - addressBook && this.addressBookController.update(addressBook, true); - this.setShowRestorePromptToFalse(); - - this._trackMetaMetricsEvent({ - event: '3Box Restored Data', - category: '3Box', - }); - } - - turnThreeBoxSyncingOn() { - this._trackMetaMetricsEvent({ - event: '3Box Sync Turned On', - category: '3Box', - }); - - this._registerUpdates(); - } - - turnThreeBoxSyncingOff() { - this._trackMetaMetricsEvent({ - event: '3Box Sync Turned Off', - category: '3Box', - }); - - this.box.logout(); - } - - setShowRestorePromptToFalse() { - this.store.updateState({ showRestorePrompt: false }); - } - - setThreeBoxSyncingPermission(newThreeboxSyncingState) { - if (this.store.getState().threeBoxDisabled) { - return; - } - this.store.updateState({ - threeBoxSyncingAllowed: newThreeboxSyncingState, - }); - - if (newThreeboxSyncingState && this.box) { - this.turnThreeBoxSyncingOn(); - } - - if (!newThreeboxSyncingState && this.box) { - this.turnThreeBoxSyncingOff(); - } - } - - getThreeBoxSyncingState() { - return this.store.getState().threeBoxSyncingAllowed; - } - - _registerUpdates() { - if (!this.registeringUpdates) { - const updatePreferences = this._update3Box.bind(this); - this.preferencesController.store.subscribe(updatePreferences); - const updateAddressBook = this._update3Box.bind(this); - this.addressBookController.subscribe(updateAddressBook); - this.registeringUpdates = true; - } - } -} diff --git a/app/scripts/lib/createRPCMethodTrackingMiddleware.js b/app/scripts/lib/createRPCMethodTrackingMiddleware.js index 3362e29ad3aa..8829bf5e2dd0 100644 --- a/app/scripts/lib/createRPCMethodTrackingMiddleware.js +++ b/app/scripts/lib/createRPCMethodTrackingMiddleware.js @@ -104,7 +104,7 @@ const rateLimitTimeouts = {}; export default function createRPCMethodTrackingMiddleware({ trackEvent, getMetricsState, - rateLimitSeconds = 60, + rateLimitSeconds = 60 * 5, }) { return function rpcMethodTrackingMiddleware( /** @type {any} */ req, diff --git a/app/scripts/lib/get-first-preferred-lang-code.js b/app/scripts/lib/get-first-preferred-lang-code.js index a47cdc2ac951..040697136928 100644 --- a/app/scripts/lib/get-first-preferred-lang-code.js +++ b/app/scripts/lib/get-first-preferred-lang-code.js @@ -1,8 +1,10 @@ import browser from 'webextension-polyfill'; import allLocales from '../../_locales/index.json'; +// ensure that we default users with browser language code 'zh' to the supported 'zh_CN' language code +const existingLocaleCodes = { zh: 'zh_CN' }; + // mapping some browsers return hyphen instead underscore in locale codes (e.g. zh_TW -> zh-tw) -const existingLocaleCodes = {}; allLocales.forEach((locale) => { if (locale && locale.code) { existingLocaleCodes[locale.code.toLowerCase().replace('_', '-')] = diff --git a/app/scripts/lib/setupSentry.js b/app/scripts/lib/setupSentry.js index 01b736c63d37..73bad861c84f 100644 --- a/app/scripts/lib/setupSentry.js +++ b/app/scripts/lib/setupSentry.js @@ -53,11 +53,6 @@ export const SENTRY_STATE = { type: true, }, seedPhraseBackedUp: true, - showRestorePrompt: true, - threeBoxDisabled: true, - threeBoxLastUpdated: true, - threeBoxSynced: true, - threeBoxSyncingAllowed: true, unapprovedDecryptMsgCount: true, unapprovedEncryptionPublicKeyMsgCount: true, unapprovedMsgCount: true, diff --git a/app/scripts/metamask-controller.actions.test.js b/app/scripts/metamask-controller.actions.test.js index c0e438c666d3..b3eff23d7c6d 100644 --- a/app/scripts/metamask-controller.actions.test.js +++ b/app/scripts/metamask-controller.actions.test.js @@ -1,6 +1,11 @@ import { strict as assert } from 'assert'; import sinon from 'sinon'; import proxyquire from 'proxyquire'; + +import { + ApprovalRequestNotFoundError, + PermissionsRequestNotFoundError, +} from '@metamask/controllers'; import { ORIGIN_METAMASK } from '../../shared/constants/app'; const Ganache = require('../../test/e2e/ganache'); @@ -238,4 +243,137 @@ describe('MetaMaskController', function () { assert.deepEqual(transaction1, transaction2); }); }); + + describe('#removePermissionsFor', function () { + it('should not propagate PermissionsRequestNotFoundError', function () { + const error = new PermissionsRequestNotFoundError('123'); + metamaskController.permissionController = { + revokePermissions: () => { + throw error; + }, + }; + // Line below will not throw error, in case it throws this test case will fail. + metamaskController.removePermissionsFor({ subject: 'test_subject' }); + }); + + it('should propagate Error other than PermissionsRequestNotFoundError', function () { + const error = new Error(); + metamaskController.permissionController = { + revokePermissions: () => { + throw error; + }, + }; + assert.throws(() => { + metamaskController.removePermissionsFor({ subject: 'test_subject' }); + }, error); + }); + }); + + describe('#rejectPermissionsRequest', function () { + it('should not propagate PermissionsRequestNotFoundError', function () { + const error = new PermissionsRequestNotFoundError('123'); + metamaskController.permissionController = { + rejectPermissionsRequest: () => { + throw error; + }, + }; + // Line below will not throw error, in case it throws this test case will fail. + metamaskController.rejectPermissionsRequest('DUMMY_ID'); + }); + + it('should propagate Error other than PermissionsRequestNotFoundError', function () { + const error = new Error(); + metamaskController.permissionController = { + rejectPermissionsRequest: () => { + throw error; + }, + }; + assert.throws(() => { + metamaskController.rejectPermissionsRequest('DUMMY_ID'); + }, error); + }); + }); + + describe('#acceptPermissionsRequest', function () { + it('should not propagate PermissionsRequestNotFoundError', function () { + const error = new PermissionsRequestNotFoundError('123'); + metamaskController.permissionController = { + acceptPermissionsRequest: () => { + throw error; + }, + }; + // Line below will not throw error, in case it throws this test case will fail. + metamaskController.acceptPermissionsRequest('DUMMY_ID'); + }); + + it('should propagate Error other than PermissionsRequestNotFoundError', function () { + const error = new Error(); + metamaskController.permissionController = { + acceptPermissionsRequest: () => { + throw error; + }, + }; + assert.throws(() => { + metamaskController.acceptPermissionsRequest('DUMMY_ID'); + }, error); + }); + }); + + describe('#resolvePendingApproval', function () { + it('should not propagate ApprovalRequestNotFoundError', function () { + const error = new ApprovalRequestNotFoundError('123'); + metamaskController.approvalController = { + accept: () => { + throw error; + }, + }; + // Line below will not throw error, in case it throws this test case will fail. + metamaskController.resolvePendingApproval('DUMMY_ID', 'DUMMY_VALUE'); + }); + + it('should propagate Error other than ApprovalRequestNotFoundError', function () { + const error = new Error(); + metamaskController.approvalController = { + accept: () => { + throw error; + }, + }; + assert.throws(() => { + metamaskController.resolvePendingApproval('DUMMY_ID', 'DUMMY_VALUE'); + }, error); + }); + }); + + describe('#rejectPendingApproval', function () { + it('should not propagate ApprovalRequestNotFoundError', function () { + const error = new ApprovalRequestNotFoundError('123'); + metamaskController.approvalController = { + reject: () => { + throw error; + }, + }; + // Line below will not throw error, in case it throws this test case will fail. + metamaskController.rejectPendingApproval('DUMMY_ID', { + code: 1, + message: 'DUMMY_MESSAGE', + data: 'DUMMY_DATA', + }); + }); + + it('should propagate Error other than ApprovalRequestNotFoundError', function () { + const error = new Error(); + metamaskController.approvalController = { + reject: () => { + throw error; + }, + }; + assert.throws(() => { + metamaskController.rejectPendingApproval('DUMMY_ID', { + code: 1, + message: 'DUMMY_MESSAGE', + data: 'DUMMY_DATA', + }); + }, error); + }); + }); }); diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 67380cb6c856..546246d73d5b 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -39,6 +39,8 @@ import { CollectibleDetectionController, PermissionController, SubjectMetadataController, + PermissionsRequestNotFoundError, + ApprovalRequestNotFoundError, ///: BEGIN:ONLY_INCLUDE_IN(flask) RateLimitController, NotificationController, @@ -123,7 +125,6 @@ import AppStateController from './controllers/app-state'; import CachedBalancesController from './controllers/cached-balances'; import AlertController from './controllers/alert'; import OnboardingController from './controllers/onboarding'; -import ThreeBoxController from './controllers/threebox'; import BackupController from './controllers/backup'; import IncomingTransactionsController from './controllers/incoming-transactions'; import MessageManager, { normalizeMsgData } from './lib/message-manager'; @@ -772,20 +773,6 @@ export default class MetamaskController extends EventEmitter { preferencesStore: this.preferencesController.store, }); - this.threeBoxController = new ThreeBoxController({ - preferencesController: this.preferencesController, - addressBookController: this.addressBookController, - keyringController: this.keyringController, - initState: initState.ThreeBoxController, - getKeyringControllerState: this.keyringController.memStore.getState.bind( - this.keyringController.memStore, - ), - version, - trackMetaMetricsEvent: this.metaMetricsController.trackEvent.bind( - this.metaMetricsController, - ), - }); - this.backupController = new BackupController({ preferencesController: this.preferencesController, addressBookController: this.addressBookController, @@ -1043,7 +1030,6 @@ export default class MetamaskController extends EventEmitter { PermissionController: this.permissionController, PermissionLogController: this.permissionLogController.store, SubjectMetadataController: this.subjectMetadataController, - ThreeBoxController: this.threeBoxController.store, BackupController: this.backupController, AnnouncementController: this.announcementController, GasFeeController: this.gasFeeController, @@ -1082,7 +1068,6 @@ export default class MetamaskController extends EventEmitter { PermissionController: this.permissionController, PermissionLogController: this.permissionLogController.store, SubjectMetadataController: this.subjectMetadataController, - ThreeBoxController: this.threeBoxController.store, BackupController: this.backupController, SwapsController: this.swapsController.store, EnsController: this.ensController.store, @@ -1498,7 +1483,6 @@ export default class MetamaskController extends EventEmitter { const { addressBookController, alertController, - approvalController, appStateController, collectiblesController, collectibleDetectionController, @@ -1515,7 +1499,6 @@ export default class MetamaskController extends EventEmitter { preferencesController, qrHardwareKeyring, swapsController, - threeBoxController, tokensController, smartTransactionsController, txController, @@ -1804,32 +1787,10 @@ export default class MetamaskController extends EventEmitter { setWeb3ShimUsageAlertDismissed: alertController.setWeb3ShimUsageAlertDismissed.bind(alertController), - // 3Box - setThreeBoxSyncingPermission: - threeBoxController.setThreeBoxSyncingPermission.bind( - threeBoxController, - ), - restoreFromThreeBox: - threeBoxController.restoreFromThreeBox.bind(threeBoxController), - setShowRestorePromptToFalse: - threeBoxController.setShowRestorePromptToFalse.bind(threeBoxController), - getThreeBoxLastUpdated: - threeBoxController.getLastUpdated.bind(threeBoxController), - turnThreeBoxSyncingOn: - threeBoxController.turnThreeBoxSyncingOn.bind(threeBoxController), - initializeThreeBox: this.initializeThreeBox.bind(this), - // permissions - removePermissionsFor: - permissionController.revokePermissions.bind(permissionController), - approvePermissionsRequest: - permissionController.acceptPermissionsRequest.bind( - permissionController, - ), - rejectPermissionsRequest: - permissionController.rejectPermissionsRequest.bind( - permissionController, - ), + removePermissionsFor: this.removePermissionsFor, + approvePermissionsRequest: this.acceptPermissionsRequest, + rejectPermissionsRequest: this.rejectPermissionsRequest, ...getPermissionBackgroundApiMethods(permissionController), ///: BEGIN:ONLY_INCLUDE_IN(flask) @@ -1947,14 +1908,8 @@ export default class MetamaskController extends EventEmitter { ), // approval controller - resolvePendingApproval: - approvalController.accept.bind(approvalController), - rejectPendingApproval: async (id, error) => { - approvalController.reject( - id, - new EthereumRpcError(error.code, error.message, error.data), - ); - }, + resolvePendingApproval: this.resolvePendingApproval, + rejectPendingApproval: this.rejectPendingApproval, // Notifications updateViewedNotifications: announcementController.updateViewed.bind( @@ -2355,20 +2310,6 @@ export default class MetamaskController extends EventEmitter { log.error('Error while unlocking extension.', error); } - try { - const threeBoxSyncingAllowed = - this.threeBoxController.getThreeBoxSyncingState(); - if (threeBoxSyncingAllowed && !this.threeBoxController.box) { - // 'await' intentionally omitted to avoid waiting for initialization - this.threeBoxController.init(); - this.threeBoxController.turnThreeBoxSyncingOn(); - } else if (threeBoxSyncingAllowed && this.threeBoxController.box) { - this.threeBoxController.turnThreeBoxSyncingOn(); - } - } catch (error) { - log.error('Error while unlocking extension.', error); - } - // This must be set as soon as possible to communicate to the // keyring's iframe and have the setting initialized properly // Optimistically called to not block MetaMask login due to @@ -4244,10 +4185,6 @@ export default class MetamaskController extends EventEmitter { return null; } - async initializeThreeBox() { - await this.threeBoxController.init(); - } - /** * Sets the Ledger Live preference to use for Ledger hardware wallet support * @@ -4361,4 +4298,57 @@ export default class MetamaskController extends EventEmitter { return this.keyringController.setLocked(); } + + removePermissionsFor = (subjects) => { + try { + this.permissionController.revokePermissions(subjects); + } catch (exp) { + if (!(exp instanceof PermissionsRequestNotFoundError)) { + throw exp; + } + } + }; + + rejectPermissionsRequest = (requestId) => { + try { + this.permissionController.rejectPermissionsRequest(requestId); + } catch (exp) { + if (!(exp instanceof PermissionsRequestNotFoundError)) { + throw exp; + } + } + }; + + acceptPermissionsRequest = (request) => { + try { + this.permissionController.acceptPermissionsRequest(request); + } catch (exp) { + if (!(exp instanceof PermissionsRequestNotFoundError)) { + throw exp; + } + } + }; + + resolvePendingApproval = (id, value) => { + try { + this.approvalController.accept(id, value); + } catch (exp) { + if (!(exp instanceof ApprovalRequestNotFoundError)) { + throw exp; + } + } + }; + + rejectPendingApproval = (id, error) => { + try { + this.approvalController.reject( + id, + new EthereumRpcError(error.code, error.message, error.data), + ); + } catch (exp) { + if (!(exp instanceof ApprovalRequestNotFoundError)) { + throw exp; + } + } + }; } diff --git a/app/scripts/metamask-controller.test.js b/app/scripts/metamask-controller.test.js index 1baa0a39b075..313d345ea3dc 100644 --- a/app/scripts/metamask-controller.test.js +++ b/app/scripts/metamask-controller.test.js @@ -49,36 +49,6 @@ const firstTimeState = { const ganacheServer = new Ganache(); -const threeBoxSpies = { - _registerUpdates: sinon.spy(), - init: sinon.stub(), - getLastUpdated: sinon.stub(), - getThreeBoxSyncingState: sinon.stub().returns(true), - restoreFromThreeBox: sinon.stub(), - setShowRestorePromptToFalse: sinon.stub(), - setThreeBoxSyncingPermission: sinon.stub(), - turnThreeBoxSyncingOn: sinon.stub(), -}; - -class ThreeBoxControllerMock { - constructor() { - this._registerUpdates = threeBoxSpies._registerUpdates; - this.init = threeBoxSpies.init; - this.getLastUpdated = threeBoxSpies.getLastUpdated; - this.getThreeBoxSyncingState = threeBoxSpies.getThreeBoxSyncingState; - this.restoreFromThreeBox = threeBoxSpies.restoreFromThreeBox; - this.setShowRestorePromptToFalse = - threeBoxSpies.setShowRestorePromptToFalse; - this.setThreeBoxSyncingPermission = - threeBoxSpies.setThreeBoxSyncingPermission; - this.store = { - subscribe: () => undefined, - getState: () => ({}), - }; - this.turnThreeBoxSyncingOn = threeBoxSpies.turnThreeBoxSyncingOn; - } -} - const browserPolyfillMock = { runtime: { id: 'fake-extension-id', @@ -116,7 +86,6 @@ const createLoggerMiddlewareMock = () => (req, res, next) => { }; const MetaMaskController = proxyquire('./metamask-controller', { - './controllers/threebox': { default: ThreeBoxControllerMock }, './lib/createLoggerMiddleware': { default: createLoggerMiddlewareMock }, }).default; @@ -245,15 +214,10 @@ describe('MetaMaskController', function () { }); describe('submitPassword', function () { - const password = 'password'; - - beforeEach(async function () { + it('removes any identities that do not correspond to known accounts.', async function () { + const password = 'password'; await metamaskController.createNewVaultAndKeychain(password); - threeBoxSpies.init.reset(); - threeBoxSpies.turnThreeBoxSyncingOn.reset(); - }); - it('removes any identities that do not correspond to known accounts.', async function () { const fakeAddress = '0xbad0'; metamaskController.preferencesController.addAddresses([fakeAddress]); await metamaskController.submitPassword(password); @@ -278,23 +242,6 @@ describe('MetaMaskController', function () { ); }); }); - - it('gets the address from threebox and creates a new 3box instance', async function () { - await metamaskController.submitPassword(password); - assert(threeBoxSpies.init.calledOnce); - assert(threeBoxSpies.turnThreeBoxSyncingOn.calledOnce); - }); - - it('succeeds even if blockTracker or threeBoxController throw', async function () { - const throwErr = sinon.fake.throws('foo'); - metamaskController.blockTracker.checkForLatestBlock = throwErr; - metamaskController.threeBoxController.getThreeBoxSyncingState = throwErr; - await metamaskController.submitPassword(password); - assert.ok( - throwErr.calledTwice, - 'should have called checkForLatestBlock and getThreeBoxSyncingState', - ); - }); }); describe('#createNewVaultAndKeychain', function () { diff --git a/app/scripts/migrations/075.js b/app/scripts/migrations/075.js new file mode 100644 index 000000000000..4ae6bb5851aa --- /dev/null +++ b/app/scripts/migrations/075.js @@ -0,0 +1,23 @@ +import { cloneDeep } from 'lodash'; + +const version = 75; + +/** + * Delete the ThreeBoxController. + */ +export default { + version, + async migrate(originalVersionedData) { + const versionedData = cloneDeep(originalVersionedData); + versionedData.meta.version = version; + const state = versionedData.data; + const newState = transformState(state); + versionedData.data = newState; + return versionedData; + }, +}; + +function transformState(state) { + delete state.ThreeBoxController; + return state; +} diff --git a/app/scripts/migrations/075.test.js b/app/scripts/migrations/075.test.js new file mode 100644 index 000000000000..fd270b8da6d0 --- /dev/null +++ b/app/scripts/migrations/075.test.js @@ -0,0 +1,63 @@ +import migration75 from './075'; + +describe('migration #75', () => { + it('should update the version metadata', async () => { + const oldStorage = { + meta: { + version: 74, + }, + data: {}, + }; + + const newStorage = await migration75.migrate(oldStorage); + expect(newStorage.meta).toStrictEqual({ + version: 75, + }); + }); + + it('should delete the ThreeBoxController', async () => { + const oldStorage = { + meta: { + version: 74, + }, + data: { + FooController: { a: 'b' }, + ThreeBoxController: { + stuff: 'stuff!', + moreStuff: { moreStuff: ['stuff', 'stuff', 'stuff'] }, + }, + }, + }; + + const newStorage = await migration75.migrate(oldStorage); + expect(newStorage).toStrictEqual({ + meta: { + version: 75, + }, + data: { + FooController: { a: 'b' }, + }, + }); + }); + + it('should handle missing ThreeBoxController', async () => { + const oldStorage = { + meta: { + version: 74, + }, + data: { + FooController: { a: 'b' }, + }, + }; + + const newStorage = await migration75.migrate(oldStorage); + expect(newStorage).toStrictEqual({ + meta: { + version: 75, + }, + data: { + FooController: { a: 'b' }, + }, + }); + }); +}); diff --git a/app/scripts/migrations/index.js b/app/scripts/migrations/index.js index 1fafb65bdd83..ab7c6b3d5504 100644 --- a/app/scripts/migrations/index.js +++ b/app/scripts/migrations/index.js @@ -78,6 +78,7 @@ import m071 from './071'; import m072 from './072'; import m073 from './073'; import m074 from './074'; +import m075 from './075'; const migrations = [ m002, @@ -153,6 +154,7 @@ const migrations = [ m072, m073, m074, + m075, ]; export default migrations; diff --git a/development/generate-lavamoat-policies.js b/development/generate-lavamoat-policies.js index 4ac600636d8e..a4004e0b8456 100755 --- a/development/generate-lavamoat-policies.js +++ b/development/generate-lavamoat-policies.js @@ -11,7 +11,7 @@ start().catch((error) => { async function start() { const { - argv: { buildTypes, parallel }, + argv: { buildTypes, parallel, devMode }, } = yargs(hideBin(process.argv)).usage( '$0 [options]', 'Generate the LavaMoat policy file for one more more build types.', @@ -31,13 +31,22 @@ async function start() { description: 'Whether to generate policies in parallel.', type: 'boolean', }) + .option('devMode', { + alias: ['d'], + default: false, + demandOption: true, + description: + 'Whether to run the process under lavamoat (devMode=false) or node (devMode=true)', + type: 'boolean', + }) .strict(), ); + const buildCommand = devMode ? 'build:dev' : 'build'; await concurrently( (Array.isArray(buildTypes) ? buildTypes : [buildTypes]).map( (buildType) => ({ - command: `yarn build scripts:dist --policy-only --build-type=${buildType}`, + command: `yarn ${buildCommand} scripts:dist --policy-only --lint-fence-files=false --build-type=${buildType}`, env: { WRITE_AUTO_POLICY: 1, }, diff --git a/development/mock-3box.js b/development/mock-3box.js deleted file mode 100644 index ebbbe325d9ed..000000000000 --- a/development/mock-3box.js +++ /dev/null @@ -1,68 +0,0 @@ -function delay(time) { - return new Promise((resolve) => setTimeout(resolve, time)); -} - -async function loadFromMock3Box(key) { - const res = await window.fetch(`http://localhost:8889?key=${key}`); - const text = await res.text(); - return text.length ? JSON.parse(text) : null; -} - -async function saveToMock3Box(key, newDataAtKey) { - const res = await window.fetch('http://localhost:8889', { - method: 'POST', - body: JSON.stringify({ - key, - data: newDataAtKey, - }), - }); - - return res.text(); -} - -class Mock3Box { - static openBox(address) { - this.address = address; - return Promise.resolve({ - onSyncDone: (cb) => { - setTimeout(cb, 200); - }, - openSpace: async (spaceName, config) => { - const { onSyncDone } = config; - this.spaceName = spaceName; - - setTimeout(onSyncDone, 150); - - await delay(50); - - return { - private: { - get: async (key) => { - await delay(50); - const res = await loadFromMock3Box( - `${this.address}-${this.spaceName}-${key}`, - ); - return res; - }, - set: async (key, data) => { - await saveToMock3Box( - `${this.address}-${this.spaceName}-${key}`, - data, - ); - await delay(50); - return null; - }, - }, - }; - }, - logout: () => undefined, - }); - } - - static async getConfig(address) { - const backup = await loadFromMock3Box(`${address}-metamask-metamaskBackup`); - return backup ? { spaces: { metamask: {} } } : {}; - } -} - -module.exports = Mock3Box; diff --git a/development/ts-migration-dashboard/files-to-convert.json b/development/ts-migration-dashboard/files-to-convert.json index 69636584a1a3..6cce4cb55250 100644 --- a/development/ts-migration-dashboard/files-to-convert.json +++ b/development/ts-migration-dashboard/files-to-convert.json @@ -48,7 +48,6 @@ "app/scripts/controllers/preferences.test.js", "app/scripts/controllers/swaps.js", "app/scripts/controllers/swaps.test.js", - "app/scripts/controllers/threebox.js", "app/scripts/controllers/transactions/index.js", "app/scripts/controllers/transactions/index.test.js", "app/scripts/controllers/transactions/lib/tx-state-history-helpers.js", diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index fe10c7ebac5a..71e1e50d1917 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -1,2194 +1,5 @@ { "resources": { - "3box": { - "globals": { - "console.error": true, - "console.log": true, - "console.warn": true, - "fetch": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins": true, - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>3id-resolver": true, - "3box>did-jwt": true, - "3box>ethers": true, - "3box>ethers>elliptic": true, - "3box>graphql-request": true, - "3box>https-did-resolver": true, - "3box>ipfs": true, - "3box>ipfs-did-document": true, - "3box>ipfs-mini": true, - "3box>ipfs>is-ipfs": true, - "3box>ipfs>multihashes": true, - "3box>js-sha256": true, - "3box>muport-did-resolver": true, - "3box>orbit-db": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-identity-provider": true, - "3box>orbit-db>orbit-db-pubsub": true, - "3box>store": true, - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, - "@babel/runtime": true, - "browserify>buffer": true, - "browserify>process": true, - "node-fetch": true - } - }, - "3box>3box-orbitdb-plugins": { - "globals": { - "console.log": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>3id-resolver>did-jwt": true, - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ipfs>is-ipfs": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>events": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>3box-orbitdb-plugins>ipfs-log": { - "globals": { - "clearTimeout": true, - "console.warn": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log>json-stringify-deterministic": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-each-series": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-map": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-whilst": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>buffer": true - } - }, - "3box>3id-resolver": { - "packages": { - "3box>3id-resolver>did-jwt": true, - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ipfs-did-document": true, - "@babel/runtime": true - } - }, - "3box>3id-resolver>did-jwt": { - "packages": { - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ethers>elliptic": true, - "3box>js-sha256": true, - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, - "@babel/runtime": true, - "browserify>buffer": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>3id-resolver>did-jwt>base64url": { - "packages": { - "browserify>buffer": true - } - }, - "3box>did-jwt": { - "packages": { - "3box>did-jwt>@stablelib/utf8": true, - "3box>did-jwt>did-resolver": true, - "3box>did-jwt>js-sha3": true, - "3box>did-jwt>uport-base64url": true, - "3box>ethers>elliptic": true, - "3box>js-sha256": true, - "3box>tweetnacl": true, - "browserify>buffer": true - } - }, - "3box>did-jwt>js-sha3": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>did-jwt>uport-base64url": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ethers": { - "globals": { - "MessageChannel": true, - "XMLHttpRequest": true, - "atob": true, - "btoa": true, - "clearInterval": true, - "clearTimeout": true, - "console": true, - "crypto.getRandomValues": true, - "define": true, - "setInterval": true, - "setTimeout": true - } - }, - "3box>ethers>elliptic": { - "packages": { - "3box>ethers>elliptic>brorand": true, - "3box>ethers>elliptic>hmac-drbg": true, - "3box>ethers>elliptic>minimalistic-crypto-utils": true, - "3box>ethers>hash.js>minimalistic-assert": true, - "bn.js": true, - "ethers>@ethersproject/sha2>hash.js": true, - "pumpify>inherits": true - } - }, - "3box>ethers>elliptic>brorand": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "3box>ethers>elliptic>hmac-drbg": { - "packages": { - "3box>ethers>elliptic>minimalistic-crypto-utils": true, - "3box>ethers>hash.js>minimalistic-assert": true, - "ethers>@ethersproject/sha2>hash.js": true - } - }, - "3box>events": { - "globals": { - "console": true - } - }, - "3box>graphql-request": { - "globals": { - "fetch": true - }, - "packages": { - "3box>graphql-request>cross-fetch": true - } - }, - "3box>graphql-request>cross-fetch": { - "globals": { - "Blob": true, - "FileReader": true, - "FormData": true, - "URLSearchParams.prototype.isPrototypeOf": true, - "XMLHttpRequest": true - } - }, - "3box>graphql-request>cross-fetch>node-fetch": { - "globals": { - "fetch": true - } - }, - "3box>https-did-resolver": { - "globals": { - "XMLHttpRequest": true - }, - "packages": { - "3box>did-jwt>did-resolver": true, - "browserify>browser-resolve": true - } - }, - "3box>ipfs": { - "globals": { - "AbortController": true, - "clearInterval": true, - "clearTimeout": true, - "console.log": true, - "fetch": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>async-iterator-all": true, - "3box>ipfs>async-iterator-to-pull-stream": true, - "3box>ipfs>async-iterator-to-stream": true, - "3box>ipfs>base32.js": true, - "3box>ipfs>bignumber.js": true, - "3box>ipfs>callbackify": true, - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "3box>ipfs>datastore-core": true, - "3box>ipfs>datastore-pubsub": true, - "3box>ipfs>dlv": true, - "3box>ipfs>err-code": true, - "3box>ipfs>fnv1a": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>human-to-milliseconds": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-bitswap": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipfs-block-service": true, - "3box>ipfs>ipfs-mfs": true, - "3box>ipfs>ipfs-repo": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-exporter": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "3box>ipfs>ipfs-utils": true, - "3box>ipfs>ipld": true, - "3box>ipfs>ipld-dag-cbor": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw": true, - "3box>ipfs>ipns": true, - "3box>ipfs>is-ipfs": true, - "3box>ipfs>is-pull-stream": true, - "3box>ipfs>iso-url": true, - "3box>ipfs>just-flatten-it": true, - "3box>ipfs>kind-of": true, - "3box>ipfs>libp2p": true, - "3box>ipfs>libp2p-bootstrap": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-kad-dht": true, - "3box>ipfs>libp2p-keychain": true, - "3box>ipfs>libp2p-record": true, - "3box>ipfs>libp2p-secio": true, - "3box>ipfs>libp2p-webrtc-star": true, - "3box>ipfs>libp2p-websocket-star-multi": true, - "3box>ipfs>libp2p-websockets": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multiaddr-to-uri": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async": true, - "3box>ipfs>peer-book": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>promisify-es6": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-cat": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-mplex": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-sort": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>pull-stream-to-async-iterator": true, - "3box>ipfs>pull-stream-to-stream": true, - "3box>ipfs>pull-traverse": true, - "3box>ipfs>readable-stream": true, - "3box>ipfs>receptacle": true, - "3box>ipfs>stream-to-pull-stream": true, - "3box>ipfs>superstruct": true, - "3box>ipfs>varint": true, - "@metamask/providers>is-stream": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "browserify>timers-browserify": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs-mini": { - "globals": { - "XMLHttpRequest": true - } - }, - "3box>ipfs-postmsg-proxy>shortid": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "nanoid": true - } - }, - "3box>ipfs>async-iterator-to-pull-stream": { - "packages": { - "3box>ipfs>async-iterator-to-pull-stream>get-iterator": true, - "3box>ipfs>pull-stream-to-async-iterator": true - } - }, - "3box>ipfs>async-iterator-to-stream": { - "packages": { - "3box>ipfs>async-iterator-to-stream>readable-stream": true, - "browserify>process": true - } - }, - "3box>ipfs>async-iterator-to-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>bl": { - "packages": { - "3box>ipfs>bl>readable-stream": true, - "browserify>buffer": true, - "browserify>util": true - } - }, - "3box>ipfs>bl>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>bs58": { - "packages": { - "3box>ipfs>bs58>base-x": true - } - }, - "3box>ipfs>bs58>base-x": { - "packages": { - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>cids": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>datastore-core": { - "packages": { - "3box>ipfs>datastore-core>pull-many": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>datastore-pubsub": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>multibase": true, - "browserify>assert": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>dlv": { - "globals": { - "define": true - } - }, - "3box>ipfs>fsm-event": { - "packages": { - "3box>ipfs>fsm-event>fsm": true, - "browserify>assert": true, - "browserify>events": true - } - }, - "3box>ipfs>human-to-milliseconds": { - "packages": { - "3box>ipfs>promisify-es6": true - } - }, - "3box>ipfs>interface-datastore": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore>uuid": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>os-browserify": true, - "browserify>path-browserify": true, - "gh-pages>async": true - } - }, - "3box>ipfs>interface-datastore>uuid": { - "globals": { - "crypto": true, - "msCrypto": true - } - }, - "3box>ipfs>ipfs-bitswap": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipfs-bitswap>bignumber.js": true, - "3box>ipfs>ipfs-bitswap>just-debounce-it": true, - "3box>ipfs>ipfs-bitswap>lodash.isequalwith": true, - "3box>ipfs>ipfs-bitswap>moving-average": true, - "3box>ipfs>ipfs-bitswap>multihashing-async": true, - "3box>ipfs>ipfs-bitswap>varint-decoder": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-bitswap>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>ipfs-bitswap>just-debounce-it": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>ipfs-bitswap>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>ipfs-bitswap>varint-decoder": { - "packages": { - "3box>ipfs>varint": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-block": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-block-service": { - "packages": { - "gh-pages>async": true - } - }, - "3box>ipfs>ipfs-mfs": { - "globals": { - "Blob": true, - "FileReader": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-mfs>async-iterator-last": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-mfs>mortice": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-exporter": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>promisify-es6": true, - "browserify>assert": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-mfs>hamt-sharding": { - "packages": { - "3box>ipfs>ipfs-mfs>hamt-sharding>sparse-array": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-mfs>mortice": { - "globals": { - "Worker": true - }, - "packages": { - "3box>ipfs-postmsg-proxy>shortid": true, - "3box>ipfs>ipfs-mfs>mortice>observable-webworkers": true, - "3box>ipfs>ipfs-mfs>mortice>promise-timeout": true, - "3box>ipfs>libp2p-kad-dht>p-queue": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true - } - }, - "3box>ipfs>ipfs-mfs>mortice>promise-timeout": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>ipfs-repo": { - "packages": { - "3box>ipfs>base32.js": true, - "3box>ipfs>cids": true, - "3box>ipfs>datastore-core": true, - "3box>ipfs>dlv": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipfs-repo>bignumber.js": true, - "3box>ipfs>ipfs-repo>datastore-level": true, - "3box>ipfs>ipfs-repo>sort-keys": true, - "3box>ipfs>just-safe-set": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>path-browserify": true, - "browserify>timers-browserify": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-repo>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level": { - "packages": { - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down": true, - "3box>ipfs>ipfs-repo>datastore-level>level-js": true, - "3box>ipfs>pull-stream": true, - "3box>orbit-db>orbit-db-keystore>levelup": true, - "browserify>buffer": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down": { - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown": true, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>level-codec": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown": { - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown>level-supports": true, - "3box>orbit-db>orbit-db-cache>level-js>immediate": true, - "browserify>buffer": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown>level-supports": { - "packages": { - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>level-codec": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.only": true, - "IDBKeyRange.upperBound": true, - "indexedDB.deleteDatabase": true, - "indexedDB.open": true - }, - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>level-js>abstract-leveldown": true, - "3box>ipfs>ipfs-repo>datastore-level>level-js>idb-readable-stream": true, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": true, - "browserify>buffer": true, - "browserify>process": true, - "browserify>stream-browserify": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js>abstract-leveldown": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js>idb-readable-stream": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.upperBound": true - }, - "packages": { - "browserify>stream-browserify": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>sort-keys": { - "packages": { - "geckodriver>got>is-plain-obj": true - } - }, - "3box>ipfs>ipfs-unixfs": { - "packages": { - "3box>ipfs>protons": true - } - }, - "3box>ipfs>ipfs-unixfs-exporter": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>ipfs-mfs>async-iterator-last": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-unixfs-importer": { - "packages": { - "3box>ipfs>async-iterator-all": true, - "3box>ipfs>bl": true, - "3box>ipfs>err-code": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true, - "3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true, - "3box>ipfs>ipfs-unixfs-importer>superstruct": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "madge>rc>deep-extend": true - } - }, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { - "globals": { - "Blob": true, - "Response": true, - "WebAssembly": true - }, - "packages": { - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm>assemblyscript": true - } - }, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm>assemblyscript": { - "globals": { - "WebAssembly.Instance": true, - "WebAssembly.Module": true, - "WebAssembly.instantiateStreaming": true, - "console.log": true - } - }, - "3box>ipfs>ipfs-utils": { - "globals": { - "FileReader": true - }, - "packages": { - "3box>ipfs>ipfs-utils>is-buffer": true, - "3box>ipfs>ipfs-utils>readable-stream": true, - "3box>ipfs>is-pull-stream": true, - "3box>ipfs>kind-of": true, - "@metamask/providers>is-stream": true - } - }, - "3box>ipfs>ipfs-utils>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>ipld": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipld-dag-cbor": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw": true, - "3box>ipfs>ipld>typical": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>promisify-es6": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipld-dag-cbor": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-dag-cbor>is-circular": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "eth-lattice-keyring>gridplus-sdk>borc": true - } - }, - "3box>ipfs>ipld-dag-pb": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>protons": true, - "@storybook/react>@storybook/store>stable": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipld-raw": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true - } - }, - "3box>ipfs>ipld-raw>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>ipld-raw>multihashing-async>murmurhash3js-revisited": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>ipld-raw>multihashing-async>murmurhash3js-revisited": { - "globals": { - "define": true - } - }, - "3box>ipfs>ipld>typical": { - "globals": { - "define": true - } - }, - "3box>ipfs>ipns": { - "packages": { - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipns>timestamp-nano": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>protons": true, - "base32-encode": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>is-ipfs": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>cids": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true - } - }, - "3box>ipfs>iso-url": { - "globals": { - "URL": true, - "URLSearchParams": true, - "location": true - } - }, - "3box>ipfs>libp2p": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>libp2p-websockets": true, - "3box>ipfs>libp2p>libp2p-connection-manager": true, - "3box>ipfs>libp2p>libp2p-floodsub": true, - "3box>ipfs>libp2p>libp2p-ping": true, - "3box>ipfs>libp2p>libp2p-switch": true, - "3box>ipfs>libp2p>superstruct": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-book": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-bootstrap": { - "globals": { - "clearInterval": true, - "setInterval": true - }, - "packages": { - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p-crypto": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>libp2p-crypto>asn1.js": true, - "3box>ipfs>libp2p-crypto>iso-random-stream": true, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": true, - "3box>ipfs>libp2p-crypto>multihashing-async": true, - "3box>ipfs>protons": true, - "3box>tweetnacl": true, - "browserify>buffer": true, - "ethereumjs-util>ethereum-cryptography>browserify-aes": true, - "gh-pages>async": true, - "mockttp>node-forge": true - } - }, - "3box>ipfs>libp2p-crypto>asn1.js": { - "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, - "bn.js": true, - "browserify>buffer": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-crypto>iso-random-stream": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": true, - "eth-trezor-keyring>hdkey>secp256k1": true, - "gh-pages>async": true - } - }, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-crypto>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-kad-dht": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>base32.js": true, - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-kad-dht>hashlru": true, - "3box>ipfs>libp2p-kad-dht>heap": true, - "3box>ipfs>libp2p-kad-dht>k-bucket": true, - "3box>ipfs>libp2p-kad-dht>multihashing-async": true, - "3box>ipfs>libp2p-kad-dht>p-queue": true, - "3box>ipfs>libp2p-kad-dht>p-times": true, - "3box>ipfs>libp2p-kad-dht>xor-distance": true, - "3box>ipfs>libp2p-record": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>promisify-es6": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>pull-stream-to-async-iterator": true, - "3box>ipfs>varint": true, - "@metamask/controllers>abort-controller": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "promise-to-callback": true - } - }, - "3box>ipfs>libp2p-kad-dht>heap": { - "globals": { - "define": true - } - }, - "3box>ipfs>libp2p-kad-dht>k-bucket": { - "packages": { - "browserify>events": true, - "ethereumjs-wallet>randombytes": true - } - }, - "3box>ipfs>libp2p-kad-dht>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-kad-dht>p-queue": { - "globals": { - "clearInterval": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "mockttp>@httptoolkit/subscriptions-transport-ws>eventemitter3": true - } - }, - "3box>ipfs>libp2p-kad-dht>p-times": { - "packages": { - "3box>ipfs>libp2p-kad-dht>p-times>p-map": true - } - }, - "3box>ipfs>libp2p-kad-dht>xor-distance": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-keychain": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-keychain>sanitize-filename": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "gh-pages>async": true, - "mockttp>node-forge": true - } - }, - "3box>ipfs>libp2p-keychain>sanitize-filename": { - "packages": { - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes": true - } - }, - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes": { - "packages": { - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes>utf8-byte-length": true - } - }, - "3box>ipfs>libp2p-record": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-record>buffer-split": true, - "3box>ipfs>libp2p-record>multihashing-async": true, - "3box>ipfs>protons": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>libp2p-record>buffer-split": { - "packages": { - "3box>ipfs>libp2p-record>buffer-split>buffer-indexof": true - } - }, - "3box>ipfs>libp2p-record>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-secio": { - "packages": { - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>multihashing-async": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-secio>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-secio>pull-handshake": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": true, - "3box>ipfs>pull-cat": true, - "3box>ipfs>pull-mplex>pull-pair": true, - "3box>ipfs>pull-pushable": true - } - }, - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": { - "globals": { - "cb": true, - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-secio>pull-length-prefixed": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>varint": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>libp2p-webrtc-star": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-webrtc-star>simple-peer": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, - "3box>ipfs>libp2p-webrtc-star>webrtcsupport": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>stream-to-pull-stream": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer": { - "globals": { - "clearInterval": true, - "console.warn": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": true, - "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": true, - "browserify>buffer": true, - "ethereumjs-wallet>randombytes": true, - "nock>debug": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": { - "globals": { - "RTCIceCandidate": true, - "RTCPeerConnection": true, - "RTCSessionDescription": true, - "mozRTCIceCandidate": true, - "mozRTCPeerConnection": true, - "mozRTCSessionDescription": true, - "webkitRTCIceCandidate": true, - "webkitRTCPeerConnection": true, - "webkitRTCSessionDescription": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": { - "globals": { - "clearTimeout": true, - "location": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>component-bind": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>indexof": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseqs": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseuri": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>to-array": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": true, - "mockttp>@httptoolkit/subscriptions-transport-ws>backo2": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client": { - "globals": { - "MozWebSocket": true, - "WebSocket": true, - "XDomainRequest": true, - "XMLHttpRequest": true, - "addEventListener": true, - "attachEvent": true, - "clearTimeout": true, - "document": true, - "location": true, - "navigator": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>component-inherit": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>has-cors": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>yeast": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>indexof": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseqs": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseuri": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser": { - "globals": { - "FileReader": true, - "btoa": true, - "navigator": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>after": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>arraybuffer.slice": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>blob": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>engine.io>engine.io-parser>base64-arraybuffer": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>blob": { - "globals": { - "Blob": true, - "MSBlobBuilder": true, - "MozBlobBuilder": true, - "WebKitBlobBuilder": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>has-cors": { - "globals": { - "XMLHttpRequest": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser": { - "globals": { - "Blob": true, - "File": true, - "FileReader": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>isarray": true, - "browserify>buffer": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": { - "globals": { - "Blob": true, - "File": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2>isarray": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-webrtc-star>webrtcsupport": { - "globals": { - "AudioContext": true, - "MediaStream": true, - "RTCIceCandidate": true, - "RTCPeerConnection": true, - "RTCSessionDescription": true, - "document": true, - "location.protocol": true, - "mozRTCIceCandidate": true, - "mozRTCPeerConnection": true, - "mozRTCSessionDescription": true, - "navigator.getUserMedia": true, - "navigator.mozGetUserMedia": true, - "navigator.msGetUserMedia": true, - "navigator.userAgent.match": true, - "navigator.webkitGetUserMedia": true, - "webkitAudioContext": true, - "webkitMediaStream": true, - "webkitRTCPeerConnection": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true, - "uuid": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>data-queue": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>debug": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>uuid": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>data-queue": { - "packages": { - "browserify>events": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>debug": { - "globals": { - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "browserify>process": true, - "gulp-livereload>debug>ms": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>uuid": { - "globals": { - "crypto": true, - "msCrypto": true - } - }, - "3box>ipfs>libp2p-websockets": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-websockets>pull-ws": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multiaddr-to-uri": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "browserify>os-browserify": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p-websockets>pull-ws": { - "globals": { - "WebSocket": true, - "location": true - }, - "packages": { - "3box>ipfs>libp2p-websockets>pull-ws>relative-url": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>https-browserify": true, - "browserify>process": true, - "browserify>stream-http": true, - "browserify>timers-browserify": true, - "browserify>url": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>libp2p-websockets>pull-ws>relative-url": { - "packages": { - "browserify>url": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager": { - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": true, - "browserify>events": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "document": true, - "performance": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug": true, - "browserify>events": true, - "browserify>process": true, - "lodash": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub": { - "packages": { - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": { - "packages": { - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache>lodash.throttle": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache>lodash.throttle": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>libp2p>libp2p-ping": { - "packages": { - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>pull-stream": true, - "browserify>events": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-switch": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>err-code": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>ipfs-bitswap>moving-average": true, - "3box>ipfs>libp2p-kad-dht>hashlru": true, - "3box>ipfs>libp2p>libp2p-switch>bignumber.js": true, - "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": true, - "3box>ipfs>libp2p>libp2p-switch>libp2p-identify": true, - "3box>ipfs>libp2p>libp2p-switch>multistream-select": true, - "3box>ipfs>libp2p>libp2p-switch>retimer": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>libp2p-identify": { - "globals": { - "console.warn": true - }, - "packages": { - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>multistream-select": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-switch>multistream-select>semver": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>varint": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>multistream-select>semver": { - "globals": { - "console": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>retimer": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>mafmt": { - "packages": { - "3box>ipfs>multiaddr": true - } - }, - "3box>ipfs>merge-options": { - "packages": { - "geckodriver>got>is-plain-obj": true - } - }, - "3box>ipfs>multiaddr": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>class-is": true, - "3box>ipfs>multiaddr>hi-base32": true, - "3box>ipfs>multiaddr>is-ip": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "react-devtools>ip": true - } - }, - "3box>ipfs>multiaddr-to-uri": { - "packages": { - "3box>ipfs>multiaddr": true - } - }, - "3box>ipfs>multiaddr>hi-base32": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>ipfs>multiaddr>is-ip": { - "packages": { - "chromedriver>tcp-port-used>is2>ip-regex": true - } - }, - "3box>ipfs>multibase": { - "packages": { - "3box>ipfs>multibase>base-x": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multibase>base-x": { - "packages": { - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>multicodec": { - "packages": { - "3box>ipfs>varint": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multihashes": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>varint": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>multihashing-async>murmurhash3js": { - "globals": { - "define": true - } - }, - "3box>ipfs>multihashing-async>nodeify": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>multihashing-async>nodeify>is-promise": true, - "3box>ipfs>multihashing-async>nodeify>promise": true, - "browserify>process": true, - "browserify>timers-browserify": true - } - }, - "3box>ipfs>multihashing-async>nodeify>promise": { - "globals": { - "setImediate": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>multihashing-async>nodeify>is-promise": true, - "browserify>process": true - } - }, - "3box>ipfs>peer-book": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>peer-id": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>multihashes": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>peer-info": { - "packages": { - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info>unique-by": true, - "browserify>assert": true - } - }, - "3box>ipfs>protons": { - "packages": { - "3box>ipfs>protons>protocol-buffers-schema": true, - "3box>ipfs>protons>signed-varint": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>protons>signed-varint": { - "packages": { - "3box>ipfs>varint": true - } - }, - "3box>ipfs>pull-mplex": { - "packages": { - "3box>ipfs>pull-abortable": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-mplex>looper": true, - "3box>ipfs>pull-mplex>pull-through": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>pull-mplex>interface-connection": { - "packages": { - "3box>ipfs>pull-defer": true - } - }, - "3box>ipfs>pull-mplex>pull-through": { - "packages": { - "3box>ipfs>stream-to-pull-stream>looper": true - } - }, - "3box>ipfs>pull-sort": { - "packages": { - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-stream": true - } - }, - "3box>ipfs>pull-stream": { - "globals": { - "console.log": true - } - }, - "3box>ipfs>pull-stream-to-async-iterator": { - "packages": { - "3box>ipfs>pull-stream": true - } - }, - "3box>ipfs>pull-stream-to-stream": { - "packages": { - "browserify>process": true, - "browserify>stream-browserify": true, - "browserify>timers-browserify": true - } - }, - "3box>ipfs>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>receptacle": { - "globals": { - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "gulp-livereload>debug>ms": true - } - }, - "3box>ipfs>stream-to-pull-stream": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>pull-stream": true, - "3box>ipfs>stream-to-pull-stream>looper": true, - "browserify>process": true - } - }, - "3box>js-sha256": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>muport-did-resolver": { - "packages": { - "3box>did-jwt>did-resolver": true, - "@babel/runtime": true, - "node-fetch": true - } - }, - "3box>orbit-db": { - "globals": { - "console.log": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>multihashes": true, - "3box>orbit-db>ipfs-pubsub-1on1": true, - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-cache": true, - "3box>orbit-db>orbit-db-counterstore": true, - "3box>orbit-db>orbit-db-docstore": true, - "3box>orbit-db>orbit-db-eventstore": true, - "3box>orbit-db>orbit-db-feedstore": true, - "3box>orbit-db>orbit-db-identity-provider": true, - "3box>orbit-db>orbit-db-io": true, - "3box>orbit-db>orbit-db-keystore": true, - "3box>orbit-db>orbit-db-kvstore": true, - "3box>orbit-db>orbit-db-pubsub": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>ipfs-pubsub-1on1": { - "globals": { - "clearInterval": true, - "setInterval": true - }, - "packages": { - "3box>orbit-db>ipfs-pubsub-1on1>safe-buffer": true, - "browserify>events": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>ipfs-pubsub-1on1>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "3box>orbit-db>logplease": { - "globals": { - "LOG": true, - "console.error": true, - "console.log": true - }, - "packages": { - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>util": true - } - }, - "3box>orbit-db>orbit-db-access-controllers": { - "globals": { - "console.log": true - }, - "packages": { - "3box>orbit-db>orbit-db-access-controllers>p-map-series": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>events": true, - "browserify>path-browserify": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>orbit-db>orbit-db-access-controllers>p-map-series": { - "packages": { - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>orbit-db>orbit-db-cache": { - "packages": { - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-cache>level-js": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.upperBound": true, - "indexedDB": true - }, - "packages": { - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": true, - "3box>orbit-db>orbit-db-cache>level-js>immediate": true, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "pumpify>inherits": true, - "stylelint>write-file-atomic>typedarray-to-buffer": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>immediate": { - "globals": { - "MessageChannel": true, - "MutationObserver": true, - "WebKitMutationObserver": true, - "clearTimeout": true, - "document.createElement": true, - "document.createTextNode": true, - "document.documentElement.appendChild": true, - "setImmediate": true, - "setTimeout": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": { - "packages": { - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>orbit-db>orbit-db-counterstore": { - "packages": { - "3box>orbit-db>orbit-db-counterstore>crdts": true, - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-docstore": { - "packages": { - "3box>orbit-db>orbit-db-docstore>p-map": true, - "3box>orbit-db>orbit-db-store": true, - "readable-stream": true - } - }, - "3box>orbit-db>orbit-db-eventstore": { - "packages": { - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-feedstore": { - "packages": { - "3box>orbit-db>orbit-db-eventstore": true - } - }, - "3box>orbit-db>orbit-db-identity-provider": { - "packages": { - "3box>orbit-db>orbit-db-keystore": true - } - }, - "3box>orbit-db>orbit-db-io": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-dag-pb": true, - "browserify>buffer": true - } - }, - "3box>orbit-db>orbit-db-keystore": { - "globals": { - "console.error": true, - "console.log": true - }, - "packages": { - "3box>ethers>elliptic": true, - "3box>ipfs>libp2p-crypto": true, - "3box>orbit-db>orbit-db-cache>level-js": true, - "3box>orbit-db>orbit-db-keystore>levelup": true, - "3box>orbit-db>orbit-db-keystore>lru": true, - "eth-trezor-keyring>hdkey>secp256k1": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup": { - "packages": { - "3box>orbit-db>orbit-db-keystore>levelup>deferred-leveldown": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream": true, - "browserify>assert": true, - "browserify>events": true, - "browserify>process": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>deferred-leveldown": { - "packages": { - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": { - "packages": { - "webpack>memory-fs>errno": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream": { - "packages": { - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream>readable-stream": true, - "pumpify>inherits": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-keystore>lru": { - "packages": { - "browserify>events": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-kvstore": { - "packages": { - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-pubsub": { - "packages": { - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-pubsub>ipfs-pubsub-peer-monitor": true, - "3box>orbit-db>orbit-db-pubsub>p-series": true, - "browserify>buffer": true - } - }, - "3box>orbit-db>orbit-db-pubsub>ipfs-pubsub-peer-monitor": { - "globals": { - "clearInterval": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "browserify>events": true - } - }, - "3box>orbit-db>orbit-db-pubsub>p-series": { - "packages": { - "3box>orbit-db>orbit-db-pubsub>p-series>@sindresorhus/is": true, - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>orbit-db>orbit-db-pubsub>p-series>@sindresorhus/is": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>util": true - } - }, - "3box>orbit-db>orbit-db-store": { - "globals": { - "clearInterval": true, - "console.error": true, - "console.warn": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>ipfs>libp2p-kad-dht>p-times>p-map": true, - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-io": true, - "3box>orbit-db>orbit-db-store>p-each-series": true, - "browserify>buffer": true, - "browserify>events": true, - "readable-stream": true - } - }, - "3box>orbit-db>orbit-db-store>p-each-series": { - "packages": { - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>store": { - "globals": { - "ActiveXObject": true, - "console": true - } - }, - "3box>tweetnacl": { - "globals": { - "crypto": true, - "msCrypto": true, - "nacl": "write" - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "3box>tweetnacl-util": { - "globals": { - "atob": true, - "btoa": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, "@babel/runtime": { "globals": { "regeneratorRuntime": "write" @@ -2236,9 +47,9 @@ }, "@ensdomains/content-hash>cids>multihashes": { "packages": { - "3box>ipfs>varint": true, "@ensdomains/content-hash>cids>multibase": true, - "@ensdomains/content-hash>cids>uint8arrays": true + "@ensdomains/content-hash>cids>uint8arrays": true, + "@ensdomains/content-hash>multihashes>varint": true } }, "@ensdomains/content-hash>cids>uint8arrays": { @@ -2283,17 +94,17 @@ }, "@ensdomains/content-hash>multihashes": { "packages": { - "3box>ipfs>varint": true, "@ensdomains/content-hash>multihashes>multibase": true, + "@ensdomains/content-hash>multihashes>varint": true, "@ensdomains/content-hash>multihashes>web-encoding": true, "browserify>buffer": true } }, "@ensdomains/content-hash>multihashes>multibase": { "packages": { - "3box>ipfs>bs58>base-x": true, "@ensdomains/content-hash>multihashes>web-encoding": true, - "browserify>buffer": true + "browserify>buffer": true, + "ethereumjs-wallet>bs58check>bs58>base-x": true } }, "@ensdomains/content-hash>multihashes>web-encoding": { @@ -2420,7 +231,7 @@ }, "@keystonehq/bc-ur-registry-eth>hdkey>secp256k1": { "packages": { - "3box>ethers>elliptic": true + "ethers>@ethersproject/signing-key>elliptic": true } }, "@keystonehq/metamask-airgapped-keyring": { @@ -2850,38 +661,38 @@ "@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true, "@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true, - "@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>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>bn.js": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>bn.js": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -2896,11 +707,6 @@ "promise-to-callback": true } }, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": { - "packages": { - "browserify>process": true - } - }, "@metamask/controllers>eth-phishing-detect": { "packages": { "eslint>optionator>fast-levenshtein": true @@ -3065,7 +871,6 @@ }, "@metamask/controllers>web3-provider-engine>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/controllers>web3-provider-engine>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3073,7 +878,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/controllers>web3-provider-engine>ethereumjs-util>ethjs-util": { @@ -3163,7 +969,6 @@ }, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3171,7 +976,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util>ethjs-util": { @@ -3201,16 +1007,15 @@ }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util": true, "browserify>buffer": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "ethereumjs-abi": true } }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3218,7 +1023,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util>ethjs-util": { @@ -3230,13 +1036,23 @@ }, "@metamask/eth-ledger-bridge-keyring>hdkey": { "packages": { + "@metamask/eth-ledger-bridge-keyring>hdkey>secp256k1": true, "browserify>assert": true, "browserify>crypto-browserify": true, "eth-trezor-keyring>hdkey>coinstring": true, - "eth-trezor-keyring>hdkey>secp256k1": true, "ethereumjs-wallet>safe-buffer": true } }, + "@metamask/eth-ledger-bridge-keyring>hdkey>secp256k1": { + "packages": { + "bn.js": true, + "browserify>insert-module-globals>is-buffer": true, + "eth-trezor-keyring>hdkey>secp256k1>bip66": true, + "ethereumjs-util>create-hash": true, + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true + } + }, "@metamask/eth-token-tracker": { "globals": { "console.warn": true @@ -3295,38 +1111,38 @@ "@metamask/eth-token-tracker>ethjs>ethjs-abi": true, "@metamask/eth-token-tracker>ethjs>ethjs-contract": true, "@metamask/eth-token-tracker>ethjs>ethjs-query": true, - "@metamask/eth-token-tracker>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>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-abi": { "packages": { "@metamask/eth-token-tracker>ethjs>bn.js": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-contract": { "packages": { "@metamask/eth-token-tracker>ethjs>ethjs-contract>ethjs-abi": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-contract>ethjs-abi": { "packages": { "@metamask/eth-token-tracker>ethjs>bn.js": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3341,11 +1157,6 @@ "promise-to-callback": true } }, - "@metamask/eth-token-tracker>ethjs>js-sha3": { - "packages": { - "browserify>process": true - } - }, "@metamask/etherscan-link": { "globals": { "URL": true @@ -3503,38 +1314,38 @@ "@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>js-sha3": 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>js-sha3": 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, + "ethjs>js-sha3": 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>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3549,11 +1360,6 @@ "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, @@ -3774,11 +1580,6 @@ "localStorage": true } }, - "@storybook/react>@storybook/store>stable": { - "globals": { - "define": true - } - }, "@truffle/codec": { "packages": { "@truffle/codec>@truffle/abi-utils": true, @@ -4006,7 +1807,15 @@ }, "@truffle/codec>web3-utils>ethereum-bloom-filters": { "packages": { - "ethers>@ethersproject/keccak256>js-sha3": true + "@truffle/codec>web3-utils>ethereum-bloom-filters>js-sha3": true + } + }, + "@truffle/codec>web3-utils>ethereum-bloom-filters>js-sha3": { + "globals": { + "define": true + }, + "packages": { + "browserify>process": true } }, "@truffle/decoder": { @@ -4183,7 +1992,7 @@ }, "browserify>crypto-browserify>browserify-cipher>browserify-des>des.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, @@ -4195,7 +2004,6 @@ }, "browserify>crypto-browserify>browserify-sign": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>buffer": true, "browserify>crypto-browserify>create-hmac": true, @@ -4203,14 +2011,15 @@ "browserify>crypto-browserify>public-encrypt>parse-asn1": true, "browserify>stream-browserify": true, "ethereumjs-util>create-hash": true, + "ethers>@ethersproject/signing-key>elliptic": true, "pumpify>inherits": true } }, "browserify>crypto-browserify>create-ecdh": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, - "browserify>buffer": true + "browserify>buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "browserify>crypto-browserify>create-hmac": { @@ -4233,8 +2042,8 @@ }, "browserify>crypto-browserify>diffie-hellman>miller-rabin": { "packages": { - "3box>ethers>elliptic>brorand": true, - "bn.js": true + "bn.js": true, + "ethers>@ethersproject/signing-key>elliptic>brorand": true } }, "browserify>crypto-browserify>pbkdf2": { @@ -4281,10 +2090,10 @@ }, "browserify>crypto-browserify>public-encrypt>parse-asn1>asn1.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, "bn.js": true, "browserify>buffer": true, "browserify>vm-browserify": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, @@ -4618,13 +2427,13 @@ }, "eth-json-rpc-middleware>@metamask/eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>bn.js": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>ethereum-cryptography": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>ethjs-util": true, - "eth-lattice-keyring>@ethereumjs/util": true + "eth-lattice-keyring>@ethereumjs/util": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true } }, "eth-json-rpc-middleware>@metamask/eth-sig-util>bn.js": { @@ -4840,7 +2649,6 @@ "setTimeout": true }, "packages": { - "3box>ethers>elliptic": true, "@ethereumjs/common>crc-32": true, "@metamask/controllers>@ethersproject/abi": true, "bn.js": true, @@ -4853,12 +2661,13 @@ "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser": true, + "eth-lattice-keyring>gridplus-sdk>js-sha3": true, "eth-lattice-keyring>gridplus-sdk>rlp": true, - "eth-lattice-keyring>gridplus-sdk>secp256k1": true, "ethereumjs-wallet>aes-js": true, "ethereumjs-wallet>bs58check": true, - "ethers>@ethersproject/keccak256>js-sha3": true, "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/signing-key>elliptic": true, + "ganache>secp256k1": true, "lodash": true } }, @@ -4902,10 +2711,10 @@ "console": true }, "packages": { - "3box>ipfs>iso-url": true, "browserify>buffer": true, "browserify>buffer>ieee754": true, - "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": true + "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": true, + "eth-lattice-keyring>gridplus-sdk>borc>iso-url": true } }, "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": { @@ -4914,6 +2723,13 @@ "define": true } }, + "eth-lattice-keyring>gridplus-sdk>borc>iso-url": { + "globals": { + "URL": true, + "URLSearchParams": true, + "location": true + } + }, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser": { "globals": { "intToBuffer": true @@ -4921,7 +2737,7 @@ "packages": { "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>bn.js": true, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>buffer": true, - "ethers>@ethersproject/keccak256>js-sha3": true + "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>js-sha3": true } }, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>bn.js": { @@ -4941,14 +2757,25 @@ "browserify>buffer>ieee754": true } }, - "eth-lattice-keyring>gridplus-sdk>rlp": { + "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>js-sha3": { "globals": { - "TextEncoder": true + "define": true + }, + "packages": { + "browserify>process": true } }, - "eth-lattice-keyring>gridplus-sdk>secp256k1": { + "eth-lattice-keyring>gridplus-sdk>js-sha3": { + "globals": { + "define": true + }, "packages": { - "3box>ethers>elliptic": true + "browserify>process": true + } + }, + "eth-lattice-keyring>gridplus-sdk>rlp": { + "globals": { + "TextEncoder": true } }, "eth-lattice-keyring>rlp": { @@ -4975,16 +2802,15 @@ }, "eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, "eth-sig-util>ethereumjs-util": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "ethereumjs-abi": true } }, "eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, @@ -4992,7 +2818,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-sig-util>ethereumjs-util>ethjs-util": { @@ -5002,6 +2829,25 @@ "ethjs>ethjs-util>strip-hex-prefix": true } }, + "eth-sig-util>tweetnacl": { + "globals": { + "crypto": true, + "msCrypto": true, + "nacl": "write" + }, + "packages": { + "browserify>browser-resolve": true + } + }, + "eth-sig-util>tweetnacl-util": { + "globals": { + "atob": true, + "btoa": true + }, + "packages": { + "browserify>browser-resolve": true + } + }, "eth-trezor-keyring": { "globals": { "setTimeout": true @@ -5017,9 +2863,9 @@ }, "eth-trezor-keyring>@metamask/eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethereumjs-util": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": true, "ethereumjs-abi": true @@ -5027,14 +2873,14 @@ }, "eth-trezor-keyring>@metamask/eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, - "ethereumjs-util>rlp": true + "ethereumjs-util>rlp": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": { @@ -5062,13 +2908,12 @@ }, "eth-trezor-keyring>hdkey>secp256k1": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>insert-module-globals>is-buffer": true, "eth-trezor-keyring>hdkey>secp256k1>bip66": true, - "eth-trezor-keyring>hdkey>secp256k1>drbg.js": true, "ethereumjs-util>create-hash": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-trezor-keyring>hdkey>secp256k1>bip66": { @@ -5076,12 +2921,6 @@ "ethereumjs-wallet>safe-buffer": true } }, - "eth-trezor-keyring>hdkey>secp256k1>drbg.js": { - "packages": { - "browserify>buffer": true, - "browserify>crypto-browserify>create-hmac": true - } - }, "eth-trezor-keyring>trezor-connect": { "globals": { "__TREZOR_CONNECT_SRC": true, @@ -5104,10 +2943,19 @@ "setTimeout": true }, "packages": { - "3box>graphql-request>cross-fetch": true, "@babel/runtime": true, "browserify>events": true, - "eth-trezor-keyring>@metamask/eth-sig-util": true + "eth-trezor-keyring>@metamask/eth-sig-util": true, + "eth-trezor-keyring>trezor-connect>cross-fetch": true + } + }, + "eth-trezor-keyring>trezor-connect>cross-fetch": { + "globals": { + "Blob": true, + "FileReader": true, + "FormData": true, + "URLSearchParams.prototype.isPrototypeOf": true, + "XMLHttpRequest": true } }, "ethereumjs-abi": { @@ -5119,14 +2967,14 @@ }, "ethereumjs-abi>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "ethereumjs-abi>ethereumjs-util>ethjs-util": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, - "ethereumjs-util>rlp": true + "ethereumjs-util>rlp": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-abi>ethereumjs-util>ethjs-util": { @@ -5217,12 +3065,6 @@ "ethers>@ethersproject/sha2>hash.js": true } }, - "ethereumjs-util>ethereum-cryptography>blakejs": { - "globals": { - "TextEncoder": true, - "console.log": true - } - }, "ethereumjs-util>ethereum-cryptography>browserify-aes": { "packages": { "browserify>buffer": true, @@ -5257,7 +3099,7 @@ }, "ethereumjs-util>ethereum-cryptography>secp256k1": { "packages": { - "3box>ethers>elliptic": true + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-util>rlp": { @@ -5294,21 +3136,31 @@ }, "ethereumjs-wallet>bs58check": { "packages": { - "3box>ipfs>bs58": true, "ethereumjs-util>create-hash": true, + "ethereumjs-wallet>bs58check>bs58": true, + "ethereumjs-wallet>safe-buffer": true + } + }, + "ethereumjs-wallet>bs58check>bs58": { + "packages": { + "ethereumjs-wallet>bs58check>bs58>base-x": true + } + }, + "ethereumjs-wallet>bs58check>bs58>base-x": { + "packages": { "ethereumjs-wallet>safe-buffer": true } }, "ethereumjs-wallet>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>ethereumjs-util>ethjs-util": true + "ethereumjs-wallet>ethereumjs-util>ethjs-util": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-wallet>ethereumjs-util>ethjs-util": { @@ -5780,10 +3632,10 @@ }, "ethers>@ethersproject/contracts>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/contracts>@ethersproject/bytes": true, "ethers>@ethersproject/contracts>@ethersproject/logger": true, - "ethers>@ethersproject/contracts>@ethersproject/properties": true + "ethers>@ethersproject/contracts>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/hash": { @@ -6129,10 +3981,10 @@ }, "ethers>@ethersproject/providers>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/providers>@ethersproject/bytes": true, "ethers>@ethersproject/providers>@ethersproject/logger": true, - "ethers>@ethersproject/providers>@ethersproject/properties": true + "ethers>@ethersproject/providers>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/providers>@ethersproject/web": { @@ -6212,16 +4064,16 @@ }, "ethers>@ethersproject/sha2>hash.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, "ethers>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/signing-key>@ethersproject/bytes": true, "ethers>@ethersproject/signing-key>@ethersproject/logger": true, - "ethers>@ethersproject/signing-key>@ethersproject/properties": true + "ethers>@ethersproject/signing-key>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/signing-key>@ethersproject/bytes": { @@ -6239,6 +4091,33 @@ "ethers>@ethersproject/signing-key>@ethersproject/logger": true } }, + "ethers>@ethersproject/signing-key>elliptic": { + "packages": { + "bn.js": true, + "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/signing-key>elliptic>brorand": true, + "ethers>@ethersproject/signing-key>elliptic>hmac-drbg": true, + "ethers>@ethersproject/signing-key>elliptic>minimalistic-crypto-utils": true, + "pumpify>inherits": true + } + }, + "ethers>@ethersproject/signing-key>elliptic>brorand": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "browserify>browser-resolve": true + } + }, + "ethers>@ethersproject/signing-key>elliptic>hmac-drbg": { + "packages": { + "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/signing-key>elliptic>minimalistic-crypto-utils": true + } + }, "ethers>@ethersproject/solidity": { "packages": { "@ethersproject/bignumber": true, @@ -6360,7 +4239,7 @@ }, "ethers>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, + "ethers>@ethersproject/signing-key>elliptic": true, "ethers>@ethersproject/transactions>@ethersproject/bytes": true, "ethers>@ethersproject/transactions>@ethersproject/logger": true, "ethers>@ethersproject/transactions>@ethersproject/properties": true @@ -6418,7 +4297,15 @@ "ethers>@ethersproject/wallet>@ethersproject/keccak256": { "packages": { "@ethersproject/bignumber>@ethersproject/bytes": true, - "ethers>@ethersproject/keccak256>js-sha3": true + "ethers>@ethersproject/wallet>@ethersproject/keccak256>js-sha3": true + } + }, + "ethers>@ethersproject/wallet>@ethersproject/keccak256>js-sha3": { + "globals": { + "define": true + }, + "packages": { + "browserify>process": true } }, "ethers>@ethersproject/wallet>@ethersproject/properties": { @@ -6434,9 +4321,9 @@ }, "ethers>@ethersproject/wallet>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "@ethersproject/bignumber>@ethersproject/bytes": true, "@ethersproject/bignumber>@ethersproject/logger": true, + "ethers>@ethersproject/signing-key>elliptic": true, "ethers>@ethersproject/wallet>@ethersproject/properties": true } }, @@ -6549,10 +4436,10 @@ "ethjs-contract": { "packages": { "ethjs-contract>ethjs-abi": true, - "ethjs-contract>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, @@ -6560,20 +4447,10 @@ "packages": { "browserify>buffer": true, "ethjs-contract>ethjs-abi>bn.js": true, - "ethjs-contract>ethjs-abi>js-sha3": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, - "ethjs-contract>ethjs-abi>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-contract>js-sha3": { - "packages": { - "browserify>process": true - } - }, "ethjs-query": { "globals": { "console": true @@ -6690,9 +4567,13 @@ "define": true } }, + "ganache>secp256k1": { + "packages": { + "ethers>@ethersproject/signing-key>elliptic": true + } + }, "gh-pages>async": { "globals": { - "clearTimeout": true, "setTimeout": true }, "packages": { @@ -6795,34 +4676,6 @@ "Intl": true } }, - "madge>rc>deep-extend": { - "packages": { - "browserify>buffer": true - } - }, - "mockttp>node-forge": { - "globals": { - "Blob": true, - "MutationObserver": true, - "QuotaExceededError": true, - "URL.createObjectURL": true, - "URL.revokeObjectURL": true, - "Worker": true, - "addEventListener": true, - "document": true, - "jQuery": true, - "localStorage": true, - "navigator": true, - "postMessage": true, - "removeEventListener": true, - "setTimeout": true - }, - "packages": { - "browserify>browser-resolve": true, - "browserify>process": true, - "browserify>timers-browserify": true - } - }, "nanoid": { "globals": { "crypto": true, @@ -6970,12 +4823,6 @@ "react-devtools>react-devtools-core": true } }, - "react-devtools>ip": { - "packages": { - "browserify>buffer": true, - "browserify>os-browserify": true - } - }, "react-devtools>react-devtools-core": { "globals": { "WebSocket": true, @@ -7391,8 +5238,13 @@ "setTimeout": true }, "packages": { - "3box>events": true, - "browserify>util": true + "browserify>util": true, + "safe-event-emitter>events": true + } + }, + "safe-event-emitter>events": { + "globals": { + "console": true } }, "semver": { @@ -7444,12 +5296,6 @@ "string.prototype.matchall>call-bind": true } }, - "stylelint>write-file-atomic>typedarray-to-buffer": { - "packages": { - "browserify>buffer": true, - "jsdom>request>is-typedarray": true - } - }, "textarea-caret": { "globals": { "document.body.appendChild": true, @@ -7501,11 +5347,6 @@ "console.warn": true, "define": true } - }, - "webpack>memory-fs>errno": { - "packages": { - "webpack>memory-fs>errno>prr": true - } } } } \ No newline at end of file diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index e0f95b6f6cd5..613739559cf2 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -1,2194 +1,5 @@ { "resources": { - "3box": { - "globals": { - "console.error": true, - "console.log": true, - "console.warn": true, - "fetch": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins": true, - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>3id-resolver": true, - "3box>did-jwt": true, - "3box>ethers": true, - "3box>ethers>elliptic": true, - "3box>graphql-request": true, - "3box>https-did-resolver": true, - "3box>ipfs": true, - "3box>ipfs-did-document": true, - "3box>ipfs-mini": true, - "3box>ipfs>is-ipfs": true, - "3box>ipfs>multihashes": true, - "3box>js-sha256": true, - "3box>muport-did-resolver": true, - "3box>orbit-db": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-identity-provider": true, - "3box>orbit-db>orbit-db-pubsub": true, - "3box>store": true, - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, - "@babel/runtime": true, - "browserify>buffer": true, - "browserify>process": true, - "node-fetch": true - } - }, - "3box>3box-orbitdb-plugins": { - "globals": { - "console.log": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>3id-resolver>did-jwt": true, - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ipfs>is-ipfs": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>events": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>3box-orbitdb-plugins>ipfs-log": { - "globals": { - "clearTimeout": true, - "console.warn": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log>json-stringify-deterministic": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-each-series": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-map": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-whilst": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>buffer": true - } - }, - "3box>3id-resolver": { - "packages": { - "3box>3id-resolver>did-jwt": true, - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ipfs-did-document": true, - "@babel/runtime": true - } - }, - "3box>3id-resolver>did-jwt": { - "packages": { - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ethers>elliptic": true, - "3box>js-sha256": true, - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, - "@babel/runtime": true, - "browserify>buffer": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>3id-resolver>did-jwt>base64url": { - "packages": { - "browserify>buffer": true - } - }, - "3box>did-jwt": { - "packages": { - "3box>did-jwt>@stablelib/utf8": true, - "3box>did-jwt>did-resolver": true, - "3box>did-jwt>js-sha3": true, - "3box>did-jwt>uport-base64url": true, - "3box>ethers>elliptic": true, - "3box>js-sha256": true, - "3box>tweetnacl": true, - "browserify>buffer": true - } - }, - "3box>did-jwt>js-sha3": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>did-jwt>uport-base64url": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ethers": { - "globals": { - "MessageChannel": true, - "XMLHttpRequest": true, - "atob": true, - "btoa": true, - "clearInterval": true, - "clearTimeout": true, - "console": true, - "crypto.getRandomValues": true, - "define": true, - "setInterval": true, - "setTimeout": true - } - }, - "3box>ethers>elliptic": { - "packages": { - "3box>ethers>elliptic>brorand": true, - "3box>ethers>elliptic>hmac-drbg": true, - "3box>ethers>elliptic>minimalistic-crypto-utils": true, - "3box>ethers>hash.js>minimalistic-assert": true, - "bn.js": true, - "ethers>@ethersproject/sha2>hash.js": true, - "pumpify>inherits": true - } - }, - "3box>ethers>elliptic>brorand": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "3box>ethers>elliptic>hmac-drbg": { - "packages": { - "3box>ethers>elliptic>minimalistic-crypto-utils": true, - "3box>ethers>hash.js>minimalistic-assert": true, - "ethers>@ethersproject/sha2>hash.js": true - } - }, - "3box>events": { - "globals": { - "console": true - } - }, - "3box>graphql-request": { - "globals": { - "fetch": true - }, - "packages": { - "3box>graphql-request>cross-fetch": true - } - }, - "3box>graphql-request>cross-fetch": { - "globals": { - "Blob": true, - "FileReader": true, - "FormData": true, - "URLSearchParams.prototype.isPrototypeOf": true, - "XMLHttpRequest": true - } - }, - "3box>graphql-request>cross-fetch>node-fetch": { - "globals": { - "fetch": true - } - }, - "3box>https-did-resolver": { - "globals": { - "XMLHttpRequest": true - }, - "packages": { - "3box>did-jwt>did-resolver": true, - "browserify>browser-resolve": true - } - }, - "3box>ipfs": { - "globals": { - "AbortController": true, - "clearInterval": true, - "clearTimeout": true, - "console.log": true, - "fetch": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>async-iterator-all": true, - "3box>ipfs>async-iterator-to-pull-stream": true, - "3box>ipfs>async-iterator-to-stream": true, - "3box>ipfs>base32.js": true, - "3box>ipfs>bignumber.js": true, - "3box>ipfs>callbackify": true, - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "3box>ipfs>datastore-core": true, - "3box>ipfs>datastore-pubsub": true, - "3box>ipfs>dlv": true, - "3box>ipfs>err-code": true, - "3box>ipfs>fnv1a": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>human-to-milliseconds": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-bitswap": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipfs-block-service": true, - "3box>ipfs>ipfs-mfs": true, - "3box>ipfs>ipfs-repo": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-exporter": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "3box>ipfs>ipfs-utils": true, - "3box>ipfs>ipld": true, - "3box>ipfs>ipld-dag-cbor": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw": true, - "3box>ipfs>ipns": true, - "3box>ipfs>is-ipfs": true, - "3box>ipfs>is-pull-stream": true, - "3box>ipfs>iso-url": true, - "3box>ipfs>just-flatten-it": true, - "3box>ipfs>kind-of": true, - "3box>ipfs>libp2p": true, - "3box>ipfs>libp2p-bootstrap": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-kad-dht": true, - "3box>ipfs>libp2p-keychain": true, - "3box>ipfs>libp2p-record": true, - "3box>ipfs>libp2p-secio": true, - "3box>ipfs>libp2p-webrtc-star": true, - "3box>ipfs>libp2p-websocket-star-multi": true, - "3box>ipfs>libp2p-websockets": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multiaddr-to-uri": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async": true, - "3box>ipfs>peer-book": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>promisify-es6": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-cat": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-mplex": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-sort": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>pull-stream-to-async-iterator": true, - "3box>ipfs>pull-stream-to-stream": true, - "3box>ipfs>pull-traverse": true, - "3box>ipfs>readable-stream": true, - "3box>ipfs>receptacle": true, - "3box>ipfs>stream-to-pull-stream": true, - "3box>ipfs>superstruct": true, - "3box>ipfs>varint": true, - "@metamask/providers>is-stream": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "browserify>timers-browserify": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs-mini": { - "globals": { - "XMLHttpRequest": true - } - }, - "3box>ipfs-postmsg-proxy>shortid": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "nanoid": true - } - }, - "3box>ipfs>async-iterator-to-pull-stream": { - "packages": { - "3box>ipfs>async-iterator-to-pull-stream>get-iterator": true, - "3box>ipfs>pull-stream-to-async-iterator": true - } - }, - "3box>ipfs>async-iterator-to-stream": { - "packages": { - "3box>ipfs>async-iterator-to-stream>readable-stream": true, - "browserify>process": true - } - }, - "3box>ipfs>async-iterator-to-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>bl": { - "packages": { - "3box>ipfs>bl>readable-stream": true, - "browserify>buffer": true, - "browserify>util": true - } - }, - "3box>ipfs>bl>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>bs58": { - "packages": { - "3box>ipfs>bs58>base-x": true - } - }, - "3box>ipfs>bs58>base-x": { - "packages": { - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>cids": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>datastore-core": { - "packages": { - "3box>ipfs>datastore-core>pull-many": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>datastore-pubsub": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>multibase": true, - "browserify>assert": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>dlv": { - "globals": { - "define": true - } - }, - "3box>ipfs>fsm-event": { - "packages": { - "3box>ipfs>fsm-event>fsm": true, - "browserify>assert": true, - "browserify>events": true - } - }, - "3box>ipfs>human-to-milliseconds": { - "packages": { - "3box>ipfs>promisify-es6": true - } - }, - "3box>ipfs>interface-datastore": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore>uuid": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>os-browserify": true, - "browserify>path-browserify": true, - "gh-pages>async": true - } - }, - "3box>ipfs>interface-datastore>uuid": { - "globals": { - "crypto": true, - "msCrypto": true - } - }, - "3box>ipfs>ipfs-bitswap": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipfs-bitswap>bignumber.js": true, - "3box>ipfs>ipfs-bitswap>just-debounce-it": true, - "3box>ipfs>ipfs-bitswap>lodash.isequalwith": true, - "3box>ipfs>ipfs-bitswap>moving-average": true, - "3box>ipfs>ipfs-bitswap>multihashing-async": true, - "3box>ipfs>ipfs-bitswap>varint-decoder": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-bitswap>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>ipfs-bitswap>just-debounce-it": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>ipfs-bitswap>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>ipfs-bitswap>varint-decoder": { - "packages": { - "3box>ipfs>varint": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-block": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-block-service": { - "packages": { - "gh-pages>async": true - } - }, - "3box>ipfs>ipfs-mfs": { - "globals": { - "Blob": true, - "FileReader": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-mfs>async-iterator-last": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-mfs>mortice": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-exporter": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>promisify-es6": true, - "browserify>assert": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-mfs>hamt-sharding": { - "packages": { - "3box>ipfs>ipfs-mfs>hamt-sharding>sparse-array": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-mfs>mortice": { - "globals": { - "Worker": true - }, - "packages": { - "3box>ipfs-postmsg-proxy>shortid": true, - "3box>ipfs>ipfs-mfs>mortice>observable-webworkers": true, - "3box>ipfs>ipfs-mfs>mortice>promise-timeout": true, - "3box>ipfs>libp2p-kad-dht>p-queue": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true - } - }, - "3box>ipfs>ipfs-mfs>mortice>promise-timeout": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>ipfs-repo": { - "packages": { - "3box>ipfs>base32.js": true, - "3box>ipfs>cids": true, - "3box>ipfs>datastore-core": true, - "3box>ipfs>dlv": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipfs-repo>bignumber.js": true, - "3box>ipfs>ipfs-repo>datastore-level": true, - "3box>ipfs>ipfs-repo>sort-keys": true, - "3box>ipfs>just-safe-set": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>path-browserify": true, - "browserify>timers-browserify": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-repo>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level": { - "packages": { - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down": true, - "3box>ipfs>ipfs-repo>datastore-level>level-js": true, - "3box>ipfs>pull-stream": true, - "3box>orbit-db>orbit-db-keystore>levelup": true, - "browserify>buffer": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down": { - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown": true, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>level-codec": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown": { - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown>level-supports": true, - "3box>orbit-db>orbit-db-cache>level-js>immediate": true, - "browserify>buffer": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown>level-supports": { - "packages": { - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>level-codec": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.only": true, - "IDBKeyRange.upperBound": true, - "indexedDB.deleteDatabase": true, - "indexedDB.open": true - }, - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>level-js>abstract-leveldown": true, - "3box>ipfs>ipfs-repo>datastore-level>level-js>idb-readable-stream": true, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": true, - "browserify>buffer": true, - "browserify>process": true, - "browserify>stream-browserify": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js>abstract-leveldown": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js>idb-readable-stream": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.upperBound": true - }, - "packages": { - "browserify>stream-browserify": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>sort-keys": { - "packages": { - "geckodriver>got>is-plain-obj": true - } - }, - "3box>ipfs>ipfs-unixfs": { - "packages": { - "3box>ipfs>protons": true - } - }, - "3box>ipfs>ipfs-unixfs-exporter": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>ipfs-mfs>async-iterator-last": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-unixfs-importer": { - "packages": { - "3box>ipfs>async-iterator-all": true, - "3box>ipfs>bl": true, - "3box>ipfs>err-code": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true, - "3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true, - "3box>ipfs>ipfs-unixfs-importer>superstruct": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "madge>rc>deep-extend": true - } - }, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { - "globals": { - "Blob": true, - "Response": true, - "WebAssembly": true - }, - "packages": { - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm>assemblyscript": true - } - }, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm>assemblyscript": { - "globals": { - "WebAssembly.Instance": true, - "WebAssembly.Module": true, - "WebAssembly.instantiateStreaming": true, - "console.log": true - } - }, - "3box>ipfs>ipfs-utils": { - "globals": { - "FileReader": true - }, - "packages": { - "3box>ipfs>ipfs-utils>is-buffer": true, - "3box>ipfs>ipfs-utils>readable-stream": true, - "3box>ipfs>is-pull-stream": true, - "3box>ipfs>kind-of": true, - "@metamask/providers>is-stream": true - } - }, - "3box>ipfs>ipfs-utils>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>ipld": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipld-dag-cbor": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw": true, - "3box>ipfs>ipld>typical": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>promisify-es6": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipld-dag-cbor": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-dag-cbor>is-circular": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "eth-lattice-keyring>gridplus-sdk>borc": true - } - }, - "3box>ipfs>ipld-dag-pb": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>protons": true, - "@storybook/react>@storybook/store>stable": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipld-raw": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true - } - }, - "3box>ipfs>ipld-raw>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>ipld-raw>multihashing-async>murmurhash3js-revisited": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>ipld-raw>multihashing-async>murmurhash3js-revisited": { - "globals": { - "define": true - } - }, - "3box>ipfs>ipld>typical": { - "globals": { - "define": true - } - }, - "3box>ipfs>ipns": { - "packages": { - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipns>timestamp-nano": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>protons": true, - "base32-encode": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>is-ipfs": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>cids": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true - } - }, - "3box>ipfs>iso-url": { - "globals": { - "URL": true, - "URLSearchParams": true, - "location": true - } - }, - "3box>ipfs>libp2p": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>libp2p-websockets": true, - "3box>ipfs>libp2p>libp2p-connection-manager": true, - "3box>ipfs>libp2p>libp2p-floodsub": true, - "3box>ipfs>libp2p>libp2p-ping": true, - "3box>ipfs>libp2p>libp2p-switch": true, - "3box>ipfs>libp2p>superstruct": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-book": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-bootstrap": { - "globals": { - "clearInterval": true, - "setInterval": true - }, - "packages": { - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p-crypto": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>libp2p-crypto>asn1.js": true, - "3box>ipfs>libp2p-crypto>iso-random-stream": true, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": true, - "3box>ipfs>libp2p-crypto>multihashing-async": true, - "3box>ipfs>protons": true, - "3box>tweetnacl": true, - "browserify>buffer": true, - "ethereumjs-util>ethereum-cryptography>browserify-aes": true, - "gh-pages>async": true, - "mockttp>node-forge": true - } - }, - "3box>ipfs>libp2p-crypto>asn1.js": { - "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, - "bn.js": true, - "browserify>buffer": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-crypto>iso-random-stream": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": true, - "eth-trezor-keyring>hdkey>secp256k1": true, - "gh-pages>async": true - } - }, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-crypto>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-kad-dht": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>base32.js": true, - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-kad-dht>hashlru": true, - "3box>ipfs>libp2p-kad-dht>heap": true, - "3box>ipfs>libp2p-kad-dht>k-bucket": true, - "3box>ipfs>libp2p-kad-dht>multihashing-async": true, - "3box>ipfs>libp2p-kad-dht>p-queue": true, - "3box>ipfs>libp2p-kad-dht>p-times": true, - "3box>ipfs>libp2p-kad-dht>xor-distance": true, - "3box>ipfs>libp2p-record": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>promisify-es6": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>pull-stream-to-async-iterator": true, - "3box>ipfs>varint": true, - "@metamask/controllers>abort-controller": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "promise-to-callback": true - } - }, - "3box>ipfs>libp2p-kad-dht>heap": { - "globals": { - "define": true - } - }, - "3box>ipfs>libp2p-kad-dht>k-bucket": { - "packages": { - "browserify>events": true, - "ethereumjs-wallet>randombytes": true - } - }, - "3box>ipfs>libp2p-kad-dht>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-kad-dht>p-queue": { - "globals": { - "clearInterval": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "mockttp>@httptoolkit/subscriptions-transport-ws>eventemitter3": true - } - }, - "3box>ipfs>libp2p-kad-dht>p-times": { - "packages": { - "3box>ipfs>libp2p-kad-dht>p-times>p-map": true - } - }, - "3box>ipfs>libp2p-kad-dht>xor-distance": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-keychain": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-keychain>sanitize-filename": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "gh-pages>async": true, - "mockttp>node-forge": true - } - }, - "3box>ipfs>libp2p-keychain>sanitize-filename": { - "packages": { - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes": true - } - }, - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes": { - "packages": { - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes>utf8-byte-length": true - } - }, - "3box>ipfs>libp2p-record": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-record>buffer-split": true, - "3box>ipfs>libp2p-record>multihashing-async": true, - "3box>ipfs>protons": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>libp2p-record>buffer-split": { - "packages": { - "3box>ipfs>libp2p-record>buffer-split>buffer-indexof": true - } - }, - "3box>ipfs>libp2p-record>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-secio": { - "packages": { - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>multihashing-async": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-secio>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-secio>pull-handshake": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": true, - "3box>ipfs>pull-cat": true, - "3box>ipfs>pull-mplex>pull-pair": true, - "3box>ipfs>pull-pushable": true - } - }, - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": { - "globals": { - "cb": true, - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-secio>pull-length-prefixed": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>varint": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>libp2p-webrtc-star": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-webrtc-star>simple-peer": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, - "3box>ipfs>libp2p-webrtc-star>webrtcsupport": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>stream-to-pull-stream": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer": { - "globals": { - "clearInterval": true, - "console.warn": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": true, - "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": true, - "browserify>buffer": true, - "ethereumjs-wallet>randombytes": true, - "nock>debug": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": { - "globals": { - "RTCIceCandidate": true, - "RTCPeerConnection": true, - "RTCSessionDescription": true, - "mozRTCIceCandidate": true, - "mozRTCPeerConnection": true, - "mozRTCSessionDescription": true, - "webkitRTCIceCandidate": true, - "webkitRTCPeerConnection": true, - "webkitRTCSessionDescription": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": { - "globals": { - "clearTimeout": true, - "location": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>component-bind": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>indexof": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseqs": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseuri": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>to-array": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": true, - "mockttp>@httptoolkit/subscriptions-transport-ws>backo2": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client": { - "globals": { - "MozWebSocket": true, - "WebSocket": true, - "XDomainRequest": true, - "XMLHttpRequest": true, - "addEventListener": true, - "attachEvent": true, - "clearTimeout": true, - "document": true, - "location": true, - "navigator": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>component-inherit": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>has-cors": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>yeast": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>indexof": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseqs": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseuri": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser": { - "globals": { - "FileReader": true, - "btoa": true, - "navigator": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>after": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>arraybuffer.slice": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>blob": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>engine.io>engine.io-parser>base64-arraybuffer": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>blob": { - "globals": { - "Blob": true, - "MSBlobBuilder": true, - "MozBlobBuilder": true, - "WebKitBlobBuilder": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>has-cors": { - "globals": { - "XMLHttpRequest": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser": { - "globals": { - "Blob": true, - "File": true, - "FileReader": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>isarray": true, - "browserify>buffer": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": { - "globals": { - "Blob": true, - "File": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2>isarray": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-webrtc-star>webrtcsupport": { - "globals": { - "AudioContext": true, - "MediaStream": true, - "RTCIceCandidate": true, - "RTCPeerConnection": true, - "RTCSessionDescription": true, - "document": true, - "location.protocol": true, - "mozRTCIceCandidate": true, - "mozRTCPeerConnection": true, - "mozRTCSessionDescription": true, - "navigator.getUserMedia": true, - "navigator.mozGetUserMedia": true, - "navigator.msGetUserMedia": true, - "navigator.userAgent.match": true, - "navigator.webkitGetUserMedia": true, - "webkitAudioContext": true, - "webkitMediaStream": true, - "webkitRTCPeerConnection": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true, - "uuid": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>data-queue": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>debug": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>uuid": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>data-queue": { - "packages": { - "browserify>events": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>debug": { - "globals": { - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "browserify>process": true, - "gulp-livereload>debug>ms": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>uuid": { - "globals": { - "crypto": true, - "msCrypto": true - } - }, - "3box>ipfs>libp2p-websockets": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-websockets>pull-ws": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multiaddr-to-uri": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "browserify>os-browserify": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p-websockets>pull-ws": { - "globals": { - "WebSocket": true, - "location": true - }, - "packages": { - "3box>ipfs>libp2p-websockets>pull-ws>relative-url": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>https-browserify": true, - "browserify>process": true, - "browserify>stream-http": true, - "browserify>timers-browserify": true, - "browserify>url": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>libp2p-websockets>pull-ws>relative-url": { - "packages": { - "browserify>url": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager": { - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": true, - "browserify>events": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "document": true, - "performance": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug": true, - "browserify>events": true, - "browserify>process": true, - "lodash": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub": { - "packages": { - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": { - "packages": { - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache>lodash.throttle": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache>lodash.throttle": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>libp2p>libp2p-ping": { - "packages": { - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>pull-stream": true, - "browserify>events": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-switch": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>err-code": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>ipfs-bitswap>moving-average": true, - "3box>ipfs>libp2p-kad-dht>hashlru": true, - "3box>ipfs>libp2p>libp2p-switch>bignumber.js": true, - "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": true, - "3box>ipfs>libp2p>libp2p-switch>libp2p-identify": true, - "3box>ipfs>libp2p>libp2p-switch>multistream-select": true, - "3box>ipfs>libp2p>libp2p-switch>retimer": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>libp2p-identify": { - "globals": { - "console.warn": true - }, - "packages": { - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>multistream-select": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-switch>multistream-select>semver": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>varint": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>multistream-select>semver": { - "globals": { - "console": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>retimer": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>mafmt": { - "packages": { - "3box>ipfs>multiaddr": true - } - }, - "3box>ipfs>merge-options": { - "packages": { - "geckodriver>got>is-plain-obj": true - } - }, - "3box>ipfs>multiaddr": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>class-is": true, - "3box>ipfs>multiaddr>hi-base32": true, - "3box>ipfs>multiaddr>is-ip": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "react-devtools>ip": true - } - }, - "3box>ipfs>multiaddr-to-uri": { - "packages": { - "3box>ipfs>multiaddr": true - } - }, - "3box>ipfs>multiaddr>hi-base32": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>ipfs>multiaddr>is-ip": { - "packages": { - "chromedriver>tcp-port-used>is2>ip-regex": true - } - }, - "3box>ipfs>multibase": { - "packages": { - "3box>ipfs>multibase>base-x": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multibase>base-x": { - "packages": { - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>multicodec": { - "packages": { - "3box>ipfs>varint": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multihashes": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>varint": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>multihashing-async>murmurhash3js": { - "globals": { - "define": true - } - }, - "3box>ipfs>multihashing-async>nodeify": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>multihashing-async>nodeify>is-promise": true, - "3box>ipfs>multihashing-async>nodeify>promise": true, - "browserify>process": true, - "browserify>timers-browserify": true - } - }, - "3box>ipfs>multihashing-async>nodeify>promise": { - "globals": { - "setImediate": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>multihashing-async>nodeify>is-promise": true, - "browserify>process": true - } - }, - "3box>ipfs>peer-book": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>peer-id": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>multihashes": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>peer-info": { - "packages": { - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info>unique-by": true, - "browserify>assert": true - } - }, - "3box>ipfs>protons": { - "packages": { - "3box>ipfs>protons>protocol-buffers-schema": true, - "3box>ipfs>protons>signed-varint": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>protons>signed-varint": { - "packages": { - "3box>ipfs>varint": true - } - }, - "3box>ipfs>pull-mplex": { - "packages": { - "3box>ipfs>pull-abortable": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-mplex>looper": true, - "3box>ipfs>pull-mplex>pull-through": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>pull-mplex>interface-connection": { - "packages": { - "3box>ipfs>pull-defer": true - } - }, - "3box>ipfs>pull-mplex>pull-through": { - "packages": { - "3box>ipfs>stream-to-pull-stream>looper": true - } - }, - "3box>ipfs>pull-sort": { - "packages": { - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-stream": true - } - }, - "3box>ipfs>pull-stream": { - "globals": { - "console.log": true - } - }, - "3box>ipfs>pull-stream-to-async-iterator": { - "packages": { - "3box>ipfs>pull-stream": true - } - }, - "3box>ipfs>pull-stream-to-stream": { - "packages": { - "browserify>process": true, - "browserify>stream-browserify": true, - "browserify>timers-browserify": true - } - }, - "3box>ipfs>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>receptacle": { - "globals": { - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "gulp-livereload>debug>ms": true - } - }, - "3box>ipfs>stream-to-pull-stream": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>pull-stream": true, - "3box>ipfs>stream-to-pull-stream>looper": true, - "browserify>process": true - } - }, - "3box>js-sha256": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>muport-did-resolver": { - "packages": { - "3box>did-jwt>did-resolver": true, - "@babel/runtime": true, - "node-fetch": true - } - }, - "3box>orbit-db": { - "globals": { - "console.log": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>multihashes": true, - "3box>orbit-db>ipfs-pubsub-1on1": true, - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-cache": true, - "3box>orbit-db>orbit-db-counterstore": true, - "3box>orbit-db>orbit-db-docstore": true, - "3box>orbit-db>orbit-db-eventstore": true, - "3box>orbit-db>orbit-db-feedstore": true, - "3box>orbit-db>orbit-db-identity-provider": true, - "3box>orbit-db>orbit-db-io": true, - "3box>orbit-db>orbit-db-keystore": true, - "3box>orbit-db>orbit-db-kvstore": true, - "3box>orbit-db>orbit-db-pubsub": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>ipfs-pubsub-1on1": { - "globals": { - "clearInterval": true, - "setInterval": true - }, - "packages": { - "3box>orbit-db>ipfs-pubsub-1on1>safe-buffer": true, - "browserify>events": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>ipfs-pubsub-1on1>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "3box>orbit-db>logplease": { - "globals": { - "LOG": true, - "console.error": true, - "console.log": true - }, - "packages": { - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>util": true - } - }, - "3box>orbit-db>orbit-db-access-controllers": { - "globals": { - "console.log": true - }, - "packages": { - "3box>orbit-db>orbit-db-access-controllers>p-map-series": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>events": true, - "browserify>path-browserify": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>orbit-db>orbit-db-access-controllers>p-map-series": { - "packages": { - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>orbit-db>orbit-db-cache": { - "packages": { - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-cache>level-js": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.upperBound": true, - "indexedDB": true - }, - "packages": { - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": true, - "3box>orbit-db>orbit-db-cache>level-js>immediate": true, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "pumpify>inherits": true, - "stylelint>write-file-atomic>typedarray-to-buffer": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>immediate": { - "globals": { - "MessageChannel": true, - "MutationObserver": true, - "WebKitMutationObserver": true, - "clearTimeout": true, - "document.createElement": true, - "document.createTextNode": true, - "document.documentElement.appendChild": true, - "setImmediate": true, - "setTimeout": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": { - "packages": { - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>orbit-db>orbit-db-counterstore": { - "packages": { - "3box>orbit-db>orbit-db-counterstore>crdts": true, - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-docstore": { - "packages": { - "3box>orbit-db>orbit-db-docstore>p-map": true, - "3box>orbit-db>orbit-db-store": true, - "readable-stream": true - } - }, - "3box>orbit-db>orbit-db-eventstore": { - "packages": { - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-feedstore": { - "packages": { - "3box>orbit-db>orbit-db-eventstore": true - } - }, - "3box>orbit-db>orbit-db-identity-provider": { - "packages": { - "3box>orbit-db>orbit-db-keystore": true - } - }, - "3box>orbit-db>orbit-db-io": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-dag-pb": true, - "browserify>buffer": true - } - }, - "3box>orbit-db>orbit-db-keystore": { - "globals": { - "console.error": true, - "console.log": true - }, - "packages": { - "3box>ethers>elliptic": true, - "3box>ipfs>libp2p-crypto": true, - "3box>orbit-db>orbit-db-cache>level-js": true, - "3box>orbit-db>orbit-db-keystore>levelup": true, - "3box>orbit-db>orbit-db-keystore>lru": true, - "eth-trezor-keyring>hdkey>secp256k1": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup": { - "packages": { - "3box>orbit-db>orbit-db-keystore>levelup>deferred-leveldown": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream": true, - "browserify>assert": true, - "browserify>events": true, - "browserify>process": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>deferred-leveldown": { - "packages": { - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": { - "packages": { - "webpack>memory-fs>errno": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream": { - "packages": { - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream>readable-stream": true, - "pumpify>inherits": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-keystore>lru": { - "packages": { - "browserify>events": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-kvstore": { - "packages": { - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-pubsub": { - "packages": { - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-pubsub>ipfs-pubsub-peer-monitor": true, - "3box>orbit-db>orbit-db-pubsub>p-series": true, - "browserify>buffer": true - } - }, - "3box>orbit-db>orbit-db-pubsub>ipfs-pubsub-peer-monitor": { - "globals": { - "clearInterval": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "browserify>events": true - } - }, - "3box>orbit-db>orbit-db-pubsub>p-series": { - "packages": { - "3box>orbit-db>orbit-db-pubsub>p-series>@sindresorhus/is": true, - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>orbit-db>orbit-db-pubsub>p-series>@sindresorhus/is": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>util": true - } - }, - "3box>orbit-db>orbit-db-store": { - "globals": { - "clearInterval": true, - "console.error": true, - "console.warn": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>ipfs>libp2p-kad-dht>p-times>p-map": true, - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-io": true, - "3box>orbit-db>orbit-db-store>p-each-series": true, - "browserify>buffer": true, - "browserify>events": true, - "readable-stream": true - } - }, - "3box>orbit-db>orbit-db-store>p-each-series": { - "packages": { - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>store": { - "globals": { - "ActiveXObject": true, - "console": true - } - }, - "3box>tweetnacl": { - "globals": { - "crypto": true, - "msCrypto": true, - "nacl": "write" - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "3box>tweetnacl-util": { - "globals": { - "atob": true, - "btoa": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, "@babel/code-frame": { "globals": { "console.warn": true @@ -2381,9 +192,9 @@ }, "@ensdomains/content-hash>cids>multihashes": { "packages": { - "3box>ipfs>varint": true, "@ensdomains/content-hash>cids>multibase": true, - "@ensdomains/content-hash>cids>uint8arrays": true + "@ensdomains/content-hash>cids>uint8arrays": true, + "@ensdomains/content-hash>multihashes>varint": true } }, "@ensdomains/content-hash>cids>uint8arrays": { @@ -2428,17 +239,17 @@ }, "@ensdomains/content-hash>multihashes": { "packages": { - "3box>ipfs>varint": true, "@ensdomains/content-hash>multihashes>multibase": true, + "@ensdomains/content-hash>multihashes>varint": true, "@ensdomains/content-hash>multihashes>web-encoding": true, "browserify>buffer": true } }, "@ensdomains/content-hash>multihashes>multibase": { "packages": { - "3box>ipfs>bs58>base-x": true, "@ensdomains/content-hash>multihashes>web-encoding": true, - "browserify>buffer": true + "browserify>buffer": true, + "ethereumjs-wallet>bs58check>bs58>base-x": true } }, "@ensdomains/content-hash>multihashes>web-encoding": { @@ -2565,7 +376,7 @@ }, "@keystonehq/bc-ur-registry-eth>hdkey>secp256k1": { "packages": { - "3box>ethers>elliptic": true + "ethers>@ethersproject/signing-key>elliptic": true } }, "@keystonehq/metamask-airgapped-keyring": { @@ -2995,38 +806,38 @@ "@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true, "@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true, - "@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>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>bn.js": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>bn.js": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3041,11 +852,6 @@ "promise-to-callback": true } }, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": { - "packages": { - "browserify>process": true - } - }, "@metamask/controllers>eth-phishing-detect": { "packages": { "eslint>optionator>fast-levenshtein": true @@ -3210,7 +1016,6 @@ }, "@metamask/controllers>web3-provider-engine>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/controllers>web3-provider-engine>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3218,7 +1023,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/controllers>web3-provider-engine>ethereumjs-util>ethjs-util": { @@ -3308,7 +1114,6 @@ }, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3316,7 +1121,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util>ethjs-util": { @@ -3346,16 +1152,15 @@ }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util": true, "browserify>buffer": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "ethereumjs-abi": true } }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3363,7 +1168,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util>ethjs-util": { @@ -3375,13 +1181,23 @@ }, "@metamask/eth-ledger-bridge-keyring>hdkey": { "packages": { + "@metamask/eth-ledger-bridge-keyring>hdkey>secp256k1": true, "browserify>assert": true, "browserify>crypto-browserify": true, "eth-trezor-keyring>hdkey>coinstring": true, - "eth-trezor-keyring>hdkey>secp256k1": true, "ethereumjs-wallet>safe-buffer": true } }, + "@metamask/eth-ledger-bridge-keyring>hdkey>secp256k1": { + "packages": { + "bn.js": true, + "browserify>insert-module-globals>is-buffer": true, + "eth-trezor-keyring>hdkey>secp256k1>bip66": true, + "ethereumjs-util>create-hash": true, + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true + } + }, "@metamask/eth-token-tracker": { "globals": { "console.warn": true @@ -3440,38 +1256,38 @@ "@metamask/eth-token-tracker>ethjs>ethjs-abi": true, "@metamask/eth-token-tracker>ethjs>ethjs-contract": true, "@metamask/eth-token-tracker>ethjs>ethjs-query": true, - "@metamask/eth-token-tracker>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>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-abi": { "packages": { "@metamask/eth-token-tracker>ethjs>bn.js": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-contract": { "packages": { "@metamask/eth-token-tracker>ethjs>ethjs-contract>ethjs-abi": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-contract>ethjs-abi": { "packages": { "@metamask/eth-token-tracker>ethjs>bn.js": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3486,11 +1302,6 @@ "promise-to-callback": true } }, - "@metamask/eth-token-tracker>ethjs>js-sha3": { - "packages": { - "browserify>process": true - } - }, "@metamask/etherscan-link": { "globals": { "URL": true @@ -3649,38 +1460,38 @@ "@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>js-sha3": 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>js-sha3": 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, + "ethjs>js-sha3": 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>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3695,11 +1506,6 @@ "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, @@ -3840,38 +1646,38 @@ "@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>js-sha3": 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>js-sha3": 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, + "ethjs>js-sha3": 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>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3886,11 +1692,6 @@ "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, @@ -4042,38 +1843,38 @@ "@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>js-sha3": 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>js-sha3": 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, + "ethjs>js-sha3": 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>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -4088,11 +1889,6 @@ "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, @@ -4310,7 +2106,6 @@ }, "@metamask/snap-controllers>tar-stream": { "packages": { - "@metamask/snap-controllers>tar-stream>bl": true, "@metamask/snap-controllers>tar-stream>fs-constants": true, "@metamask/snap-controllers>tar-stream>readable-stream": true, "browserify>buffer": true, @@ -4318,13 +2113,7 @@ "browserify>string_decoder": true, "browserify>util": true, "end-of-stream": true, - "pumpify>inherits": true - } - }, - "@metamask/snap-controllers>tar-stream>bl": { - "packages": { - "@metamask/snap-controllers>tar-stream>readable-stream": true, - "browserify>buffer": true, + "madge>ora>bl": true, "pumpify>inherits": true } }, @@ -4559,11 +2348,6 @@ "localStorage": true } }, - "@storybook/react>@storybook/store>stable": { - "globals": { - "define": true - } - }, "@truffle/codec": { "packages": { "@truffle/codec>@truffle/abi-utils": true, @@ -4791,7 +2575,15 @@ }, "@truffle/codec>web3-utils>ethereum-bloom-filters": { "packages": { - "ethers>@ethersproject/keccak256>js-sha3": true + "@truffle/codec>web3-utils>ethereum-bloom-filters>js-sha3": true + } + }, + "@truffle/codec>web3-utils>ethereum-bloom-filters>js-sha3": { + "globals": { + "define": true + }, + "packages": { + "browserify>process": true } }, "@truffle/decoder": { @@ -4968,7 +2760,7 @@ }, "browserify>crypto-browserify>browserify-cipher>browserify-des>des.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, @@ -4980,7 +2772,6 @@ }, "browserify>crypto-browserify>browserify-sign": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>buffer": true, "browserify>crypto-browserify>create-hmac": true, @@ -4988,14 +2779,15 @@ "browserify>crypto-browserify>public-encrypt>parse-asn1": true, "browserify>stream-browserify": true, "ethereumjs-util>create-hash": true, + "ethers>@ethersproject/signing-key>elliptic": true, "pumpify>inherits": true } }, "browserify>crypto-browserify>create-ecdh": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, - "browserify>buffer": true + "browserify>buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "browserify>crypto-browserify>create-hmac": { @@ -5018,8 +2810,8 @@ }, "browserify>crypto-browserify>diffie-hellman>miller-rabin": { "packages": { - "3box>ethers>elliptic>brorand": true, - "bn.js": true + "bn.js": true, + "ethers>@ethersproject/signing-key>elliptic>brorand": true } }, "browserify>crypto-browserify>pbkdf2": { @@ -5066,10 +2858,10 @@ }, "browserify>crypto-browserify>public-encrypt>parse-asn1>asn1.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, "bn.js": true, "browserify>buffer": true, "browserify>vm-browserify": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, @@ -5437,13 +3229,13 @@ }, "eth-json-rpc-middleware>@metamask/eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>bn.js": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>ethereum-cryptography": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>ethjs-util": true, - "eth-lattice-keyring>@ethereumjs/util": true + "eth-lattice-keyring>@ethereumjs/util": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true } }, "eth-json-rpc-middleware>@metamask/eth-sig-util>bn.js": { @@ -5659,7 +3451,6 @@ "setTimeout": true }, "packages": { - "3box>ethers>elliptic": true, "@ethereumjs/common>crc-32": true, "@metamask/controllers>@ethersproject/abi": true, "bn.js": true, @@ -5672,12 +3463,13 @@ "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser": true, + "eth-lattice-keyring>gridplus-sdk>js-sha3": true, "eth-lattice-keyring>gridplus-sdk>rlp": true, - "eth-lattice-keyring>gridplus-sdk>secp256k1": true, "ethereumjs-wallet>aes-js": true, "ethereumjs-wallet>bs58check": true, - "ethers>@ethersproject/keccak256>js-sha3": true, "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/signing-key>elliptic": true, + "ganache>secp256k1": true, "lodash": true } }, @@ -5721,10 +3513,10 @@ "console": true }, "packages": { - "3box>ipfs>iso-url": true, "browserify>buffer": true, "browserify>buffer>ieee754": true, - "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": true + "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": true, + "eth-lattice-keyring>gridplus-sdk>borc>iso-url": true } }, "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": { @@ -5733,6 +3525,13 @@ "define": true } }, + "eth-lattice-keyring>gridplus-sdk>borc>iso-url": { + "globals": { + "URL": true, + "URLSearchParams": true, + "location": true + } + }, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser": { "globals": { "intToBuffer": true @@ -5740,7 +3539,7 @@ "packages": { "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>bn.js": true, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>buffer": true, - "ethers>@ethersproject/keccak256>js-sha3": true + "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>js-sha3": true } }, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>bn.js": { @@ -5760,14 +3559,25 @@ "browserify>buffer>ieee754": true } }, - "eth-lattice-keyring>gridplus-sdk>rlp": { + "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>js-sha3": { "globals": { - "TextEncoder": true + "define": true + }, + "packages": { + "browserify>process": true } }, - "eth-lattice-keyring>gridplus-sdk>secp256k1": { + "eth-lattice-keyring>gridplus-sdk>js-sha3": { + "globals": { + "define": true + }, "packages": { - "3box>ethers>elliptic": true + "browserify>process": true + } + }, + "eth-lattice-keyring>gridplus-sdk>rlp": { + "globals": { + "TextEncoder": true } }, "eth-lattice-keyring>rlp": { @@ -5794,16 +3604,15 @@ }, "eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, "eth-sig-util>ethereumjs-util": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "ethereumjs-abi": true } }, "eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, @@ -5811,7 +3620,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-sig-util>ethereumjs-util>ethjs-util": { @@ -5821,6 +3631,25 @@ "ethjs>ethjs-util>strip-hex-prefix": true } }, + "eth-sig-util>tweetnacl": { + "globals": { + "crypto": true, + "msCrypto": true, + "nacl": "write" + }, + "packages": { + "browserify>browser-resolve": true + } + }, + "eth-sig-util>tweetnacl-util": { + "globals": { + "atob": true, + "btoa": true + }, + "packages": { + "browserify>browser-resolve": true + } + }, "eth-trezor-keyring": { "globals": { "setTimeout": true @@ -5836,9 +3665,9 @@ }, "eth-trezor-keyring>@metamask/eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethereumjs-util": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": true, "ethereumjs-abi": true @@ -5846,14 +3675,14 @@ }, "eth-trezor-keyring>@metamask/eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, - "ethereumjs-util>rlp": true + "ethereumjs-util>rlp": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": { @@ -5881,13 +3710,12 @@ }, "eth-trezor-keyring>hdkey>secp256k1": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>insert-module-globals>is-buffer": true, "eth-trezor-keyring>hdkey>secp256k1>bip66": true, - "eth-trezor-keyring>hdkey>secp256k1>drbg.js": true, "ethereumjs-util>create-hash": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-trezor-keyring>hdkey>secp256k1>bip66": { @@ -5895,12 +3723,6 @@ "ethereumjs-wallet>safe-buffer": true } }, - "eth-trezor-keyring>hdkey>secp256k1>drbg.js": { - "packages": { - "browserify>buffer": true, - "browserify>crypto-browserify>create-hmac": true - } - }, "eth-trezor-keyring>trezor-connect": { "globals": { "__TREZOR_CONNECT_SRC": true, @@ -5923,10 +3745,19 @@ "setTimeout": true }, "packages": { - "3box>graphql-request>cross-fetch": true, "@babel/runtime": true, "browserify>events": true, - "eth-trezor-keyring>@metamask/eth-sig-util": true + "eth-trezor-keyring>@metamask/eth-sig-util": true, + "eth-trezor-keyring>trezor-connect>cross-fetch": true + } + }, + "eth-trezor-keyring>trezor-connect>cross-fetch": { + "globals": { + "Blob": true, + "FileReader": true, + "FormData": true, + "URLSearchParams.prototype.isPrototypeOf": true, + "XMLHttpRequest": true } }, "ethereumjs-abi": { @@ -5938,14 +3769,14 @@ }, "ethereumjs-abi>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "ethereumjs-abi>ethereumjs-util>ethjs-util": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, - "ethereumjs-util>rlp": true + "ethereumjs-util>rlp": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-abi>ethereumjs-util>ethjs-util": { @@ -6036,12 +3867,6 @@ "ethers>@ethersproject/sha2>hash.js": true } }, - "ethereumjs-util>ethereum-cryptography>blakejs": { - "globals": { - "TextEncoder": true, - "console.log": true - } - }, "ethereumjs-util>ethereum-cryptography>browserify-aes": { "packages": { "browserify>buffer": true, @@ -6076,7 +3901,7 @@ }, "ethereumjs-util>ethereum-cryptography>secp256k1": { "packages": { - "3box>ethers>elliptic": true + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-util>rlp": { @@ -6113,21 +3938,31 @@ }, "ethereumjs-wallet>bs58check": { "packages": { - "3box>ipfs>bs58": true, "ethereumjs-util>create-hash": true, + "ethereumjs-wallet>bs58check>bs58": true, + "ethereumjs-wallet>safe-buffer": true + } + }, + "ethereumjs-wallet>bs58check>bs58": { + "packages": { + "ethereumjs-wallet>bs58check>bs58>base-x": true + } + }, + "ethereumjs-wallet>bs58check>bs58>base-x": { + "packages": { "ethereumjs-wallet>safe-buffer": true } }, "ethereumjs-wallet>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>ethereumjs-util>ethjs-util": true + "ethereumjs-wallet>ethereumjs-util>ethjs-util": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-wallet>ethereumjs-util>ethjs-util": { @@ -6599,10 +4434,10 @@ }, "ethers>@ethersproject/contracts>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/contracts>@ethersproject/bytes": true, "ethers>@ethersproject/contracts>@ethersproject/logger": true, - "ethers>@ethersproject/contracts>@ethersproject/properties": true + "ethers>@ethersproject/contracts>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/hash": { @@ -6948,10 +4783,10 @@ }, "ethers>@ethersproject/providers>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/providers>@ethersproject/bytes": true, "ethers>@ethersproject/providers>@ethersproject/logger": true, - "ethers>@ethersproject/providers>@ethersproject/properties": true + "ethers>@ethersproject/providers>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/providers>@ethersproject/web": { @@ -7031,16 +4866,16 @@ }, "ethers>@ethersproject/sha2>hash.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, "ethers>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/signing-key>@ethersproject/bytes": true, "ethers>@ethersproject/signing-key>@ethersproject/logger": true, - "ethers>@ethersproject/signing-key>@ethersproject/properties": true + "ethers>@ethersproject/signing-key>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/signing-key>@ethersproject/bytes": { @@ -7058,6 +4893,33 @@ "ethers>@ethersproject/signing-key>@ethersproject/logger": true } }, + "ethers>@ethersproject/signing-key>elliptic": { + "packages": { + "bn.js": true, + "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/signing-key>elliptic>brorand": true, + "ethers>@ethersproject/signing-key>elliptic>hmac-drbg": true, + "ethers>@ethersproject/signing-key>elliptic>minimalistic-crypto-utils": true, + "pumpify>inherits": true + } + }, + "ethers>@ethersproject/signing-key>elliptic>brorand": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "browserify>browser-resolve": true + } + }, + "ethers>@ethersproject/signing-key>elliptic>hmac-drbg": { + "packages": { + "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/signing-key>elliptic>minimalistic-crypto-utils": true + } + }, "ethers>@ethersproject/solidity": { "packages": { "@ethersproject/bignumber": true, @@ -7179,7 +5041,7 @@ }, "ethers>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, + "ethers>@ethersproject/signing-key>elliptic": true, "ethers>@ethersproject/transactions>@ethersproject/bytes": true, "ethers>@ethersproject/transactions>@ethersproject/logger": true, "ethers>@ethersproject/transactions>@ethersproject/properties": true @@ -7237,7 +5099,15 @@ "ethers>@ethersproject/wallet>@ethersproject/keccak256": { "packages": { "@ethersproject/bignumber>@ethersproject/bytes": true, - "ethers>@ethersproject/keccak256>js-sha3": true + "ethers>@ethersproject/wallet>@ethersproject/keccak256>js-sha3": true + } + }, + "ethers>@ethersproject/wallet>@ethersproject/keccak256>js-sha3": { + "globals": { + "define": true + }, + "packages": { + "browserify>process": true } }, "ethers>@ethersproject/wallet>@ethersproject/properties": { @@ -7253,9 +5123,9 @@ }, "ethers>@ethersproject/wallet>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "@ethersproject/bignumber>@ethersproject/bytes": true, "@ethersproject/bignumber>@ethersproject/logger": true, + "ethers>@ethersproject/signing-key>elliptic": true, "ethers>@ethersproject/wallet>@ethersproject/properties": true } }, @@ -7368,10 +5238,10 @@ "ethjs-contract": { "packages": { "ethjs-contract>ethjs-abi": true, - "ethjs-contract>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, @@ -7379,20 +5249,10 @@ "packages": { "browserify>buffer": true, "ethjs-contract>ethjs-abi>bn.js": true, - "ethjs-contract>ethjs-abi>js-sha3": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, - "ethjs-contract>ethjs-abi>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-contract>js-sha3": { - "packages": { - "browserify>process": true - } - }, "ethjs-query": { "globals": { "console": true @@ -7509,9 +5369,13 @@ "define": true } }, + "ganache>secp256k1": { + "packages": { + "ethers>@ethersproject/signing-key>elliptic": true + } + }, "gh-pages>async": { "globals": { - "clearTimeout": true, "setTimeout": true }, "packages": { @@ -7634,32 +5498,22 @@ "Intl": true } }, - "madge>rc>deep-extend": { + "madge>ora>bl": { "packages": { - "browserify>buffer": true + "browserify>buffer": true, + "madge>ora>bl>readable-stream": true, + "pumpify>inherits": true } }, - "mockttp>node-forge": { - "globals": { - "Blob": true, - "MutationObserver": true, - "QuotaExceededError": true, - "URL.createObjectURL": true, - "URL.revokeObjectURL": true, - "Worker": true, - "addEventListener": true, - "document": true, - "jQuery": true, - "localStorage": true, - "navigator": true, - "postMessage": true, - "removeEventListener": true, - "setTimeout": true - }, + "madge>ora>bl>readable-stream": { "packages": { + "@storybook/api>util-deprecate": true, "browserify>browser-resolve": true, + "browserify>buffer": true, + "browserify>events": true, "browserify>process": true, - "browserify>timers-browserify": true + "browserify>string_decoder": true, + "pumpify>inherits": true } }, "nanoid": { @@ -7821,12 +5675,6 @@ "react-devtools>react-devtools-core": true } }, - "react-devtools>ip": { - "packages": { - "browserify>buffer": true, - "browserify>os-browserify": true - } - }, "react-devtools>react-devtools-core": { "globals": { "WebSocket": true, @@ -8242,8 +6090,13 @@ "setTimeout": true }, "packages": { - "3box>events": true, - "browserify>util": true + "browserify>util": true, + "safe-event-emitter>events": true + } + }, + "safe-event-emitter>events": { + "globals": { + "console": true } }, "semver": { @@ -8304,12 +6157,6 @@ "stylelint>autoprefixer>caniuse-lite": true } }, - "stylelint>write-file-atomic>typedarray-to-buffer": { - "packages": { - "browserify>buffer": true, - "jsdom>request>is-typedarray": true - } - }, "terser>@jridgewell/source-map>@jridgewell/gen-mapping": { "globals": { "define": true @@ -8409,11 +6256,6 @@ "console.warn": true, "define": true } - }, - "webpack>memory-fs>errno": { - "packages": { - "webpack>memory-fs>errno>prr": true - } } } } \ No newline at end of file diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index fe10c7ebac5a..71e1e50d1917 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -1,2194 +1,5 @@ { "resources": { - "3box": { - "globals": { - "console.error": true, - "console.log": true, - "console.warn": true, - "fetch": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins": true, - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>3id-resolver": true, - "3box>did-jwt": true, - "3box>ethers": true, - "3box>ethers>elliptic": true, - "3box>graphql-request": true, - "3box>https-did-resolver": true, - "3box>ipfs": true, - "3box>ipfs-did-document": true, - "3box>ipfs-mini": true, - "3box>ipfs>is-ipfs": true, - "3box>ipfs>multihashes": true, - "3box>js-sha256": true, - "3box>muport-did-resolver": true, - "3box>orbit-db": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-identity-provider": true, - "3box>orbit-db>orbit-db-pubsub": true, - "3box>store": true, - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, - "@babel/runtime": true, - "browserify>buffer": true, - "browserify>process": true, - "node-fetch": true - } - }, - "3box>3box-orbitdb-plugins": { - "globals": { - "console.log": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>3id-resolver>did-jwt": true, - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ipfs>is-ipfs": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>events": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>3box-orbitdb-plugins>ipfs-log": { - "globals": { - "clearTimeout": true, - "console.warn": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log>json-stringify-deterministic": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-each-series": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-map": true, - "3box>3box-orbitdb-plugins>ipfs-log>p-whilst": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>buffer": true - } - }, - "3box>3id-resolver": { - "packages": { - "3box>3id-resolver>did-jwt": true, - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ipfs-did-document": true, - "@babel/runtime": true - } - }, - "3box>3id-resolver>did-jwt": { - "packages": { - "3box>3id-resolver>did-jwt>base64url": true, - "3box>did-jwt>did-resolver": true, - "3box>ethers>elliptic": true, - "3box>js-sha256": true, - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, - "@babel/runtime": true, - "browserify>buffer": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>3id-resolver>did-jwt>base64url": { - "packages": { - "browserify>buffer": true - } - }, - "3box>did-jwt": { - "packages": { - "3box>did-jwt>@stablelib/utf8": true, - "3box>did-jwt>did-resolver": true, - "3box>did-jwt>js-sha3": true, - "3box>did-jwt>uport-base64url": true, - "3box>ethers>elliptic": true, - "3box>js-sha256": true, - "3box>tweetnacl": true, - "browserify>buffer": true - } - }, - "3box>did-jwt>js-sha3": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>did-jwt>uport-base64url": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ethers": { - "globals": { - "MessageChannel": true, - "XMLHttpRequest": true, - "atob": true, - "btoa": true, - "clearInterval": true, - "clearTimeout": true, - "console": true, - "crypto.getRandomValues": true, - "define": true, - "setInterval": true, - "setTimeout": true - } - }, - "3box>ethers>elliptic": { - "packages": { - "3box>ethers>elliptic>brorand": true, - "3box>ethers>elliptic>hmac-drbg": true, - "3box>ethers>elliptic>minimalistic-crypto-utils": true, - "3box>ethers>hash.js>minimalistic-assert": true, - "bn.js": true, - "ethers>@ethersproject/sha2>hash.js": true, - "pumpify>inherits": true - } - }, - "3box>ethers>elliptic>brorand": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "3box>ethers>elliptic>hmac-drbg": { - "packages": { - "3box>ethers>elliptic>minimalistic-crypto-utils": true, - "3box>ethers>hash.js>minimalistic-assert": true, - "ethers>@ethersproject/sha2>hash.js": true - } - }, - "3box>events": { - "globals": { - "console": true - } - }, - "3box>graphql-request": { - "globals": { - "fetch": true - }, - "packages": { - "3box>graphql-request>cross-fetch": true - } - }, - "3box>graphql-request>cross-fetch": { - "globals": { - "Blob": true, - "FileReader": true, - "FormData": true, - "URLSearchParams.prototype.isPrototypeOf": true, - "XMLHttpRequest": true - } - }, - "3box>graphql-request>cross-fetch>node-fetch": { - "globals": { - "fetch": true - } - }, - "3box>https-did-resolver": { - "globals": { - "XMLHttpRequest": true - }, - "packages": { - "3box>did-jwt>did-resolver": true, - "browserify>browser-resolve": true - } - }, - "3box>ipfs": { - "globals": { - "AbortController": true, - "clearInterval": true, - "clearTimeout": true, - "console.log": true, - "fetch": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>async-iterator-all": true, - "3box>ipfs>async-iterator-to-pull-stream": true, - "3box>ipfs>async-iterator-to-stream": true, - "3box>ipfs>base32.js": true, - "3box>ipfs>bignumber.js": true, - "3box>ipfs>callbackify": true, - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "3box>ipfs>datastore-core": true, - "3box>ipfs>datastore-pubsub": true, - "3box>ipfs>dlv": true, - "3box>ipfs>err-code": true, - "3box>ipfs>fnv1a": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>human-to-milliseconds": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-bitswap": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipfs-block-service": true, - "3box>ipfs>ipfs-mfs": true, - "3box>ipfs>ipfs-repo": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-exporter": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "3box>ipfs>ipfs-utils": true, - "3box>ipfs>ipld": true, - "3box>ipfs>ipld-dag-cbor": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw": true, - "3box>ipfs>ipns": true, - "3box>ipfs>is-ipfs": true, - "3box>ipfs>is-pull-stream": true, - "3box>ipfs>iso-url": true, - "3box>ipfs>just-flatten-it": true, - "3box>ipfs>kind-of": true, - "3box>ipfs>libp2p": true, - "3box>ipfs>libp2p-bootstrap": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-kad-dht": true, - "3box>ipfs>libp2p-keychain": true, - "3box>ipfs>libp2p-record": true, - "3box>ipfs>libp2p-secio": true, - "3box>ipfs>libp2p-webrtc-star": true, - "3box>ipfs>libp2p-websocket-star-multi": true, - "3box>ipfs>libp2p-websockets": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multiaddr-to-uri": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async": true, - "3box>ipfs>peer-book": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>promisify-es6": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-cat": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-mplex": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-sort": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>pull-stream-to-async-iterator": true, - "3box>ipfs>pull-stream-to-stream": true, - "3box>ipfs>pull-traverse": true, - "3box>ipfs>readable-stream": true, - "3box>ipfs>receptacle": true, - "3box>ipfs>stream-to-pull-stream": true, - "3box>ipfs>superstruct": true, - "3box>ipfs>varint": true, - "@metamask/providers>is-stream": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "browserify>timers-browserify": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs-mini": { - "globals": { - "XMLHttpRequest": true - } - }, - "3box>ipfs-postmsg-proxy>shortid": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "nanoid": true - } - }, - "3box>ipfs>async-iterator-to-pull-stream": { - "packages": { - "3box>ipfs>async-iterator-to-pull-stream>get-iterator": true, - "3box>ipfs>pull-stream-to-async-iterator": true - } - }, - "3box>ipfs>async-iterator-to-stream": { - "packages": { - "3box>ipfs>async-iterator-to-stream>readable-stream": true, - "browserify>process": true - } - }, - "3box>ipfs>async-iterator-to-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>bl": { - "packages": { - "3box>ipfs>bl>readable-stream": true, - "browserify>buffer": true, - "browserify>util": true - } - }, - "3box>ipfs>bl>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>bs58": { - "packages": { - "3box>ipfs>bs58>base-x": true - } - }, - "3box>ipfs>bs58>base-x": { - "packages": { - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>cids": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>datastore-core": { - "packages": { - "3box>ipfs>datastore-core>pull-many": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>datastore-pubsub": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>multibase": true, - "browserify>assert": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>dlv": { - "globals": { - "define": true - } - }, - "3box>ipfs>fsm-event": { - "packages": { - "3box>ipfs>fsm-event>fsm": true, - "browserify>assert": true, - "browserify>events": true - } - }, - "3box>ipfs>human-to-milliseconds": { - "packages": { - "3box>ipfs>promisify-es6": true - } - }, - "3box>ipfs>interface-datastore": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore>uuid": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>os-browserify": true, - "browserify>path-browserify": true, - "gh-pages>async": true - } - }, - "3box>ipfs>interface-datastore>uuid": { - "globals": { - "crypto": true, - "msCrypto": true - } - }, - "3box>ipfs>ipfs-bitswap": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipfs-bitswap>bignumber.js": true, - "3box>ipfs>ipfs-bitswap>just-debounce-it": true, - "3box>ipfs>ipfs-bitswap>lodash.isequalwith": true, - "3box>ipfs>ipfs-bitswap>moving-average": true, - "3box>ipfs>ipfs-bitswap>multihashing-async": true, - "3box>ipfs>ipfs-bitswap>varint-decoder": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-bitswap>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>ipfs-bitswap>just-debounce-it": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>ipfs-bitswap>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>ipfs-bitswap>varint-decoder": { - "packages": { - "3box>ipfs>varint": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-block": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-block-service": { - "packages": { - "gh-pages>async": true - } - }, - "3box>ipfs>ipfs-mfs": { - "globals": { - "Blob": true, - "FileReader": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-mfs>async-iterator-last": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-mfs>mortice": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-exporter": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>promisify-es6": true, - "browserify>assert": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-mfs>hamt-sharding": { - "packages": { - "3box>ipfs>ipfs-mfs>hamt-sharding>sparse-array": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-mfs>mortice": { - "globals": { - "Worker": true - }, - "packages": { - "3box>ipfs-postmsg-proxy>shortid": true, - "3box>ipfs>ipfs-mfs>mortice>observable-webworkers": true, - "3box>ipfs>ipfs-mfs>mortice>promise-timeout": true, - "3box>ipfs>libp2p-kad-dht>p-queue": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true - } - }, - "3box>ipfs>ipfs-mfs>mortice>promise-timeout": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>ipfs-repo": { - "packages": { - "3box>ipfs>base32.js": true, - "3box>ipfs>cids": true, - "3box>ipfs>datastore-core": true, - "3box>ipfs>dlv": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipfs-repo>bignumber.js": true, - "3box>ipfs>ipfs-repo>datastore-level": true, - "3box>ipfs>ipfs-repo>sort-keys": true, - "3box>ipfs>just-safe-set": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>path-browserify": true, - "browserify>timers-browserify": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>ipfs-repo>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level": { - "packages": { - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down": true, - "3box>ipfs>ipfs-repo>datastore-level>level-js": true, - "3box>ipfs>pull-stream": true, - "3box>orbit-db>orbit-db-keystore>levelup": true, - "browserify>buffer": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down": { - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown": true, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>level-codec": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown": { - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown>level-supports": true, - "3box>orbit-db>orbit-db-cache>level-js>immediate": true, - "browserify>buffer": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>abstract-leveldown>level-supports": { - "packages": { - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>encoding-down>level-codec": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.only": true, - "IDBKeyRange.upperBound": true, - "indexedDB.deleteDatabase": true, - "indexedDB.open": true - }, - "packages": { - "3box>ipfs>ipfs-repo>datastore-level>level-js>abstract-leveldown": true, - "3box>ipfs>ipfs-repo>datastore-level>level-js>idb-readable-stream": true, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": true, - "browserify>buffer": true, - "browserify>process": true, - "browserify>stream-browserify": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js>abstract-leveldown": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>datastore-level>level-js>idb-readable-stream": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.upperBound": true - }, - "packages": { - "browserify>stream-browserify": true, - "watchify>xtend": true - } - }, - "3box>ipfs>ipfs-repo>sort-keys": { - "packages": { - "geckodriver>got>is-plain-obj": true - } - }, - "3box>ipfs>ipfs-unixfs": { - "packages": { - "3box>ipfs>protons": true - } - }, - "3box>ipfs>ipfs-unixfs-exporter": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>ipfs-mfs>async-iterator-last": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-importer": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipfs-unixfs-importer": { - "packages": { - "3box>ipfs>async-iterator-all": true, - "3box>ipfs>bl": true, - "3box>ipfs>err-code": true, - "3box>ipfs>ipfs-mfs>hamt-sharding": true, - "3box>ipfs>ipfs-unixfs": true, - "3box>ipfs>ipfs-unixfs-importer>async-iterator-batch": true, - "3box>ipfs>ipfs-unixfs-importer>async-iterator-first": true, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": true, - "3box>ipfs>ipfs-unixfs-importer>superstruct": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "madge>rc>deep-extend": true - } - }, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm": { - "globals": { - "Blob": true, - "Response": true, - "WebAssembly": true - }, - "packages": { - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm>assemblyscript": true - } - }, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm>assemblyscript": { - "globals": { - "WebAssembly.Instance": true, - "WebAssembly.Module": true, - "WebAssembly.instantiateStreaming": true, - "console.log": true - } - }, - "3box>ipfs>ipfs-utils": { - "globals": { - "FileReader": true - }, - "packages": { - "3box>ipfs>ipfs-utils>is-buffer": true, - "3box>ipfs>ipfs-utils>readable-stream": true, - "3box>ipfs>is-pull-stream": true, - "3box>ipfs>kind-of": true, - "@metamask/providers>is-stream": true - } - }, - "3box>ipfs>ipfs-utils>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>ipld": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipfs-block": true, - "3box>ipfs>ipld-dag-cbor": true, - "3box>ipfs>ipld-dag-pb": true, - "3box>ipfs>ipld-raw": true, - "3box>ipfs>ipld>typical": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>promisify-es6": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipld-dag-cbor": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-dag-cbor>is-circular": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "eth-lattice-keyring>gridplus-sdk>borc": true - } - }, - "3box>ipfs>ipld-dag-pb": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>class-is": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true, - "3box>ipfs>protons": true, - "@storybook/react>@storybook/store>stable": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>ipld-raw": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-raw>multihashing-async": true, - "3box>ipfs>multicodec": true - } - }, - "3box>ipfs>ipld-raw>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>ipld-raw>multihashing-async>murmurhash3js-revisited": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>ipld-raw>multihashing-async>murmurhash3js-revisited": { - "globals": { - "define": true - } - }, - "3box>ipfs>ipld>typical": { - "globals": { - "define": true - } - }, - "3box>ipfs>ipns": { - "packages": { - "3box>ipfs>interface-datastore": true, - "3box>ipfs>ipns>timestamp-nano": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>protons": true, - "base32-encode": true, - "browserify>buffer": true, - "nock>debug": true - } - }, - "3box>ipfs>is-ipfs": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>cids": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multibase": true, - "3box>ipfs>multihashes": true, - "browserify>buffer": true - } - }, - "3box>ipfs>iso-url": { - "globals": { - "URL": true, - "URLSearchParams": true, - "location": true - } - }, - "3box>ipfs>libp2p": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>libp2p-websockets": true, - "3box>ipfs>libp2p>libp2p-connection-manager": true, - "3box>ipfs>libp2p>libp2p-floodsub": true, - "3box>ipfs>libp2p>libp2p-ping": true, - "3box>ipfs>libp2p>libp2p-switch": true, - "3box>ipfs>libp2p>superstruct": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-book": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-bootstrap": { - "globals": { - "clearInterval": true, - "setInterval": true - }, - "packages": { - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p-crypto": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>libp2p-crypto>asn1.js": true, - "3box>ipfs>libp2p-crypto>iso-random-stream": true, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": true, - "3box>ipfs>libp2p-crypto>multihashing-async": true, - "3box>ipfs>protons": true, - "3box>tweetnacl": true, - "browserify>buffer": true, - "ethereumjs-util>ethereum-cryptography>browserify-aes": true, - "gh-pages>async": true, - "mockttp>node-forge": true - } - }, - "3box>ipfs>libp2p-crypto>asn1.js": { - "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, - "bn.js": true, - "browserify>buffer": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-crypto>iso-random-stream": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": true, - "eth-trezor-keyring>hdkey>secp256k1": true, - "gh-pages>async": true - } - }, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-crypto>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-kad-dht": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>base32.js": true, - "3box>ipfs>cids": true, - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-kad-dht>hashlru": true, - "3box>ipfs>libp2p-kad-dht>heap": true, - "3box>ipfs>libp2p-kad-dht>k-bucket": true, - "3box>ipfs>libp2p-kad-dht>multihashing-async": true, - "3box>ipfs>libp2p-kad-dht>p-queue": true, - "3box>ipfs>libp2p-kad-dht>p-times": true, - "3box>ipfs>libp2p-kad-dht>xor-distance": true, - "3box>ipfs>libp2p-record": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multihashes": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>promisify-es6": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>pull-stream-to-async-iterator": true, - "3box>ipfs>varint": true, - "@metamask/controllers>abort-controller": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "promise-to-callback": true - } - }, - "3box>ipfs>libp2p-kad-dht>heap": { - "globals": { - "define": true - } - }, - "3box>ipfs>libp2p-kad-dht>k-bucket": { - "packages": { - "browserify>events": true, - "ethereumjs-wallet>randombytes": true - } - }, - "3box>ipfs>libp2p-kad-dht>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-kad-dht>p-queue": { - "globals": { - "clearInterval": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "mockttp>@httptoolkit/subscriptions-transport-ws>eventemitter3": true - } - }, - "3box>ipfs>libp2p-kad-dht>p-times": { - "packages": { - "3box>ipfs>libp2p-kad-dht>p-times>p-map": true - } - }, - "3box>ipfs>libp2p-kad-dht>xor-distance": { - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-keychain": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>interface-datastore": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-keychain>sanitize-filename": true, - "3box>ipfs>merge-options": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "gh-pages>async": true, - "mockttp>node-forge": true - } - }, - "3box>ipfs>libp2p-keychain>sanitize-filename": { - "packages": { - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes": true - } - }, - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes": { - "packages": { - "3box>ipfs>libp2p-keychain>sanitize-filename>truncate-utf8-bytes>utf8-byte-length": true - } - }, - "3box>ipfs>libp2p-record": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-record>buffer-split": true, - "3box>ipfs>libp2p-record>multihashing-async": true, - "3box>ipfs>protons": true, - "browserify>assert": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>libp2p-record>buffer-split": { - "packages": { - "3box>ipfs>libp2p-record>buffer-split>buffer-indexof": true - } - }, - "3box>ipfs>libp2p-record>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-secio": { - "packages": { - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>multihashing-async": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-secio>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>libp2p-secio>pull-handshake": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": true, - "3box>ipfs>pull-cat": true, - "3box>ipfs>pull-mplex>pull-pair": true, - "3box>ipfs>pull-pushable": true - } - }, - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": { - "globals": { - "cb": true, - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-secio>pull-length-prefixed": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake>pull-reader": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>varint": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>libp2p-webrtc-star": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-webrtc-star>simple-peer": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, - "3box>ipfs>libp2p-webrtc-star>webrtcsupport": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>stream-to-pull-stream": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer": { - "globals": { - "clearInterval": true, - "console.warn": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": true, - "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": true, - "browserify>buffer": true, - "ethereumjs-wallet>randombytes": true, - "nock>debug": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer>get-browser-rtc": { - "globals": { - "RTCIceCandidate": true, - "RTCPeerConnection": true, - "RTCSessionDescription": true, - "mozRTCIceCandidate": true, - "mozRTCPeerConnection": true, - "mozRTCSessionDescription": true, - "webkitRTCIceCandidate": true, - "webkitRTCPeerConnection": true, - "webkitRTCSessionDescription": true - } - }, - "3box>ipfs>libp2p-webrtc-star>simple-peer>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": { - "globals": { - "clearTimeout": true, - "location": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>component-bind": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>indexof": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseqs": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseuri": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>to-array": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": true, - "mockttp>@httptoolkit/subscriptions-transport-ws>backo2": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client": { - "globals": { - "MozWebSocket": true, - "WebSocket": true, - "XDomainRequest": true, - "XMLHttpRequest": true, - "addEventListener": true, - "attachEvent": true, - "clearTimeout": true, - "document": true, - "location": true, - "navigator": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>component-inherit": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>has-cors": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>yeast": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>indexof": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseqs": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>parseuri": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser": { - "globals": { - "FileReader": true, - "btoa": true, - "navigator": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>after": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>arraybuffer.slice": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>blob": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>engine.io>engine.io-parser>base64-arraybuffer": true, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>engine.io-parser>blob": { - "globals": { - "Blob": true, - "MSBlobBuilder": true, - "MozBlobBuilder": true, - "WebKitBlobBuilder": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>engine.io-client>has-cors": { - "globals": { - "XMLHttpRequest": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser": { - "globals": { - "Blob": true, - "File": true, - "FileReader": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>isarray": true, - "browserify>buffer": true, - "pubnub>superagent>component-emitter": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io-client>socket.io-parser>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2": { - "globals": { - "Blob": true, - "File": true - }, - "packages": { - "3box>ipfs>libp2p-webrtc-star>socket.io>has-binary2>isarray": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-webrtc-star>webrtcsupport": { - "globals": { - "AudioContext": true, - "MediaStream": true, - "RTCIceCandidate": true, - "RTCPeerConnection": true, - "RTCSessionDescription": true, - "document": true, - "location.protocol": true, - "mozRTCIceCandidate": true, - "mozRTCPeerConnection": true, - "mozRTCSessionDescription": true, - "navigator.getUserMedia": true, - "navigator.mozGetUserMedia": true, - "navigator.msGetUserMedia": true, - "navigator.userAgent.match": true, - "navigator.webkitGetUserMedia": true, - "webkitAudioContext": true, - "webkitMediaStream": true, - "webkitRTCPeerConnection": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-webrtc-star>socket.io-client": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true, - "uuid": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>data-queue": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>debug": true, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>uuid": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>data-queue": { - "packages": { - "browserify>events": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>debug": { - "globals": { - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "browserify>process": true, - "gulp-livereload>debug>ms": true - } - }, - "3box>ipfs>libp2p-websocket-star-multi>libp2p-websocket-star>socket.io-pull-stream>uuid": { - "globals": { - "crypto": true, - "msCrypto": true - } - }, - "3box>ipfs>libp2p-websockets": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-websockets>pull-ws": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>multiaddr-to-uri": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "browserify>os-browserify": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p-websockets>pull-ws": { - "globals": { - "WebSocket": true, - "location": true - }, - "packages": { - "3box>ipfs>libp2p-websockets>pull-ws>relative-url": true, - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>https-browserify": true, - "browserify>process": true, - "browserify>stream-http": true, - "browserify>timers-browserify": true, - "browserify>url": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>libp2p-websockets>pull-ws>relative-url": { - "packages": { - "browserify>url": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager": { - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": true, - "browserify>events": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor": { - "globals": { - "clearInterval": true, - "clearTimeout": true, - "document": true, - "performance": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug": true, - "browserify>events": true, - "browserify>process": true, - "lodash": true - } - }, - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug": { - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "3box>ipfs>libp2p>libp2p-connection-manager>latency-monitor>debug>ms": true, - "browserify>process": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub": { - "packages": { - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>insert-module-globals>is-buffer": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache": { - "packages": { - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache>lodash.throttle": true - } - }, - "3box>ipfs>libp2p>libp2p-floodsub>libp2p-pubsub>time-cache>lodash.throttle": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>libp2p>libp2p-ping": { - "packages": { - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>pull-stream": true, - "browserify>events": true, - "nock>debug": true - } - }, - "3box>ipfs>libp2p>libp2p-switch": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>err-code": true, - "3box>ipfs>fsm-event": true, - "3box>ipfs>ipfs-bitswap>moving-average": true, - "3box>ipfs>libp2p-kad-dht>hashlru": true, - "3box>ipfs>libp2p>libp2p-switch>bignumber.js": true, - "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": true, - "3box>ipfs>libp2p>libp2p-switch>libp2p-identify": true, - "3box>ipfs>libp2p>libp2p-switch>multistream-select": true, - "3box>ipfs>libp2p>libp2p-switch>retimer": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>assert": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>bignumber.js": { - "globals": { - "crypto": true, - "define": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>libp2p-circuit": { - "packages": { - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>mafmt": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>libp2p-identify": { - "globals": { - "console.warn": true - }, - "packages": { - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "3box>ipfs>protons": true, - "3box>ipfs>pull-stream": true, - "browserify>buffer": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>multistream-select": { - "packages": { - "3box>ipfs>err-code": true, - "3box>ipfs>libp2p-secio>pull-handshake": true, - "3box>ipfs>libp2p-secio>pull-length-prefixed": true, - "3box>ipfs>libp2p>libp2p-switch>multistream-select>semver": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>varint": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true, - "nock>debug": true, - "pump>once": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>multistream-select>semver": { - "globals": { - "console": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>ipfs>libp2p>libp2p-switch>retimer": { - "globals": { - "clearTimeout": true, - "setTimeout": true - } - }, - "3box>ipfs>mafmt": { - "packages": { - "3box>ipfs>multiaddr": true - } - }, - "3box>ipfs>merge-options": { - "packages": { - "geckodriver>got>is-plain-obj": true - } - }, - "3box>ipfs>multiaddr": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>class-is": true, - "3box>ipfs>multiaddr>hi-base32": true, - "3box>ipfs>multiaddr>is-ip": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "react-devtools>ip": true - } - }, - "3box>ipfs>multiaddr-to-uri": { - "packages": { - "3box>ipfs>multiaddr": true - } - }, - "3box>ipfs>multiaddr>hi-base32": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>ipfs>multiaddr>is-ip": { - "packages": { - "chromedriver>tcp-port-used>is2>ip-regex": true - } - }, - "3box>ipfs>multibase": { - "packages": { - "3box>ipfs>multibase>base-x": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multibase>base-x": { - "packages": { - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>multicodec": { - "packages": { - "3box>ipfs>varint": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multihashes": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>varint": true, - "browserify>buffer": true - } - }, - "3box>ipfs>multihashing-async": { - "globals": { - "crypto": true, - "msCrypto": true - }, - "packages": { - "3box>ipfs>multihashes": true, - "3box>ipfs>multihashing-async>murmurhash3js": true, - "3box>ipfs>multihashing-async>nodeify": true, - "browserify>buffer": true, - "browserify>process": true, - "ethereumjs-util>ethereum-cryptography>blakejs": true, - "ethers>@ethersproject/keccak256>js-sha3": true - } - }, - "3box>ipfs>multihashing-async>murmurhash3js": { - "globals": { - "define": true - } - }, - "3box>ipfs>multihashing-async>nodeify": { - "globals": { - "setTimeout": true - }, - "packages": { - "3box>ipfs>multihashing-async>nodeify>is-promise": true, - "3box>ipfs>multihashing-async>nodeify>promise": true, - "browserify>process": true, - "browserify>timers-browserify": true - } - }, - "3box>ipfs>multihashing-async>nodeify>promise": { - "globals": { - "setImediate": true, - "setTimeout": true - }, - "packages": { - "3box>ipfs>multihashing-async>nodeify>is-promise": true, - "browserify>process": true - } - }, - "3box>ipfs>peer-book": { - "packages": { - "3box>ipfs>bs58": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info": true, - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>ipfs>peer-id": { - "packages": { - "3box>ipfs>class-is": true, - "3box>ipfs>libp2p-crypto": true, - "3box>ipfs>multihashes": true, - "browserify>assert": true, - "browserify>buffer": true, - "gh-pages>async": true - } - }, - "3box>ipfs>peer-info": { - "packages": { - "3box>ipfs>multiaddr": true, - "3box>ipfs>peer-id": true, - "3box>ipfs>peer-info>unique-by": true, - "browserify>assert": true - } - }, - "3box>ipfs>protons": { - "packages": { - "3box>ipfs>protons>protocol-buffers-schema": true, - "3box>ipfs>protons>signed-varint": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>ipfs>protons>signed-varint": { - "packages": { - "3box>ipfs>varint": true - } - }, - "3box>ipfs>pull-mplex": { - "packages": { - "3box>ipfs>pull-abortable": true, - "3box>ipfs>pull-mplex>interface-connection": true, - "3box>ipfs>pull-mplex>looper": true, - "3box>ipfs>pull-mplex>pull-through": true, - "3box>ipfs>pull-pushable": true, - "3box>ipfs>pull-stream": true, - "3box>ipfs>varint": true, - "browserify>buffer": true, - "browserify>events": true, - "gh-pages>async": true, - "nock>debug": true - } - }, - "3box>ipfs>pull-mplex>interface-connection": { - "packages": { - "3box>ipfs>pull-defer": true - } - }, - "3box>ipfs>pull-mplex>pull-through": { - "packages": { - "3box>ipfs>stream-to-pull-stream>looper": true - } - }, - "3box>ipfs>pull-sort": { - "packages": { - "3box>ipfs>pull-defer": true, - "3box>ipfs>pull-stream": true - } - }, - "3box>ipfs>pull-stream": { - "globals": { - "console.log": true - } - }, - "3box>ipfs>pull-stream-to-async-iterator": { - "packages": { - "3box>ipfs>pull-stream": true - } - }, - "3box>ipfs>pull-stream-to-stream": { - "packages": { - "browserify>process": true, - "browserify>stream-browserify": true, - "browserify>timers-browserify": true - } - }, - "3box>ipfs>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>ipfs>receptacle": { - "globals": { - "clearTimeout": true, - "setTimeout": true - }, - "packages": { - "gulp-livereload>debug>ms": true - } - }, - "3box>ipfs>stream-to-pull-stream": { - "globals": { - "console.error": true - }, - "packages": { - "3box>ipfs>pull-stream": true, - "3box>ipfs>stream-to-pull-stream>looper": true, - "browserify>process": true - } - }, - "3box>js-sha256": { - "globals": { - "define": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>muport-did-resolver": { - "packages": { - "3box>did-jwt>did-resolver": true, - "@babel/runtime": true, - "node-fetch": true - } - }, - "3box>orbit-db": { - "globals": { - "console.log": true - }, - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>multihashes": true, - "3box>orbit-db>ipfs-pubsub-1on1": true, - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-access-controllers": true, - "3box>orbit-db>orbit-db-cache": true, - "3box>orbit-db>orbit-db-counterstore": true, - "3box>orbit-db>orbit-db-docstore": true, - "3box>orbit-db>orbit-db-eventstore": true, - "3box>orbit-db>orbit-db-feedstore": true, - "3box>orbit-db>orbit-db-identity-provider": true, - "3box>orbit-db>orbit-db-io": true, - "3box>orbit-db>orbit-db-keystore": true, - "3box>orbit-db>orbit-db-kvstore": true, - "3box>orbit-db>orbit-db-pubsub": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>ipfs-pubsub-1on1": { - "globals": { - "clearInterval": true, - "setInterval": true - }, - "packages": { - "3box>orbit-db>ipfs-pubsub-1on1>safe-buffer": true, - "browserify>events": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>ipfs-pubsub-1on1>safe-buffer": { - "packages": { - "browserify>buffer": true - } - }, - "3box>orbit-db>logplease": { - "globals": { - "LOG": true, - "console.error": true, - "console.log": true - }, - "packages": { - "browserify>browser-resolve": true, - "browserify>events": true, - "browserify>process": true, - "browserify>util": true - } - }, - "3box>orbit-db>orbit-db-access-controllers": { - "globals": { - "console.log": true - }, - "packages": { - "3box>orbit-db>orbit-db-access-controllers>p-map-series": true, - "3box>orbit-db>orbit-db-io": true, - "browserify>events": true, - "browserify>path-browserify": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>orbit-db>orbit-db-access-controllers>p-map-series": { - "packages": { - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>orbit-db>orbit-db-cache": { - "packages": { - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-cache>level-js": true, - "browserify>path-browserify": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js": { - "globals": { - "IDBKeyRange.bound": true, - "IDBKeyRange.lowerBound": true, - "IDBKeyRange.upperBound": true, - "indexedDB": true - }, - "packages": { - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": true, - "3box>orbit-db>orbit-db-cache>level-js>immediate": true, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": true, - "browserify>buffer": true, - "browserify>insert-module-globals>is-buffer": true, - "pumpify>inherits": true, - "stylelint>write-file-atomic>typedarray-to-buffer": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>process": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>immediate": { - "globals": { - "MessageChannel": true, - "MutationObserver": true, - "WebKitMutationObserver": true, - "clearTimeout": true, - "document.createElement": true, - "document.createTextNode": true, - "document.documentElement.appendChild": true, - "setImmediate": true, - "setTimeout": true - }, - "packages": { - "browserify>process": true - } - }, - "3box>orbit-db>orbit-db-cache>level-js>ltgt": { - "packages": { - "browserify>insert-module-globals>is-buffer": true - } - }, - "3box>orbit-db>orbit-db-counterstore": { - "packages": { - "3box>orbit-db>orbit-db-counterstore>crdts": true, - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-docstore": { - "packages": { - "3box>orbit-db>orbit-db-docstore>p-map": true, - "3box>orbit-db>orbit-db-store": true, - "readable-stream": true - } - }, - "3box>orbit-db>orbit-db-eventstore": { - "packages": { - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-feedstore": { - "packages": { - "3box>orbit-db>orbit-db-eventstore": true - } - }, - "3box>orbit-db>orbit-db-identity-provider": { - "packages": { - "3box>orbit-db>orbit-db-keystore": true - } - }, - "3box>orbit-db>orbit-db-io": { - "packages": { - "3box>ipfs>cids": true, - "3box>ipfs>ipld-dag-pb": true, - "browserify>buffer": true - } - }, - "3box>orbit-db>orbit-db-keystore": { - "globals": { - "console.error": true, - "console.log": true - }, - "packages": { - "3box>ethers>elliptic": true, - "3box>ipfs>libp2p-crypto": true, - "3box>orbit-db>orbit-db-cache>level-js": true, - "3box>orbit-db>orbit-db-keystore>levelup": true, - "3box>orbit-db>orbit-db-keystore>lru": true, - "eth-trezor-keyring>hdkey>secp256k1": true, - "ethereumjs-wallet>safe-buffer": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup": { - "packages": { - "3box>orbit-db>orbit-db-keystore>levelup>deferred-leveldown": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": true, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream": true, - "browserify>assert": true, - "browserify>events": true, - "browserify>process": true, - "browserify>util": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>deferred-leveldown": { - "packages": { - "3box>orbit-db>orbit-db-cache>level-js>abstract-leveldown": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-errors": { - "packages": { - "webpack>memory-fs>errno": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream": { - "packages": { - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream>readable-stream": true, - "pumpify>inherits": true, - "watchify>xtend": true - } - }, - "3box>orbit-db>orbit-db-keystore>levelup>level-iterator-stream>readable-stream": { - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>browser-resolve": true, - "browserify>buffer": true, - "browserify>events": true, - "browserify>process": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-keystore>lru": { - "packages": { - "browserify>events": true, - "pumpify>inherits": true - } - }, - "3box>orbit-db>orbit-db-kvstore": { - "packages": { - "3box>orbit-db>orbit-db-store": true - } - }, - "3box>orbit-db>orbit-db-pubsub": { - "packages": { - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-pubsub>ipfs-pubsub-peer-monitor": true, - "3box>orbit-db>orbit-db-pubsub>p-series": true, - "browserify>buffer": true - } - }, - "3box>orbit-db>orbit-db-pubsub>ipfs-pubsub-peer-monitor": { - "globals": { - "clearInterval": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "browserify>events": true - } - }, - "3box>orbit-db>orbit-db-pubsub>p-series": { - "packages": { - "3box>orbit-db>orbit-db-pubsub>p-series>@sindresorhus/is": true, - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>orbit-db>orbit-db-pubsub>p-series>@sindresorhus/is": { - "packages": { - "browserify>insert-module-globals>is-buffer": true, - "browserify>util": true - } - }, - "3box>orbit-db>orbit-db-store": { - "globals": { - "clearInterval": true, - "console.error": true, - "console.warn": true, - "setInterval": true, - "setTimeout": true - }, - "packages": { - "3box>3box-orbitdb-plugins>ipfs-log": true, - "3box>ipfs>libp2p-kad-dht>p-times>p-map": true, - "3box>orbit-db>logplease": true, - "3box>orbit-db>orbit-db-io": true, - "3box>orbit-db>orbit-db-store>p-each-series": true, - "browserify>buffer": true, - "browserify>events": true, - "readable-stream": true - } - }, - "3box>orbit-db>orbit-db-store>p-each-series": { - "packages": { - "3box>orbit-db>orbit-db-store>p-each-series>p-reduce": true - } - }, - "3box>store": { - "globals": { - "ActiveXObject": true, - "console": true - } - }, - "3box>tweetnacl": { - "globals": { - "crypto": true, - "msCrypto": true, - "nacl": "write" - }, - "packages": { - "browserify>browser-resolve": true - } - }, - "3box>tweetnacl-util": { - "globals": { - "atob": true, - "btoa": true - }, - "packages": { - "browserify>browser-resolve": true - } - }, "@babel/runtime": { "globals": { "regeneratorRuntime": "write" @@ -2236,9 +47,9 @@ }, "@ensdomains/content-hash>cids>multihashes": { "packages": { - "3box>ipfs>varint": true, "@ensdomains/content-hash>cids>multibase": true, - "@ensdomains/content-hash>cids>uint8arrays": true + "@ensdomains/content-hash>cids>uint8arrays": true, + "@ensdomains/content-hash>multihashes>varint": true } }, "@ensdomains/content-hash>cids>uint8arrays": { @@ -2283,17 +94,17 @@ }, "@ensdomains/content-hash>multihashes": { "packages": { - "3box>ipfs>varint": true, "@ensdomains/content-hash>multihashes>multibase": true, + "@ensdomains/content-hash>multihashes>varint": true, "@ensdomains/content-hash>multihashes>web-encoding": true, "browserify>buffer": true } }, "@ensdomains/content-hash>multihashes>multibase": { "packages": { - "3box>ipfs>bs58>base-x": true, "@ensdomains/content-hash>multihashes>web-encoding": true, - "browserify>buffer": true + "browserify>buffer": true, + "ethereumjs-wallet>bs58check>bs58>base-x": true } }, "@ensdomains/content-hash>multihashes>web-encoding": { @@ -2420,7 +231,7 @@ }, "@keystonehq/bc-ur-registry-eth>hdkey>secp256k1": { "packages": { - "3box>ethers>elliptic": true + "ethers>@ethersproject/signing-key>elliptic": true } }, "@keystonehq/metamask-airgapped-keyring": { @@ -2850,38 +661,38 @@ "@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": true, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": true, "@metamask/controllers>eth-method-registry>ethjs>ethjs-query": true, - "@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>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-abi": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>bn.js": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, "@metamask/controllers>eth-method-registry>ethjs>ethjs-contract>ethjs-abi": { "packages": { "@metamask/controllers>eth-method-registry>ethjs>bn.js": true, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -2896,11 +707,6 @@ "promise-to-callback": true } }, - "@metamask/controllers>eth-method-registry>ethjs>js-sha3": { - "packages": { - "browserify>process": true - } - }, "@metamask/controllers>eth-phishing-detect": { "packages": { "eslint>optionator>fast-levenshtein": true @@ -3065,7 +871,6 @@ }, "@metamask/controllers>web3-provider-engine>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/controllers>web3-provider-engine>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3073,7 +878,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/controllers>web3-provider-engine>ethereumjs-util>ethjs-util": { @@ -3163,7 +969,6 @@ }, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3171,7 +976,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/eth-json-rpc-infura>eth-json-rpc-middleware>eth-sig-util>ethereumjs-util>ethjs-util": { @@ -3201,16 +1007,15 @@ }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util": true, "browserify>buffer": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "ethereumjs-abi": true } }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util>ethjs-util": true, "bn.js": true, "browserify>assert": true, @@ -3218,7 +1023,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "@metamask/eth-ledger-bridge-keyring>eth-sig-util>ethereumjs-util>ethjs-util": { @@ -3230,13 +1036,23 @@ }, "@metamask/eth-ledger-bridge-keyring>hdkey": { "packages": { + "@metamask/eth-ledger-bridge-keyring>hdkey>secp256k1": true, "browserify>assert": true, "browserify>crypto-browserify": true, "eth-trezor-keyring>hdkey>coinstring": true, - "eth-trezor-keyring>hdkey>secp256k1": true, "ethereumjs-wallet>safe-buffer": true } }, + "@metamask/eth-ledger-bridge-keyring>hdkey>secp256k1": { + "packages": { + "bn.js": true, + "browserify>insert-module-globals>is-buffer": true, + "eth-trezor-keyring>hdkey>secp256k1>bip66": true, + "ethereumjs-util>create-hash": true, + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true + } + }, "@metamask/eth-token-tracker": { "globals": { "console.warn": true @@ -3295,38 +1111,38 @@ "@metamask/eth-token-tracker>ethjs>ethjs-abi": true, "@metamask/eth-token-tracker>ethjs>ethjs-contract": true, "@metamask/eth-token-tracker>ethjs>ethjs-query": true, - "@metamask/eth-token-tracker>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>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-abi": { "packages": { "@metamask/eth-token-tracker>ethjs>bn.js": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-contract": { "packages": { "@metamask/eth-token-tracker>ethjs>ethjs-contract>ethjs-abi": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, "@metamask/eth-token-tracker>ethjs>ethjs-contract>ethjs-abi": { "packages": { "@metamask/eth-token-tracker>ethjs>bn.js": true, - "@metamask/eth-token-tracker>ethjs>js-sha3": true, "browserify>buffer": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3341,11 +1157,6 @@ "promise-to-callback": true } }, - "@metamask/eth-token-tracker>ethjs>js-sha3": { - "packages": { - "browserify>process": true - } - }, "@metamask/etherscan-link": { "globals": { "URL": true @@ -3503,38 +1314,38 @@ "@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>js-sha3": 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>js-sha3": 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, + "ethjs>js-sha3": 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>js-sha3": true, "ethjs>number-to-bn": true } }, @@ -3549,11 +1360,6 @@ "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, @@ -3774,11 +1580,6 @@ "localStorage": true } }, - "@storybook/react>@storybook/store>stable": { - "globals": { - "define": true - } - }, "@truffle/codec": { "packages": { "@truffle/codec>@truffle/abi-utils": true, @@ -4006,7 +1807,15 @@ }, "@truffle/codec>web3-utils>ethereum-bloom-filters": { "packages": { - "ethers>@ethersproject/keccak256>js-sha3": true + "@truffle/codec>web3-utils>ethereum-bloom-filters>js-sha3": true + } + }, + "@truffle/codec>web3-utils>ethereum-bloom-filters>js-sha3": { + "globals": { + "define": true + }, + "packages": { + "browserify>process": true } }, "@truffle/decoder": { @@ -4183,7 +1992,7 @@ }, "browserify>crypto-browserify>browserify-cipher>browserify-des>des.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, @@ -4195,7 +2004,6 @@ }, "browserify>crypto-browserify>browserify-sign": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>buffer": true, "browserify>crypto-browserify>create-hmac": true, @@ -4203,14 +2011,15 @@ "browserify>crypto-browserify>public-encrypt>parse-asn1": true, "browserify>stream-browserify": true, "ethereumjs-util>create-hash": true, + "ethers>@ethersproject/signing-key>elliptic": true, "pumpify>inherits": true } }, "browserify>crypto-browserify>create-ecdh": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, - "browserify>buffer": true + "browserify>buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "browserify>crypto-browserify>create-hmac": { @@ -4233,8 +2042,8 @@ }, "browserify>crypto-browserify>diffie-hellman>miller-rabin": { "packages": { - "3box>ethers>elliptic>brorand": true, - "bn.js": true + "bn.js": true, + "ethers>@ethersproject/signing-key>elliptic>brorand": true } }, "browserify>crypto-browserify>pbkdf2": { @@ -4281,10 +2090,10 @@ }, "browserify>crypto-browserify>public-encrypt>parse-asn1>asn1.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, "bn.js": true, "browserify>buffer": true, "browserify>vm-browserify": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, @@ -4618,13 +2427,13 @@ }, "eth-json-rpc-middleware>@metamask/eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>bn.js": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>ethereum-cryptography": true, "eth-json-rpc-middleware>@metamask/eth-sig-util>ethjs-util": true, - "eth-lattice-keyring>@ethereumjs/util": true + "eth-lattice-keyring>@ethereumjs/util": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true } }, "eth-json-rpc-middleware>@metamask/eth-sig-util>bn.js": { @@ -4840,7 +2649,6 @@ "setTimeout": true }, "packages": { - "3box>ethers>elliptic": true, "@ethereumjs/common>crc-32": true, "@metamask/controllers>@ethersproject/abi": true, "bn.js": true, @@ -4853,12 +2661,13 @@ "eth-lattice-keyring>gridplus-sdk>bitwise": true, "eth-lattice-keyring>gridplus-sdk>borc": true, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser": true, + "eth-lattice-keyring>gridplus-sdk>js-sha3": true, "eth-lattice-keyring>gridplus-sdk>rlp": true, - "eth-lattice-keyring>gridplus-sdk>secp256k1": true, "ethereumjs-wallet>aes-js": true, "ethereumjs-wallet>bs58check": true, - "ethers>@ethersproject/keccak256>js-sha3": true, "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/signing-key>elliptic": true, + "ganache>secp256k1": true, "lodash": true } }, @@ -4902,10 +2711,10 @@ "console": true }, "packages": { - "3box>ipfs>iso-url": true, "browserify>buffer": true, "browserify>buffer>ieee754": true, - "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": true + "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": true, + "eth-lattice-keyring>gridplus-sdk>borc>iso-url": true } }, "eth-lattice-keyring>gridplus-sdk>borc>bignumber.js": { @@ -4914,6 +2723,13 @@ "define": true } }, + "eth-lattice-keyring>gridplus-sdk>borc>iso-url": { + "globals": { + "URL": true, + "URLSearchParams": true, + "location": true + } + }, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser": { "globals": { "intToBuffer": true @@ -4921,7 +2737,7 @@ "packages": { "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>bn.js": true, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>buffer": true, - "ethers>@ethersproject/keccak256>js-sha3": true + "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>js-sha3": true } }, "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>bn.js": { @@ -4941,14 +2757,25 @@ "browserify>buffer>ieee754": true } }, - "eth-lattice-keyring>gridplus-sdk>rlp": { + "eth-lattice-keyring>gridplus-sdk>eth-eip712-util-browser>js-sha3": { "globals": { - "TextEncoder": true + "define": true + }, + "packages": { + "browserify>process": true } }, - "eth-lattice-keyring>gridplus-sdk>secp256k1": { + "eth-lattice-keyring>gridplus-sdk>js-sha3": { + "globals": { + "define": true + }, "packages": { - "3box>ethers>elliptic": true + "browserify>process": true + } + }, + "eth-lattice-keyring>gridplus-sdk>rlp": { + "globals": { + "TextEncoder": true } }, "eth-lattice-keyring>rlp": { @@ -4975,16 +2802,15 @@ }, "eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, "eth-sig-util>ethereumjs-util": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "ethereumjs-abi": true } }, "eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, @@ -4992,7 +2818,8 @@ "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-sig-util>ethereumjs-util>ethjs-util": { @@ -5002,6 +2829,25 @@ "ethjs>ethjs-util>strip-hex-prefix": true } }, + "eth-sig-util>tweetnacl": { + "globals": { + "crypto": true, + "msCrypto": true, + "nacl": "write" + }, + "packages": { + "browserify>browser-resolve": true + } + }, + "eth-sig-util>tweetnacl-util": { + "globals": { + "atob": true, + "btoa": true + }, + "packages": { + "browserify>browser-resolve": true + } + }, "eth-trezor-keyring": { "globals": { "setTimeout": true @@ -5017,9 +2863,9 @@ }, "eth-trezor-keyring>@metamask/eth-sig-util": { "packages": { - "3box>tweetnacl": true, - "3box>tweetnacl-util": true, "browserify>buffer": true, + "eth-sig-util>tweetnacl": true, + "eth-sig-util>tweetnacl-util": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethereumjs-util": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": true, "ethereumjs-abi": true @@ -5027,14 +2873,14 @@ }, "eth-trezor-keyring>@metamask/eth-sig-util>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, - "ethereumjs-util>rlp": true + "ethereumjs-util>rlp": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-trezor-keyring>@metamask/eth-sig-util>ethjs-util": { @@ -5062,13 +2908,12 @@ }, "eth-trezor-keyring>hdkey>secp256k1": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>insert-module-globals>is-buffer": true, "eth-trezor-keyring>hdkey>secp256k1>bip66": true, - "eth-trezor-keyring>hdkey>secp256k1>drbg.js": true, "ethereumjs-util>create-hash": true, - "ethereumjs-wallet>safe-buffer": true + "ethereumjs-wallet>safe-buffer": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "eth-trezor-keyring>hdkey>secp256k1>bip66": { @@ -5076,12 +2921,6 @@ "ethereumjs-wallet>safe-buffer": true } }, - "eth-trezor-keyring>hdkey>secp256k1>drbg.js": { - "packages": { - "browserify>buffer": true, - "browserify>crypto-browserify>create-hmac": true - } - }, "eth-trezor-keyring>trezor-connect": { "globals": { "__TREZOR_CONNECT_SRC": true, @@ -5104,10 +2943,19 @@ "setTimeout": true }, "packages": { - "3box>graphql-request>cross-fetch": true, "@babel/runtime": true, "browserify>events": true, - "eth-trezor-keyring>@metamask/eth-sig-util": true + "eth-trezor-keyring>@metamask/eth-sig-util": true, + "eth-trezor-keyring>trezor-connect>cross-fetch": true + } + }, + "eth-trezor-keyring>trezor-connect>cross-fetch": { + "globals": { + "Blob": true, + "FileReader": true, + "FormData": true, + "URLSearchParams.prototype.isPrototypeOf": true, + "XMLHttpRequest": true } }, "ethereumjs-abi": { @@ -5119,14 +2967,14 @@ }, "ethereumjs-abi>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "ethereumjs-abi>ethereumjs-util>ethjs-util": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, - "ethereumjs-util>rlp": true + "ethereumjs-util>rlp": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-abi>ethereumjs-util>ethjs-util": { @@ -5217,12 +3065,6 @@ "ethers>@ethersproject/sha2>hash.js": true } }, - "ethereumjs-util>ethereum-cryptography>blakejs": { - "globals": { - "TextEncoder": true, - "console.log": true - } - }, "ethereumjs-util>ethereum-cryptography>browserify-aes": { "packages": { "browserify>buffer": true, @@ -5257,7 +3099,7 @@ }, "ethereumjs-util>ethereum-cryptography>secp256k1": { "packages": { - "3box>ethers>elliptic": true + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-util>rlp": { @@ -5294,21 +3136,31 @@ }, "ethereumjs-wallet>bs58check": { "packages": { - "3box>ipfs>bs58": true, "ethereumjs-util>create-hash": true, + "ethereumjs-wallet>bs58check>bs58": true, + "ethereumjs-wallet>safe-buffer": true + } + }, + "ethereumjs-wallet>bs58check>bs58": { + "packages": { + "ethereumjs-wallet>bs58check>bs58>base-x": true + } + }, + "ethereumjs-wallet>bs58check>bs58>base-x": { + "packages": { "ethereumjs-wallet>safe-buffer": true } }, "ethereumjs-wallet>ethereumjs-util": { "packages": { - "3box>ethers>elliptic": true, "bn.js": true, "browserify>assert": true, "browserify>buffer": true, "ethereumjs-util>create-hash": true, "ethereumjs-util>ethereum-cryptography": true, "ethereumjs-util>rlp": true, - "ethereumjs-wallet>ethereumjs-util>ethjs-util": true + "ethereumjs-wallet>ethereumjs-util>ethjs-util": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethereumjs-wallet>ethereumjs-util>ethjs-util": { @@ -5780,10 +3632,10 @@ }, "ethers>@ethersproject/contracts>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/contracts>@ethersproject/bytes": true, "ethers>@ethersproject/contracts>@ethersproject/logger": true, - "ethers>@ethersproject/contracts>@ethersproject/properties": true + "ethers>@ethersproject/contracts>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/hash": { @@ -6129,10 +3981,10 @@ }, "ethers>@ethersproject/providers>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/providers>@ethersproject/bytes": true, "ethers>@ethersproject/providers>@ethersproject/logger": true, - "ethers>@ethersproject/providers>@ethersproject/properties": true + "ethers>@ethersproject/providers>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/providers>@ethersproject/web": { @@ -6212,16 +4064,16 @@ }, "ethers>@ethersproject/sha2>hash.js": { "packages": { - "3box>ethers>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, "pumpify>inherits": true } }, "ethers>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "ethers>@ethersproject/signing-key>@ethersproject/bytes": true, "ethers>@ethersproject/signing-key>@ethersproject/logger": true, - "ethers>@ethersproject/signing-key>@ethersproject/properties": true + "ethers>@ethersproject/signing-key>@ethersproject/properties": true, + "ethers>@ethersproject/signing-key>elliptic": true } }, "ethers>@ethersproject/signing-key>@ethersproject/bytes": { @@ -6239,6 +4091,33 @@ "ethers>@ethersproject/signing-key>@ethersproject/logger": true } }, + "ethers>@ethersproject/signing-key>elliptic": { + "packages": { + "bn.js": true, + "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/signing-key>elliptic>brorand": true, + "ethers>@ethersproject/signing-key>elliptic>hmac-drbg": true, + "ethers>@ethersproject/signing-key>elliptic>minimalistic-crypto-utils": true, + "pumpify>inherits": true + } + }, + "ethers>@ethersproject/signing-key>elliptic>brorand": { + "globals": { + "crypto": true, + "msCrypto": true + }, + "packages": { + "browserify>browser-resolve": true + } + }, + "ethers>@ethersproject/signing-key>elliptic>hmac-drbg": { + "packages": { + "ethers>@ethersproject/sha2>hash.js": true, + "ethers>@ethersproject/sha2>hash.js>minimalistic-assert": true, + "ethers>@ethersproject/signing-key>elliptic>minimalistic-crypto-utils": true + } + }, "ethers>@ethersproject/solidity": { "packages": { "@ethersproject/bignumber": true, @@ -6360,7 +4239,7 @@ }, "ethers>@ethersproject/transactions>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, + "ethers>@ethersproject/signing-key>elliptic": true, "ethers>@ethersproject/transactions>@ethersproject/bytes": true, "ethers>@ethersproject/transactions>@ethersproject/logger": true, "ethers>@ethersproject/transactions>@ethersproject/properties": true @@ -6418,7 +4297,15 @@ "ethers>@ethersproject/wallet>@ethersproject/keccak256": { "packages": { "@ethersproject/bignumber>@ethersproject/bytes": true, - "ethers>@ethersproject/keccak256>js-sha3": true + "ethers>@ethersproject/wallet>@ethersproject/keccak256>js-sha3": true + } + }, + "ethers>@ethersproject/wallet>@ethersproject/keccak256>js-sha3": { + "globals": { + "define": true + }, + "packages": { + "browserify>process": true } }, "ethers>@ethersproject/wallet>@ethersproject/properties": { @@ -6434,9 +4321,9 @@ }, "ethers>@ethersproject/wallet>@ethersproject/signing-key": { "packages": { - "3box>ethers>elliptic": true, "@ethersproject/bignumber>@ethersproject/bytes": true, "@ethersproject/bignumber>@ethersproject/logger": true, + "ethers>@ethersproject/signing-key>elliptic": true, "ethers>@ethersproject/wallet>@ethersproject/properties": true } }, @@ -6549,10 +4436,10 @@ "ethjs-contract": { "packages": { "ethjs-contract>ethjs-abi": true, - "ethjs-contract>js-sha3": true, "ethjs-query>babel-runtime": true, "ethjs>ethjs-filter": true, "ethjs>ethjs-util": true, + "ethjs>js-sha3": true, "promise-to-callback": true } }, @@ -6560,20 +4447,10 @@ "packages": { "browserify>buffer": true, "ethjs-contract>ethjs-abi>bn.js": true, - "ethjs-contract>ethjs-abi>js-sha3": true, + "ethjs>js-sha3": true, "ethjs>number-to-bn": true } }, - "ethjs-contract>ethjs-abi>js-sha3": { - "packages": { - "browserify>process": true - } - }, - "ethjs-contract>js-sha3": { - "packages": { - "browserify>process": true - } - }, "ethjs-query": { "globals": { "console": true @@ -6690,9 +4567,13 @@ "define": true } }, + "ganache>secp256k1": { + "packages": { + "ethers>@ethersproject/signing-key>elliptic": true + } + }, "gh-pages>async": { "globals": { - "clearTimeout": true, "setTimeout": true }, "packages": { @@ -6795,34 +4676,6 @@ "Intl": true } }, - "madge>rc>deep-extend": { - "packages": { - "browserify>buffer": true - } - }, - "mockttp>node-forge": { - "globals": { - "Blob": true, - "MutationObserver": true, - "QuotaExceededError": true, - "URL.createObjectURL": true, - "URL.revokeObjectURL": true, - "Worker": true, - "addEventListener": true, - "document": true, - "jQuery": true, - "localStorage": true, - "navigator": true, - "postMessage": true, - "removeEventListener": true, - "setTimeout": true - }, - "packages": { - "browserify>browser-resolve": true, - "browserify>process": true, - "browserify>timers-browserify": true - } - }, "nanoid": { "globals": { "crypto": true, @@ -6970,12 +4823,6 @@ "react-devtools>react-devtools-core": true } }, - "react-devtools>ip": { - "packages": { - "browserify>buffer": true, - "browserify>os-browserify": true - } - }, "react-devtools>react-devtools-core": { "globals": { "WebSocket": true, @@ -7391,8 +5238,13 @@ "setTimeout": true }, "packages": { - "3box>events": true, - "browserify>util": true + "browserify>util": true, + "safe-event-emitter>events": true + } + }, + "safe-event-emitter>events": { + "globals": { + "console": true } }, "semver": { @@ -7444,12 +5296,6 @@ "string.prototype.matchall>call-bind": true } }, - "stylelint>write-file-atomic>typedarray-to-buffer": { - "packages": { - "browserify>buffer": true, - "jsdom>request>is-typedarray": true - } - }, "textarea-caret": { "globals": { "document.body.appendChild": true, @@ -7501,11 +5347,6 @@ "console.warn": true, "define": true } - }, - "webpack>memory-fs>errno": { - "packages": { - "webpack>memory-fs>errno>prr": true - } } } } \ No newline at end of file diff --git a/lavamoat/browserify/policy-override.json b/lavamoat/browserify/policy-override.json index 388f87f48335..9bc3387269c9 100644 --- a/lavamoat/browserify/policy-override.json +++ b/lavamoat/browserify/policy-override.json @@ -20,11 +20,6 @@ "fetch": true } }, - "3box>graphql-request>cross-fetch>node-fetch": { - "globals": { - "fetch": true - } - }, "lodash": { "globals": { "setTimeout": true, diff --git a/lavamoat/build-system/policy.json b/lavamoat/build-system/policy.json index 600dd2b65905..b50930cc5970 100644 --- a/lavamoat/build-system/policy.json +++ b/lavamoat/build-system/policy.json @@ -1,11 +1,5 @@ { "resources": { - "3box>ipfs>superstruct>clone-deep>shallow-clone>mixin-object": { - "packages": { - "3box>ipfs>superstruct>clone-deep>shallow-clone>mixin-object>for-in": true, - "webpack>micromatch>extglob>extend-shallow>is-extendable": true - } - }, "@babel/code-frame": { "globals": { "console.warn": true, @@ -1809,7 +1803,6 @@ }, "packages": { "chokidar>braces": true, - "chokidar>fsevents": true, "chokidar>glob-parent": true, "chokidar>is-binary-path": true, "chokidar>normalize-path": true, @@ -1836,12 +1829,6 @@ "chokidar>braces>fill-range>to-regex-range>is-number": true } }, - "chokidar>fsevents": { - "globals": { - "process.platform": true - }, - "native": true - }, "chokidar>glob-parent": { "builtin": { "os.platform": true, @@ -2880,21 +2867,7 @@ }, "packages": { "eslint>file-entry-cache>flat-cache>flatted": true, - "eslint>file-entry-cache>flat-cache>rimraf": true - } - }, - "eslint>file-entry-cache>flat-cache>rimraf": { - "builtin": { - "assert": true, - "fs": true, - "path.join": true - }, - "globals": { - "process.platform": true, - "setTimeout": true - }, - "packages": { - "nyc>glob": true + "nyc>rimraf": true } }, "eslint>glob-parent": { @@ -4131,9 +4104,9 @@ }, "gulp-watch>anymatch>micromatch>braces>expand-range>fill-range>randomatic": { "packages": { - "3box>ipfs>kind-of": true, "gulp-watch>anymatch>micromatch>braces>expand-range>fill-range>randomatic>math-random": true, - "gulp>undertaker>bach>array-last>is-number": true + "gulp>undertaker>bach>array-last>is-number": true, + "webpack>micromatch>kind-of": true } }, "gulp-watch>anymatch>micromatch>braces>expand-range>fill-range>randomatic>math-random": { @@ -4249,7 +4222,6 @@ "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>normalize-path": true, "gulp-watch>chokidar>readdirp": true, @@ -4398,1319 +4370,552 @@ "webpack>micromatch>braces>fill-range>repeat-string": true } }, - "gulp-watch>chokidar>fsevents": { + "gulp-watch>chokidar>is-binary-path": { "builtin": { - "events.EventEmitter": true, - "fs.stat": true, - "path.join": true, - "util.inherits": true - }, - "globals": { - "__dirname": true, - "process.nextTick": true, - "process.platform": true, - "setImmediate": true + "path.extname": true }, "packages": { - "gulp-watch>chokidar>fsevents>node-pre-gyp": true + "gulp-watch>chokidar>is-binary-path>binary-extensions": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp": { + "gulp-watch>chokidar>readdirp": { "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, + "path.relative": 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 + "setImmediate": 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 + "fs-extra>graceful-fs": true, + "gulp-watch>chokidar>readdirp>micromatch": true, + "readable-stream": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>nopt": { + "gulp-watch>chokidar>readdirp>micromatch": { "builtin": { - "path": true, - "stream.Stream": true, - "url": true + "path.basename": true, + "path.sep": true, + "util.inspect": 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>braces": true, + "gulp-watch>chokidar>readdirp>micromatch>arr-diff": true, + "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, + "gulp-watch>chokidar>readdirp>micromatch>define-property": true, + "gulp-watch>chokidar>readdirp>micromatch>extend-shallow": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob": true, + "gulp-watch>chokidar>readdirp>micromatch>kind-of": true, + "webpack>micromatch>fragment-cache": true, + "webpack>micromatch>nanomatch": true, + "webpack>micromatch>object.pick": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": 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 - }, + "gulp-watch>chokidar>readdirp>micromatch>define-property": { "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>gulp-cli>isobject": true, + "webpack>micromatch>define-property>is-descriptor": 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>readdirp>micromatch>extend-shallow": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extend-shallow>is-extendable": true, + "webpack>micromatch>extend-shallow>assign-symbols": 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>readdirp>micromatch>extend-shallow>is-extendable": { + "packages": { + "@babel/register>clone-deep>is-plain-object": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog": { - "builtin": { - "events.EventEmitter": true, - "util": true - }, - "globals": { - "process.nextTick": true, - "process.stderr": true - }, + "gulp-watch>chokidar>readdirp>micromatch>extglob": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow": true, + "webpack>micromatch>fragment-cache": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true + } + }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": { "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 + "webpack>micromatch>define-property>is-descriptor": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": { - "builtin": { - "events.EventEmitter": true, - "util.inherits": true + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": { + "globals": { + "__filename": 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>readdirp>micromatch>extglob>expand-brackets>debug": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": true, + "webpack>micromatch>extglob>expand-brackets>posix-character-classes": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug": { "builtin": { - "events.EventEmitter": true, - "stream": true, + "fs.SyncWriteStream": true, + "net.Socket": true, + "tty.WriteStream": true, + "tty.isatty": true, "util": true }, "globals": { - "process.browser": true, - "process.env.READABLE_STREAM": true, - "process.stderr": true, - "process.stdout": true, - "process.version.slice": true, - "setImmediate": true + "chrome": true, + "console": true, + "document": true, + "localStorage": true, + "navigator": true, + "process": 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>readdirp>micromatch>extglob>expand-brackets>debug>ms": 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>readdirp>micromatch>extglob>expand-brackets>define-property": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": { - "globals": { - "process": true + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": true, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>kind-of": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": { "packages": { - "gulp-watch>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true + "gulp-watch>anymatch>micromatch>kind-of": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": { - "builtin": { - "util.deprecate": true + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": { + "packages": { + "gulp-watch>anymatch>micromatch>kind-of": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge": { - "builtin": { - "util.format": true - }, - "globals": { - "clearInterval": true, - "process": true, - "setImmediate": true, - "setInterval": true - }, + "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": { "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>readdirp>micromatch>extglob>expand-brackets>extend-shallow>is-extendable": 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>readdirp>micromatch>extglob>extend-shallow": { + "packages": { + "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow>is-extendable": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": { + "gulp-watch>chokidar>upath": { "builtin": { - "assert.equal": true, - "events": true - }, - "globals": { - "process": true + "path": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": { + "gulp-watch>fancy-log": { + "globals": { + "console": true, + "process.argv.indexOf": true, + "process.stderr.write": true, + "process.stdout.write": true + }, "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 + "fancy-log>ansi-gray": true, + "fancy-log>color-support": true, + "fancy-log>time-stamp": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": { + "gulp-watch>glob-parent": { + "builtin": { + "os.platform": true, + "path": true + }, "packages": { - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point>number-is-nan": true + "gulp-watch>glob-parent>is-glob": true, + "gulp-watch>glob-parent>path-dirname": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": { + "gulp-watch>glob-parent>is-glob": { "packages": { - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi>ansi-regex": true + "gulp-watch>glob-parent>is-glob>is-extglob": 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>glob-parent>path-dirname": { + "builtin": { + "path": true, + "util.inspect": true + }, + "globals": { + "process.platform": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": { + "gulp-watch>path-is-absolute": { "globals": { - "process.stderr": true, - "process.stdout": true + "process.platform": true } }, - "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf": { + "gulp-watch>vinyl-file": { "builtin": { - "assert": true, - "fs": true, - "path.join": true + "path.resolve": true }, "globals": { - "process.platform": true, - "setTimeout": true + "process.cwd": true }, "packages": { - "gulp-watch>chokidar>fsevents>node-pre-gyp>rimraf>glob": true + "del>globby>pinkie-promise": true, + "fs-extra>graceful-fs": true, + "gulp-watch>vinyl-file>pify": true, + "gulp-watch>vinyl-file>strip-bom": true, + "gulp-watch>vinyl-file>strip-bom-stream": true, + "gulp-watch>vinyl-file>vinyl": 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 - }, - "packages": { - "gulp-watch>chokidar>is-binary-path>binary-extensions": true - } - }, - "gulp-watch>chokidar>readdirp": { - "builtin": { - "path.join": true, - "path.relative": true, - "util.inherits": true - }, - "globals": { - "setImmediate": true - }, - "packages": { - "fs-extra>graceful-fs": true, - "gulp-watch>chokidar>readdirp>micromatch": true, - "readable-stream": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch": { - "builtin": { - "path.basename": true, - "path.sep": true, - "util.inspect": true - }, - "globals": { - "process.platform": true - }, - "packages": { - "gulp-watch>chokidar>braces": true, - "gulp-watch>chokidar>readdirp>micromatch>arr-diff": true, - "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, - "gulp-watch>chokidar>readdirp>micromatch>define-property": true, - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob": true, - "gulp-watch>chokidar>readdirp>micromatch>kind-of": true, - "webpack>micromatch>fragment-cache": true, - "webpack>micromatch>nanomatch": true, - "webpack>micromatch>object.pick": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>define-property": { - "packages": { - "gulp>gulp-cli>isobject": true, - "webpack>micromatch>define-property>is-descriptor": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow": { - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow>is-extendable": true, - "webpack>micromatch>extend-shallow>assign-symbols": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extend-shallow>is-extendable": { - "packages": { - "@babel/register>clone-deep>is-plain-object": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob": { - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>array-unique": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow": true, - "webpack>micromatch>fragment-cache": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>define-property": { - "packages": { - "webpack>micromatch>define-property>is-descriptor": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets": { - "globals": { - "__filename": true - }, - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": true, - "webpack>micromatch>extglob>expand-brackets>posix-character-classes": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug": { - "builtin": { - "fs.SyncWriteStream": true, - "net.Socket": true, - "tty.WriteStream": true, - "tty.isatty": true, - "util": true - }, - "globals": { - "chrome": true, - "console": true, - "document": true, - "localStorage": true, - "navigator": true, - "process": true - }, - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>debug>ms": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property": { - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor": { - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": true, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>kind-of": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-accessor-descriptor": { - "packages": { - "gulp-watch>anymatch>micromatch>kind-of": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>define-property>is-descriptor>is-data-descriptor": { - "packages": { - "gulp-watch>anymatch>micromatch>kind-of": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow": { - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>expand-brackets>extend-shallow>is-extendable": true - } - }, - "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow": { - "packages": { - "gulp-watch>chokidar>readdirp>micromatch>extglob>extend-shallow>is-extendable": true - } - }, - "gulp-watch>chokidar>upath": { - "builtin": { - "path": true - } - }, - "gulp-watch>fancy-log": { - "globals": { - "console": true, - "process.argv.indexOf": true, - "process.stderr.write": true, - "process.stdout.write": true - }, - "packages": { - "fancy-log>ansi-gray": true, - "fancy-log>color-support": true, - "fancy-log>time-stamp": true - } - }, - "gulp-watch>glob-parent": { - "builtin": { - "os.platform": true, - "path": true - }, - "packages": { - "gulp-watch>glob-parent>is-glob": true, - "gulp-watch>glob-parent>path-dirname": true - } - }, - "gulp-watch>glob-parent>is-glob": { - "packages": { - "gulp-watch>glob-parent>is-glob>is-extglob": true - } - }, - "gulp-watch>glob-parent>path-dirname": { - "builtin": { - "path": true, - "util.inspect": true - }, - "globals": { - "process.platform": true - } - }, - "gulp-watch>path-is-absolute": { - "globals": { - "process.platform": true - } - }, - "gulp-watch>vinyl-file": { - "builtin": { - "path.resolve": true - }, - "globals": { - "process.cwd": true - }, - "packages": { - "del>globby>pinkie-promise": true, - "fs-extra>graceful-fs": true, - "gulp-watch>vinyl-file>pify": true, - "gulp-watch>vinyl-file>strip-bom": true, - "gulp-watch>vinyl-file>strip-bom-stream": true, - "gulp-watch>vinyl-file>vinyl": true - } - }, - "gulp-watch>vinyl-file>strip-bom": { - "globals": { - "Buffer.isBuffer": true - }, - "packages": { - "gulp>vinyl-fs>remove-bom-buffer>is-utf8": true - } - }, - "gulp-watch>vinyl-file>strip-bom-stream": { - "packages": { - "gulp-watch>vinyl-file>strip-bom": true, - "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": true - } - }, - "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": { - "builtin": { - "util.inherits": true - }, - "globals": { - "Buffer.concat": true, - "setImmediate": true - }, - "packages": { - "readable-stream": true - } - }, - "gulp-watch>vinyl-file>vinyl": { - "builtin": { - "buffer.Buffer": true, - "path.basename": true, - "path.dirname": true, - "path.extname": true, - "path.join": true, - "path.relative": true, - "stream.PassThrough": true, - "stream.Stream": true - }, - "globals": { - "process.cwd": true - }, - "packages": { - "gulp-watch>vinyl-file>vinyl>clone": true, - "gulp-watch>vinyl-file>vinyl>clone-stats": true, - "gulp-watch>vinyl-file>vinyl>replace-ext": true - } - }, - "gulp-watch>vinyl-file>vinyl>clone": { - "globals": { - "Buffer": true - } - }, - "gulp-watch>vinyl-file>vinyl>clone-stats": { - "builtin": { - "fs.Stats": true - } - }, - "gulp-watch>vinyl-file>vinyl>replace-ext": { - "builtin": { - "path.basename": true, - "path.dirname": true, - "path.extname": true, - "path.join": true - } - }, - "gulp-zip": { - "builtin": { - "buffer.constants.MAX_LENGTH": true, - "path.join": true - }, - "packages": { - "gulp-zip>get-stream": true, - "gulp-zip>plugin-error": true, - "gulp-zip>through2": true, - "gulp-zip>yazl": true, - "vinyl": true - } - }, - "gulp-zip>get-stream": { - "builtin": { - "buffer.constants.MAX_LENGTH": true, - "stream.PassThrough": true - }, - "globals": { - "Buffer.concat": true - }, - "packages": { - "pump": true - } - }, - "gulp-zip>plugin-error": { - "builtin": { - "util.inherits": true - }, - "packages": { - "gulp-watch>ansi-colors": true, - "gulp-zip>plugin-error>arr-union": true, - "gulp-zip>plugin-error>extend-shallow": true, - "webpack>micromatch>arr-diff": true - } - }, - "gulp-zip>plugin-error>extend-shallow": { - "packages": { - "gulp-zip>plugin-error>extend-shallow>is-extendable": true, - "webpack>micromatch>extend-shallow>assign-symbols": true - } - }, - "gulp-zip>plugin-error>extend-shallow>is-extendable": { - "packages": { - "@babel/register>clone-deep>is-plain-object": true - } - }, - "gulp-zip>through2": { - "builtin": { - "util.inherits": true - }, - "globals": { - "process.nextTick": true - }, - "packages": { - "gulp-zip>through2>readable-stream": true - } - }, - "gulp-zip>through2>readable-stream": { - "builtin": { - "buffer.Buffer": true, - "events.EventEmitter": true, - "stream": true, - "util": true - }, - "globals": { - "process.env.READABLE_STREAM": true, - "process.nextTick": true, - "process.stderr": true, - "process.stdout": true - }, - "packages": { - "@storybook/api>util-deprecate": true, - "browserify>string_decoder": true, - "pumpify>inherits": true - } - }, - "gulp-zip>yazl": { - "builtin": { - "events.EventEmitter": true, - "fs.createReadStream": true, - "fs.stat": true, - "stream.PassThrough": true, - "stream.Transform": true, - "util.inherits": true, - "zlib.DeflateRaw": true, - "zlib.deflateRaw": true - }, - "globals": { - "Buffer": true, - "setImmediate": true, - "utf8FileName.length": true - }, - "packages": { - "gulp-zip>yazl>buffer-crc32": true - } - }, - "gulp-zip>yazl>buffer-crc32": { - "builtin": { - "buffer.Buffer": true - } - }, - "gulp>glob-watcher": { - "packages": { - "gulp>glob-watcher>anymatch": true, - "gulp>glob-watcher>async-done": true, - "gulp>glob-watcher>chokidar": true, - "gulp>glob-watcher>is-negated-glob": true, - "gulp>glob-watcher>just-debounce": true, - "gulp>undertaker>object.defaults": true - } - }, - "gulp>glob-watcher>anymatch": { - "builtin": { - "path.sep": true - }, - "packages": { - "gulp>glob-watcher>anymatch>micromatch": true, - "gulp>glob-watcher>anymatch>normalize-path": true - } - }, - "gulp>glob-watcher>anymatch>micromatch": { - "builtin": { - "path.basename": true, - "path.sep": true, - "util.inspect": true - }, + "gulp-watch>vinyl-file>strip-bom": { "globals": { - "process.platform": true + "Buffer.isBuffer": true }, "packages": { - "3box>ipfs>kind-of": true, - "gulp>glob-watcher>anymatch>micromatch>define-property": true, - "gulp>glob-watcher>anymatch>micromatch>extend-shallow": true, - "gulp>glob-watcher>chokidar>braces": true, - "webpack>micromatch>arr-diff": true, - "webpack>micromatch>array-unique": true, - "webpack>micromatch>extglob": true, - "webpack>micromatch>fragment-cache": true, - "webpack>micromatch>nanomatch": true, - "webpack>micromatch>object.pick": true, - "webpack>micromatch>regex-not": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true - } - }, - "gulp>glob-watcher>anymatch>micromatch>define-property": { - "packages": { - "gulp>gulp-cli>isobject": true, - "webpack>micromatch>define-property>is-descriptor": true - } - }, - "gulp>glob-watcher>anymatch>micromatch>extend-shallow": { - "packages": { - "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": true, - "webpack>micromatch>extend-shallow>assign-symbols": true - } - }, - "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": { - "packages": { - "@babel/register>clone-deep>is-plain-object": true - } - }, - "gulp>glob-watcher>anymatch>normalize-path": { - "packages": { - "vinyl>remove-trailing-separator": true + "gulp>vinyl-fs>remove-bom-buffer>is-utf8": true } }, - "gulp>glob-watcher>async-done": { - "builtin": { - "domain.create": true - }, - "globals": { - "process.nextTick": true - }, + "gulp-watch>vinyl-file>strip-bom-stream": { "packages": { - "end-of-stream": true, - "gulp>glob-watcher>async-done>process-nextick-args": true, - "gulp>glob-watcher>async-done>stream-exhaust": true, - "pump>once": true - } - }, - "gulp>glob-watcher>async-done>process-nextick-args": { - "globals": { - "process": true + "gulp-watch>vinyl-file>strip-bom": true, + "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": true } }, - "gulp>glob-watcher>async-done>stream-exhaust": { + "gulp-watch>vinyl-file>strip-bom-stream>first-chunk-stream": { "builtin": { - "stream.Writable": true, "util.inherits": true }, "globals": { + "Buffer.concat": true, "setImmediate": true + }, + "packages": { + "readable-stream": true } }, - "gulp>glob-watcher>chokidar": { + "gulp-watch>vinyl-file>vinyl": { "builtin": { - "events.EventEmitter": true, - "fs": true, + "buffer.Buffer": true, "path.basename": true, "path.dirname": true, "path.extname": true, "path.join": true, "path.relative": true, - "path.resolve": true, - "path.sep": true + "stream.PassThrough": true, + "stream.Stream": true }, "globals": { - "clearTimeout": true, - "console.error": true, - "process.env.CHOKIDAR_INTERVAL": true, - "process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR": true, - "process.env.CHOKIDAR_USEPOLLING": true, - "process.nextTick": true, - "process.platform": true, - "setTimeout": true - }, - "packages": { - "eslint>is-glob": true, - "gulp-watch>chokidar>async-each": true, - "gulp-watch>glob-parent": true, - "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>is-binary-path": true, - "gulp>glob-watcher>chokidar>normalize-path": true, - "gulp>glob-watcher>chokidar>readdirp": true, - "gulp>glob-watcher>chokidar>upath": true, - "pumpify>inherits": true - } - }, - "gulp>glob-watcher>chokidar>braces": { - "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range": true, - "gulp>gulp-cli>isobject": true, - "gulp>undertaker>arr-flatten": true, - "webpack>micromatch>array-unique": true, - "webpack>micromatch>braces>repeat-element": true, - "webpack>micromatch>braces>snapdragon-node": true, - "webpack>micromatch>braces>split-string": true, - "webpack>micromatch>extglob>extend-shallow": true, - "webpack>micromatch>snapdragon": true, - "webpack>micromatch>to-regex": true - } - }, - "gulp>glob-watcher>chokidar>braces>fill-range": { - "builtin": { - "util.inspect": true + "process.cwd": true }, "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, - "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": true, - "webpack>micromatch>braces>fill-range>repeat-string": true, - "webpack>micromatch>extglob>extend-shallow": true - } - }, - "gulp>glob-watcher>chokidar>braces>fill-range>is-number": { - "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range>is-number>kind-of": true - } - }, - "gulp>glob-watcher>chokidar>braces>fill-range>is-number>kind-of": { - "packages": { - "browserify>insert-module-globals>is-buffer": true - } - }, - "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": { - "packages": { - "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, - "webpack>micromatch>braces>fill-range>repeat-string": true + "gulp-watch>vinyl-file>vinyl>clone": true, + "gulp-watch>vinyl-file>vinyl>clone-stats": true, + "gulp-watch>vinyl-file>vinyl>replace-ext": true } }, - "gulp>glob-watcher>chokidar>fsevents": { - "builtin": { - "events.EventEmitter": true, - "fs.stat": true, - "path.join": true, - "util.inherits": true - }, + "gulp-watch>vinyl-file>vinyl>clone": { "globals": { - "__dirname": true, - "process.nextTick": true, - "process.platform": true, - "setImmediate": true - }, - "packages": { - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp": true + "Buffer": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp": { + "gulp-watch>vinyl-file>vinyl>clone-stats": { "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 + "fs.Stats": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>detect-libc": { + "gulp-watch>vinyl-file>vinyl>replace-ext": { "builtin": { - "child_process.spawnSync": true, - "fs.readdirSync": true, - "os.platform": true - }, - "globals": { - "process.env": true + "path.basename": true, + "path.dirname": true, + "path.extname": true, + "path.join": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt": { + "gulp-zip": { "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 + "buffer.constants.MAX_LENGTH": true, + "path.join": 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-zip>get-stream": true, + "gulp-zip>plugin-error": true, + "gulp-zip>through2": true, + "gulp-zip>yazl": true, + "vinyl": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv": { + "gulp-zip>get-stream": { "builtin": { - "child_process.exec": true, - "path": true + "buffer.constants.MAX_LENGTH": true, + "stream.PassThrough": 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 + "Buffer.concat": 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 + "pump": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>nopt>osenv>os-homedir": { + "gulp-zip>plugin-error": { "builtin": { - "os.homedir": true + "util.inherits": true }, - "globals": { - "process.env": true, - "process.getuid": true, - "process.platform": true + "packages": { + "gulp-watch>ansi-colors": true, + "gulp-zip>plugin-error>arr-union": true, + "gulp-zip>plugin-error>extend-shallow": true, + "webpack>micromatch>arr-diff": 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-zip>plugin-error>extend-shallow": { + "packages": { + "gulp-zip>plugin-error>extend-shallow>is-extendable": true, + "webpack>micromatch>extend-shallow>assign-symbols": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog": { - "builtin": { - "events.EventEmitter": true, - "util": true - }, - "globals": { - "process.nextTick": true, - "process.stderr": true - }, + "gulp-zip>plugin-error>extend-shallow>is-extendable": { "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 + "@babel/register>clone-deep>is-plain-object": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet": { + "gulp-zip>through2": { "builtin": { - "events.EventEmitter": true, "util.inherits": true }, + "globals": { + "process.nextTick": 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-zip>through2>readable-stream": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream": { + "gulp-zip>through2>readable-stream": { "builtin": { + "buffer.Buffer": true, "events.EventEmitter": true, "stream": true, "util": true }, "globals": { - "process.browser": true, "process.env.READABLE_STREAM": true, + "process.nextTick": true, "process.stderr": true, - "process.stdout": true, - "process.version.slice": true, - "setImmediate": true + "process.stdout": 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 + "@storybook/api>util-deprecate": true, + "browserify>string_decoder": true, + "pumpify>inherits": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>process-nextick-args": { + "gulp-zip>yazl": { + "builtin": { + "events.EventEmitter": true, + "fs.createReadStream": true, + "fs.stat": true, + "stream.PassThrough": true, + "stream.Transform": true, + "util.inherits": true, + "zlib.DeflateRaw": true, + "zlib.deflateRaw": true + }, "globals": { - "process": true - } - }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>string_decoder": { + "Buffer": true, + "setImmediate": true, + "utf8FileName.length": true + }, "packages": { - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": true + "gulp-zip>yazl>buffer-crc32": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>are-we-there-yet>readable-stream>util-deprecate": { + "gulp-zip>yazl>buffer-crc32": { "builtin": { - "util.deprecate": true + "buffer.Buffer": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge": { - "builtin": { - "util.format": true - }, - "globals": { - "clearInterval": true, - "process": true, - "setImmediate": true, - "setInterval": true - }, + "gulp>glob-watcher": { "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>anymatch": true, + "gulp>glob-watcher>async-done": true, + "gulp>glob-watcher>chokidar": true, + "gulp>glob-watcher>is-negated-glob": true, + "gulp>glob-watcher>just-debounce": true, + "gulp>undertaker>object.defaults": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>has-unicode": { + "gulp>glob-watcher>anymatch": { "builtin": { - "os.type": true + "path.sep": true }, - "globals": { - "process.env.LANG": true, - "process.env.LC_ALL": true, - "process.env.LC_CTYPE": true + "packages": { + "gulp>glob-watcher>anymatch>micromatch": true, + "gulp>glob-watcher>anymatch>normalize-path": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>signal-exit": { + "gulp>glob-watcher>anymatch>micromatch": { "builtin": { - "assert.equal": true, - "events": true + "path.basename": true, + "path.sep": true, + "util.inspect": true }, "globals": { - "process": true - } - }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": { + "process.platform": true + }, "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>anymatch>micromatch>define-property": true, + "gulp>glob-watcher>anymatch>micromatch>extend-shallow": true, + "gulp>glob-watcher>chokidar>braces": true, + "webpack>micromatch>arr-diff": true, + "webpack>micromatch>array-unique": true, + "webpack>micromatch>extglob": true, + "webpack>micromatch>fragment-cache": true, + "webpack>micromatch>kind-of": true, + "webpack>micromatch>nanomatch": true, + "webpack>micromatch>object.pick": true, + "webpack>micromatch>regex-not": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point": { + "gulp>glob-watcher>anymatch>micromatch>define-property": { "packages": { - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width>is-fullwidth-code-point>number-is-nan": true + "gulp>gulp-cli>isobject": true, + "webpack>micromatch>define-property>is-descriptor": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi": { + "gulp>glob-watcher>anymatch>micromatch>extend-shallow": { "packages": { - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>strip-ansi>ansi-regex": true + "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": true, + "webpack>micromatch>extend-shallow>assign-symbols": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>wide-align": { + "gulp>glob-watcher>anymatch>micromatch>extend-shallow>is-extendable": { "packages": { - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>gauge>string-width": true + "@babel/register>clone-deep>is-plain-object": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>npmlog>set-blocking": { - "globals": { - "process.stderr": true, - "process.stdout": true + "gulp>glob-watcher>anymatch>normalize-path": { + "packages": { + "vinyl>remove-trailing-separator": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf": { + "gulp>glob-watcher>async-done": { "builtin": { - "assert": true, - "fs": true, - "path.join": true + "domain.create": true }, "globals": { - "process.platform": true, - "setTimeout": true + "process.nextTick": true }, "packages": { - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob": true + "end-of-stream": true, + "gulp>glob-watcher>async-done>process-nextick-args": true, + "gulp>glob-watcher>async-done>stream-exhaust": true, + "pump>once": true + } + }, + "gulp>glob-watcher>async-done>process-nextick-args": { + "globals": { + "process": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob": { + "gulp>glob-watcher>async-done>stream-exhaust": { "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 + "stream.Writable": true, + "util.inherits": 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 + "setImmediate": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>fs.realpath": { + "gulp>glob-watcher>chokidar": { "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 + "events.EventEmitter": true, + "fs": true, + "path.basename": true, + "path.dirname": true, + "path.extname": true, + "path.join": true, + "path.relative": true, + "path.resolve": true, + "path.sep": true }, "globals": { + "clearTimeout": true, "console.error": true, - "console.trace": true, - "process.env.NODE_DEBUG": true, + "process.env.CHOKIDAR_INTERVAL": true, + "process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR": true, + "process.env.CHOKIDAR_USEPOLLING": 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 + "setTimeout": 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 + "eslint>is-glob": true, + "gulp-watch>chokidar>async-each": true, + "gulp-watch>glob-parent": true, + "gulp-watch>path-is-absolute": true, + "gulp>glob-watcher>anymatch": true, + "gulp>glob-watcher>chokidar>braces": true, + "gulp>glob-watcher>chokidar>is-binary-path": true, + "gulp>glob-watcher>chokidar>normalize-path": true, + "gulp>glob-watcher>chokidar>readdirp": true, + "gulp>glob-watcher>chokidar>upath": true, + "pumpify>inherits": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>inherits": { - "builtin": { - "util.inherits": true + "gulp>glob-watcher>chokidar>braces": { + "packages": { + "gulp>glob-watcher>chokidar>braces>fill-range": true, + "gulp>gulp-cli>isobject": true, + "gulp>undertaker>arr-flatten": true, + "webpack>micromatch>array-unique": true, + "webpack>micromatch>braces>repeat-element": true, + "webpack>micromatch>braces>snapdragon-node": true, + "webpack>micromatch>braces>split-string": true, + "webpack>micromatch>extglob>extend-shallow": true, + "webpack>micromatch>snapdragon": true, + "webpack>micromatch>to-regex": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch": { + "gulp>glob-watcher>chokidar>braces>fill-range": { "builtin": { - "path": true - }, - "globals": { - "console.error": true + "util.inspect": true }, "packages": { - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": true + "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, + "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": true, + "webpack>micromatch>braces>fill-range>repeat-string": true, + "webpack>micromatch>extglob>extend-shallow": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>minimatch>brace-expansion": { + "gulp>glob-watcher>chokidar>braces>fill-range>is-number": { "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>braces>fill-range>is-number>kind-of": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>rimraf>glob>once": { + "gulp>glob-watcher>chokidar>braces>fill-range>is-number>kind-of": { "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 + "browserify>insert-module-globals>is-buffer": true } }, - "gulp>glob-watcher>chokidar>fsevents>node-pre-gyp>tar>safe-buffer": { - "builtin": { - "buffer": true + "gulp>glob-watcher>chokidar>braces>fill-range>to-regex-range": { + "packages": { + "gulp>glob-watcher>chokidar>braces>fill-range>is-number": true, + "webpack>micromatch>braces>fill-range>repeat-string": true } }, "gulp>glob-watcher>chokidar>is-binary-path": { @@ -5793,7 +4998,7 @@ }, "gulp>undertaker>arr-map>make-iterator": { "packages": { - "3box>ipfs>kind-of": true + "webpack>micromatch>kind-of": true } }, "gulp>undertaker>bach": { @@ -6419,9 +5624,9 @@ }, "lavamoat>lavamoat-core>merge-deep>clone-deep>shallow-clone": { "packages": { - "3box>ipfs>superstruct>clone-deep>shallow-clone>mixin-object": true, "lavamoat>lavamoat-core>merge-deep>clone-deep>shallow-clone>kind-of": true, "lavamoat>lavamoat-core>merge-deep>clone-deep>shallow-clone>lazy-cache": true, + "lavamoat>lavamoat-core>merge-deep>clone-deep>shallow-clone>mixin-object": true, "webpack>micromatch>extglob>extend-shallow>is-extendable": true } }, @@ -6438,6 +5643,12 @@ "process.env.UNLAZY": true } }, + "lavamoat>lavamoat-core>merge-deep>clone-deep>shallow-clone>mixin-object": { + "packages": { + "lavamoat>lavamoat-core>merge-deep>clone-deep>shallow-clone>mixin-object>for-in": true, + "webpack>micromatch>extglob>extend-shallow>is-extendable": true + } + }, "lavamoat>lavamoat-core>merge-deep>kind-of": { "packages": { "browserify>insert-module-globals>is-buffer": true @@ -6646,6 +5857,20 @@ "path.resolve": true } }, + "nyc>rimraf": { + "builtin": { + "assert": true, + "fs": true, + "path.join": true + }, + "globals": { + "process.platform": true, + "setTimeout": true + }, + "packages": { + "nyc>glob": true + } + }, "nyc>signal-exit": { "builtin": { "assert.equal": true, @@ -7991,19 +7216,19 @@ }, "webpack>micromatch>define-property>is-descriptor": { "packages": { - "3box>ipfs>kind-of": true, "webpack>micromatch>define-property>is-descriptor>is-accessor-descriptor": true, - "webpack>micromatch>define-property>is-descriptor>is-data-descriptor": true + "webpack>micromatch>define-property>is-descriptor>is-data-descriptor": true, + "webpack>micromatch>kind-of": true } }, "webpack>micromatch>define-property>is-descriptor>is-accessor-descriptor": { "packages": { - "3box>ipfs>kind-of": true + "webpack>micromatch>kind-of": true } }, "webpack>micromatch>define-property>is-descriptor>is-data-descriptor": { "packages": { - "3box>ipfs>kind-of": true + "webpack>micromatch>kind-of": true } }, "webpack>micromatch>extglob": { @@ -8106,11 +7331,11 @@ "util.inspect": true }, "packages": { - "3box>ipfs>kind-of": true, "nyc>spawn-wrap>is-windows": true, "webpack>micromatch>arr-diff": true, "webpack>micromatch>array-unique": true, "webpack>micromatch>fragment-cache": true, + "webpack>micromatch>kind-of": true, "webpack>micromatch>nanomatch>define-property": true, "webpack>micromatch>nanomatch>extend-shallow": true, "webpack>micromatch>nanomatch>is-odd": true, @@ -8423,7 +7648,7 @@ }, "webpack>micromatch>snapdragon>use": { "packages": { - "3box>ipfs>kind-of": true + "webpack>micromatch>kind-of": true } }, "webpack>micromatch>to-regex": { diff --git a/package.json b/package.json index 7a2aca45de94..8c49894113e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metamask-crx", - "version": "10.20.0", + "version": "10.21.0", "private": true, "repository": { "type": "git", @@ -73,10 +73,10 @@ "lavamoat:build": "lavamoat development/build/index.js --policy lavamoat/build-system/policy.json --policyOverride lavamoat/build-system/policy-override.json", "lavamoat:build:auto": "yarn lavamoat:build --writeAutoPolicy", "lavamoat:debug:build": "yarn lavamoat:build --writeAutoPolicyDebug --policydebug lavamoat/build-system/policy-debug.json", - "lavamoat:background:auto": "node ./development/generate-lavamoat-policies.js", - "lavamoat:background:auto:ci": "node ./development/generate-lavamoat-policies.js --parallel=false", - "lavamoat:auto": "yarn lavamoat:build:auto && yarn lavamoat:background:auto", - "lavamoat:auto:ci": "yarn lavamoat:build:auto && yarn lavamoat:background:auto:ci", + "lavamoat:webapp:auto": "node ./development/generate-lavamoat-policies.js --devMode=true", + "lavamoat:webapp:auto:ci": "node ./development/generate-lavamoat-policies.js --parallel=false", + "lavamoat:auto": "yarn lavamoat:build:auto && yarn lavamoat:webapp:auto", + "lavamoat:auto:ci": "yarn lavamoat:build:auto && yarn lavamoat:webapp:auto:ci", "ts-migration:enumerate": "ts-node development/ts-migration-dashboard/scripts/write-list-of-files-to-convert.ts", "ts-migration:dashboard:watch": "ts-node development/ts-migration-dashboard/scripts/build.ts --watch", "ts-migration:dashboard:build": "ts-node development/ts-migration-dashboard/scripts/build.ts", @@ -91,26 +91,15 @@ "**/redux/symbol-observable": "^2.0.3", "**/redux-devtools-instrument/symbol-observable": "^2.0.3", "**/rxjs/symbol-observable": "^2.0.3", - "**/xmlhttprequest-ssl": "^1.6.2", - "3box/ipfs/ipld-zcash/zcash-bitcore-lib/lodash": "^4.17.21", - "3box/ipfs/ipld-zcash/zcash-bitcore-lib/elliptic": "^6.5.4", - "3box/ipfs/libp2p-mdns/multicast-dns/dns-packet": "^5.2.2", - "3box/ipfs/prometheus-gc-stats/gc-stats/node-pre-gyp/tar": "^6.1.2", - "3box/**/libp2p-crypto/node-forge": "^1.3.0", - "3box/**/libp2p-keychain/node-forge": "^1.3.0", - "3box/ipfs/libp2p-webrtc-star/socket.io/engine.io": "^4.0.0", - "3box/**/@hapi/hoek": "^8.5.1", "analytics-node/axios": "^0.21.2", "ganache-core/lodash": "^4.17.21", "netmask": "^2.0.1", "pubnub/superagent-proxy": "^3.0.0", - "pull-ws": "^3.3.2", "json-schema": "^0.4.0", "simple-get": "^4.0.1", "@storybook/**/ast-types": "^0.14.2" }, "dependencies": { - "3box": "^1.10.2", "@babel/runtime": "^7.5.5", "@download/blockies": "^1.0.3", "@ensdomains/content-hash": "^2.5.6", @@ -420,23 +409,6 @@ "chromedriver": true, "geckodriver": true, "react-devtools>electron": true, - "3box>ipfs-postmsg-proxy>peer-id>libp2p-crypto>libp2p-crypto-secp256k1>secp256k1": false, - "3box>ipfs>ipfs-repo>datastore-level>leveldown": false, - "3box>ipfs>ipfs-unixfs-importer>rabin-wasm>assemblyscript": false, - "3box>ipfs>ipld-ethereum>ethereumjs-account>ethereumjs-util>keccak": false, - "3box>ipfs>ipld-ethereum>ethereumjs-account>ethereumjs-util>secp256k1": false, - "3box>ipfs>ipld-ethereum>ethereumjs-block>ethereumjs-util>keccak": false, - "3box>ipfs>ipld-ethereum>ethereumjs-block>ethereumjs-util>secp256k1": false, - "3box>ipfs>ipld-ethereum>ethereumjs-tx>ethereumjs-util>keccak": false, - "3box>ipfs>ipld-ethereum>ethereumjs-tx>ethereumjs-util>secp256k1": false, - "3box>ipfs>ipld-ethereum>merkle-patricia-tree>ethereumjs-util>keccak": false, - "3box>ipfs>ipld-ethereum>merkle-patricia-tree>ethereumjs-util>secp256k1": false, - "3box>ipfs>libp2p-crypto>libp2p-crypto-secp256k1>secp256k1": false, - "3box>ipfs>libp2p-crypto>ursa-optional": false, - "3box>ipfs>prometheus-gc-stats>gc-stats": false, - "3box>orbit-db>orbit-db-cache>leveldown": false, - "3box>orbit-db>orbit-db-keystore>leveldown": false, - "3box>orbit-db>orbit-db-keystore>libp2p-crypto-secp256k1>secp256k1": false, "@eth-optimism/contracts>@ethersproject/hardware-wallets>@ledgerhq/hw-transport-node-hid>@ledgerhq/hw-transport-node-hid-noevents>node-hid": false, "@eth-optimism/contracts>@ethersproject/hardware-wallets>@ledgerhq/hw-transport-node-hid>node-hid": false, "@eth-optimism/contracts>@ethersproject/hardware-wallets>@ledgerhq/hw-transport-node-hid>usb": false, diff --git a/patches/secp256k1+3.8.0.patch b/patches/secp256k1+3.8.0.patch deleted file mode 100644 index e44de3f04e1a..000000000000 --- a/patches/secp256k1+3.8.0.patch +++ /dev/null @@ -1,37 +0,0 @@ -lazy precompute for faster module initialization - -diff --git a/node_modules/secp256k1/lib/js/ecpointg.js b/node_modules/secp256k1/lib/js/ecpointg.js -index 0144364..09a87c5 100644 ---- a/node_modules/secp256k1/lib/js/ecpointg.js -+++ b/node_modules/secp256k1/lib/js/ecpointg.js -@@ -8,11 +8,12 @@ function ECPointG () { - this.x = BN.fromBuffer(Buffer.from('79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798', 'hex')) - this.y = BN.fromBuffer(Buffer.from('483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8', 'hex')) - this.inf = false -- -- this._precompute() -+ this.precomputed = undefined - } - - ECPointG.prototype._precompute = function () { -+ if (this.precomputed !== undefined) return -+ - var ecpoint = new ECPoint(this.x, this.y) - - var dstep = 4 -@@ -34,6 +35,7 @@ ECPointG.prototype._precompute = function () { - } - - ECPointG.prototype.mul = function (num) { -+ this._precompute() - // Algorithm 3.42 Fixed-base NAF windowing method for point multiplication - var step = this.precomputed.doubles.step - var points = this.precomputed.doubles.points -@@ -68,6 +70,7 @@ ECPointG.prototype.mul = function (num) { - } - - ECPointG.prototype.mulAdd = function (k1, p2, k2) { -+ this._precompute() - var nafPointsP1 = this.precomputed.naf - var nafPointsP2 = p2._getNAFPoints1() - var wnd = [nafPointsP1.points, nafPointsP2.points] diff --git a/shared/constants/metametrics.js b/shared/constants/metametrics.js index 78990d81b0d1..f30dc56c2af9 100644 --- a/shared/constants/metametrics.js +++ b/shared/constants/metametrics.js @@ -178,8 +178,8 @@ * identify the new number_of_tokens trait * @property {'opensea_api_enabled'} OPENSEA_API_ENABLED - when the OpenSea API is enabled * we identify the opensea_api_enabled trait - * @property {'three_box_enabled'} THREE_BOX_ENABLED - when 3box feature is - * toggled we identify the 3box_enabled trait + * @property {'three_box_enabled'} THREE_BOX_ENABLED - When 3Box feature is + * toggled we identify the 3box_enabled trait. This trait has been deprecated. * @property {'theme'} THEME - when the user's theme changes we identify the theme trait * @property {'token_detection_enabled'} TOKEN_DETECTION_ENABLED - when token detection feature is toggled we * identify the token_detection_enabled trait @@ -231,8 +231,8 @@ export const TRAITS = { * the user has across all networks and accounts. * @property {boolean} [opensea_api_enabled] - does the user have the OpenSea * API enabled? - * @property {boolean} [three_box_enabled] - does the user have 3box sync - * enabled? + * @property {boolean} [three_box_enabled] - Does the user have 3box sync + * enabled? (deprecated) * @property {string} [theme] - which theme the user has selected * @property {boolean} [token_detection_enabled] - does the user have token detection is enabled? */ diff --git a/test/e2e/fixture-builder.js b/test/e2e/fixture-builder.js index 589cbea9a25e..11796286682d 100644 --- a/test/e2e/fixture-builder.js +++ b/test/e2e/fixture-builder.js @@ -593,16 +593,6 @@ class FixtureBuilder { return this; } - withThreeBoxController(data) { - merge( - this.fixture.data.ThreeBoxController - ? this.fixture.data.ThreeBoxController - : (this.fixture.data.ThreeBoxController = {}), - data, - ); - return this; - } - withTokenListController(data) { merge( this.fixture.data.TokenListController diff --git a/test/e2e/mock-3box/threebox-mock-server.js b/test/e2e/mock-3box/threebox-mock-server.js deleted file mode 100644 index e6308badac95..000000000000 --- a/test/e2e/mock-3box/threebox-mock-server.js +++ /dev/null @@ -1,57 +0,0 @@ -const http = require('http'); - -const PORT = 8889; - -class ThreeboxMockServer { - constructor() { - this.server = http.createServer(this.requestHandler); - this.database = {}; - } - - async start() { - return new Promise((resolve, reject) => { - this.server = this.server.listen(PORT); - this.server.once('error', reject); - this.server.once('listening', resolve); - }); - } - - async stop() { - if (!this.server) { - return; - } - - await new Promise((resolve, reject) => { - this.server.close(); - this.server.once('error', reject); - this.server.once('close', resolve); - }); - } - - requestHandler = (request, response) => { - response.setHeader('Content-Type', 'application/json'); - if (request.method === 'POST') { - let body = ''; - request.on('data', (chunk) => { - body += chunk.toString(); // convert Buffer to string - }); - request.on('end', () => { - const { key, data } = JSON.parse(body); - this.database[key] = data; - response.setHeader('Access-Control-Allow-Headers', '*'); - response.end('ok'); - }); - } else if (request.method === 'GET') { - const key = new URL(request.url, 'https://example.org/').searchParams.get( - 'key', - ); - - response.setHeader('Access-Control-Allow-Headers', '*'); - response.end(JSON.stringify(this.database[key] || '')); - } else { - response.end('unknown request'); - } - }; -} - -module.exports = ThreeboxMockServer; diff --git a/test/e2e/restore/MetaMaskUserData.json b/test/e2e/restore/MetaMaskUserData.json new file mode 100644 index 000000000000..abea11e149b9 --- /dev/null +++ b/test/e2e/restore/MetaMaskUserData.json @@ -0,0 +1,50 @@ +{ + "addressBook": { + "addressBook": { + "0x539": { + "0x0c54FcCd2e384b4BB6f2E405Bf5Cbc15a017AaFb": { + "address": "0x0c54FcCd2e384b4BB6f2E405Bf5Cbc15a017AaFb", + "chainId": "0x539", + "isEns": false, + "memo": "", + "name": "Test Account" + } + } + } + }, + "preferences": { + "advancedGasFee": null, + "currentLocale": "en", + "dismissSeedBackUpReminder": true, + "featureFlags": { + "showIncomingTransactions": true + }, + "forgottenPassword": false, + "frequentRpcListDetail": [ + { + "chainId": "0x539", + "nickname": "Localhost 8545", + "rpcPrefs": {}, + "rpcUrl": "http://localhost:8545", + "ticker": "ETH" + } + ], + "infuraBlocked": false, + "ipfsGateway": "dweb.link", + "knownMethodData": {}, + "ledgerTransportType": "webhid", + "openSeaEnabled": false, + "preferences": { + "hideZeroBalanceTokens": false, + "showFiatInTestnets": false, + "showTestNetworks": false, + "useNativeCurrencyAsPrimaryCurrency": true + }, + "theme": "light", + "useBlockie": false, + "useCollectibleDetection": false, + "useNonceField": false, + "usePhishDetect": true, + "useTokenDetection": false + } +} diff --git a/test/e2e/run-all.js b/test/e2e/run-all.js index 2623f9ba9fdc..ad538f3f1960 100644 --- a/test/e2e/run-all.js +++ b/test/e2e/run-all.js @@ -51,7 +51,8 @@ async function main() { if (!snaps) { testPaths = [ ...testPaths, - ...(await getTestPathsForTestDir(path.join(__dirname, 'swaps'))), + // TODO: Enable the next line once the Swaps E2E tests are stable. + // ...(await getTestPathsForTestDir(path.join(__dirname, 'swaps'))), path.join(__dirname, 'metamask-ui.spec.js'), ]; } diff --git a/test/e2e/tests/backup.spec.js b/test/e2e/tests/backup-restore.spec.js similarity index 59% rename from test/e2e/tests/backup.spec.js rename to test/e2e/tests/backup-restore.spec.js index 90fa400ce24d..1310abd5302e 100644 --- a/test/e2e/tests/backup.spec.js +++ b/test/e2e/tests/backup-restore.spec.js @@ -1,5 +1,6 @@ const { strict: assert } = require('assert'); const { promises: fs } = require('fs'); +const path = require('path'); const { convertToHexValue, withFixtures, @@ -36,7 +37,14 @@ const backupExists = async () => { } }; -describe('Backup', function () { +const restoreFile = path.join( + __dirname, + '..', + 'restore', + 'MetaMaskUserData.json', +); + +describe('Backup and Restore', function () { const ganacheOptions = { accounts: [ { @@ -46,7 +54,7 @@ describe('Backup', function () { }, ], }; - it('should create backup for the account', async function () { + it('should backup the account settings', async function () { await withFixtures( { fixtures: new FixtureBuilder().build(), @@ -79,4 +87,40 @@ describe('Backup', function () { }, ); }); + + it('should restore the account settings', async function () { + await withFixtures( + { + fixtures: new FixtureBuilder().build(), + ganacheOptions, + title: this.test.title, + }, + async ({ driver }) => { + await driver.navigate(); + await driver.fill('#password', 'correct horse battery staple'); + await driver.press('#password', driver.Key.ENTER); + + // Restore + await driver.clickElement('.account-menu__icon'); + await driver.clickElement({ text: 'Settings', tag: 'div' }); + await driver.clickElement({ text: 'Advanced', tag: 'div' }); + const restore = await driver.findElement('#restore-file'); + await restore.sendKeys(restoreFile); + + // Dismiss success message + await driver.waitForSelector({ + css: '.actionable-message__message', + text: 'Your data has been restored successfully', + }); + await driver.clickElement({ text: 'Dismiss', tag: 'button' }); + + // Verify restore + await driver.clickElement({ text: 'Contacts', tag: 'div' }); + const recipient = await driver.findElement('[data-testid="recipient"]'); + assert.ok( + /Test\sAccount\s*0x0c54...AaFb/u.test(await recipient.getText()), + ); + }, + ); + }); }); diff --git a/test/e2e/tests/threebox.spec.js b/test/e2e/tests/threebox.spec.js deleted file mode 100644 index af60b0be0b73..000000000000 --- a/test/e2e/tests/threebox.spec.js +++ /dev/null @@ -1,102 +0,0 @@ -const { convertToHexValue, withFixtures, largeDelayMs } = require('../helpers'); -const ThreeboxMockServer = require('../mock-3box/threebox-mock-server'); -const FixtureBuilder = require('../fixture-builder'); - -describe('Threebox', function () { - const ganacheOptions = { - accounts: [ - { - secretKey: - '0x7C9529A67102755B7E6102D6D950AC5D5863C98713805CEC576B945B15B71EAC', - balance: convertToHexValue(25000000000000000000), - }, - ], - }; - let threeboxServer; - before(async function () { - threeboxServer = new ThreeboxMockServer(); - await threeboxServer.start(); - }); - after(async function () { - await threeboxServer.stop(); - }); - - it('Set up data to be restored by 3box', async function () { - await withFixtures( - { - fixtures: new FixtureBuilder().build(), - ganacheOptions, - title: this.test.title, - }, - async ({ driver }) => { - await driver.navigate(); - await driver.fill('#password', 'correct horse battery staple'); - await driver.press('#password', driver.Key.ENTER); - - // turns on threebox syncing - await driver.clickElement('.account-menu__icon'); - await driver.clickElement({ text: 'Settings', tag: 'div' }); - - // turns on threebox syncing - await driver.clickElement({ text: 'Advanced', tag: 'div' }); - await driver.clickElement( - '[data-testid="advanced-setting-3box"] .toggle-button div', - ); - - // updates settings and address book - // navigates to General settings - await driver.clickElement({ text: 'General', tag: 'div' }); - - // turns on use of blockies - await driver.clickElement('.toggle-button > div'); - - // adds an address to the contact list - await driver.clickElement({ text: 'Contacts', tag: 'div' }); - - await driver.clickElement('.address-book__link'); - await driver.fill('#nickname', 'Test User Name 11'); - await driver.fill( - 'input[placeholder="Search, public address (0x), or ENS"]', - '0x2f318C334780961FB129D2a6c30D0763d9a5C970', - ); - await driver.delay(largeDelayMs * 2); - await driver.clickElement({ text: 'Save', tag: 'button' }); - await driver.findElement({ text: 'Test User Name 11', tag: 'div' }); - }, - ); - }); - it('Restore from 3box', async function () { - await withFixtures( - { - fixtures: new FixtureBuilder() - .withThreeBoxController({ - threeBoxSyncingAllowed: true, - showRestorePrompt: true, - threeBoxLastUpdated: 0, - threeBoxAddress: '0x64480aa2768ef12f3f19c5a01206ceb0f82d06b9', - threeBoxSynced: true, - threeBoxDisabled: false, - }) - .build(), - ganacheOptions, - title: this.test.title, - }, - async ({ driver }) => { - await driver.navigate(); - await driver.fill('#password', 'correct horse battery staple'); - await driver.press('#password', driver.Key.ENTER); - - // confirms the 3box restore notification - await driver.clickElement('.home-notification__accept-button'); - - // goes to the settings screen - await driver.clickElement('.account-menu__icon'); - await driver.clickElement({ text: 'Settings', tag: 'div' }); - - // finds the restored address in the contact list - await driver.clickElement({ text: 'Contacts', tag: 'div' }); - await driver.findElement({ text: 'Test User Name 11', tag: 'div' }); - }, - ); - }); -}); diff --git a/ui/ducks/app/app.js b/ui/ducks/app/app.js index 78fb56fb62ef..c61c00a8e3b7 100644 --- a/ui/ducks/app/app.js +++ b/ui/ducks/app/app.js @@ -4,9 +4,6 @@ import { } from '../../../shared/constants/hardware-wallets'; import * as actionConstants from '../../store/actionConstants'; -// actionConstants -const SET_THREEBOX_LAST_UPDATED = 'metamask/app/SET_THREEBOX_LAST_UPDATED'; - export default function reduceApp(state = {}, action) { // default state const appState = { @@ -42,8 +39,6 @@ export default function reduceApp(state = {}, action) { }, networksTabSelectedRpcUrl: '', loadingMethodData: false, - show3BoxModalAfterImport: false, - threeBoxLastUpdated: null, requestAccountTabs: {}, openMetaMaskTabs: {}, currentWindowTab: {}, @@ -341,12 +336,6 @@ export default function reduceApp(state = {}, action) { loadingMethodData: false, }; - case SET_THREEBOX_LAST_UPDATED: - return { - ...appState, - threeBoxLastUpdated: action.value, - }; - case actionConstants.SET_REQUEST_ACCOUNT_TABS: return { ...appState, @@ -418,13 +407,6 @@ export default function reduceApp(state = {}, action) { } // Action Creators -export function setThreeBoxLastUpdated(lastUpdated) { - return { - type: SET_THREEBOX_LAST_UPDATED, - value: lastUpdated, - }; -} - export function hideWhatsNewPopup() { return { type: actionConstants.HIDE_WHATS_NEW_POPUP, diff --git a/ui/helpers/constants/settings.js b/ui/helpers/constants/settings.js index d6b12deae9e9..e52ae39b5b9d 100644 --- a/ui/helpers/constants/settings.js +++ b/ui/helpers/constants/settings.js @@ -118,13 +118,6 @@ export const SETTINGS_CONSTANTS = [ route: `${ADVANCED_ROUTE}#autolock-timer`, icon: 'fas fa-sliders-h', }, - { - tabMessage: (t) => t('advanced'), - sectionMessage: (t) => t('syncWithThreeBox'), - descriptionMessage: (t) => t('syncWithThreeBoxDescription'), - route: `${ADVANCED_ROUTE}#sync-with3box`, - icon: 'fas fa-sliders-h', - }, { tabMessage: (t) => t('advanced'), sectionMessage: (t) => t('ipfsGateway'), diff --git a/ui/helpers/utils/settings-search.test.js b/ui/helpers/utils/settings-search.test.js index 4fcc00f098cb..714f21218f5a 100644 --- a/ui/helpers/utils/settings-search.test.js +++ b/ui/helpers/utils/settings-search.test.js @@ -57,10 +57,6 @@ const t = (key) => { return 'Auto-lock timer (minutes)'; case 'autoLockTimeLimitDescription': return 'Set the idle time in minutes before MetaMask will become locked.'; - case 'syncWithThreeBox': - return 'Sync data with 3Box (experimental)'; - case 'syncWithThreeBoxDescription': - return 'Turn on to have your settings backed up with 3Box. This feature is currently experimental; use at your own risk.'; case 'ipfsGateway': return 'IPFS Gateway'; case 'ipfsGatewayDescription': @@ -163,7 +159,7 @@ describe('Settings Search Utils', () => { }); it('should get good advanced section number', () => { - expect(getNumberOfSettingsInSection(t, t('advanced'))).toStrictEqual(16); + expect(getNumberOfSettingsInSection(t, t('advanced'))).toStrictEqual(15); }); it('should get good contact section number', () => { diff --git a/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js b/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js index cd2b106d2fe6..c06d78db17d6 100644 --- a/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js +++ b/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js @@ -20,7 +20,6 @@ export default class ImportWithSeedPhrase extends PureComponent { history: PropTypes.object, onSubmit: PropTypes.func.isRequired, setSeedPhraseBackedUp: PropTypes.func, - initializeThreeBox: PropTypes.func, }; UNSAFE_componentWillMount() { @@ -43,8 +42,7 @@ export default class ImportWithSeedPhrase extends PureComponent { } handleImport = async (password, seedPhrase) => { - const { history, onSubmit, setSeedPhraseBackedUp, initializeThreeBox } = - this.props; + const { history, onSubmit, setSeedPhraseBackedUp } = this.props; await onSubmit(password, seedPhrase); this.context.trackEvent({ @@ -57,7 +55,6 @@ export default class ImportWithSeedPhrase extends PureComponent { }); await setSeedPhraseBackedUp(true); - initializeThreeBox(); history.replace(INITIALIZE_END_OF_FLOW_ROUTE); }; diff --git a/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.container.js b/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.container.js index 7d2fef50f1bb..b59d27a8d652 100644 --- a/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.container.js +++ b/ui/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.container.js @@ -1,15 +1,11 @@ import { connect } from 'react-redux'; -import { - setSeedPhraseBackedUp, - initializeThreeBox, -} from '../../../../store/actions'; +import { setSeedPhraseBackedUp } from '../../../../store/actions'; import ImportWithSeedPhrase from './import-with-seed-phrase.component'; const mapDispatchToProps = (dispatch) => { return { setSeedPhraseBackedUp: (seedPhraseBackupState) => dispatch(setSeedPhraseBackedUp(seedPhraseBackupState)), - initializeThreeBox: () => dispatch(initializeThreeBox()), }; }; diff --git a/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase-component.test.js b/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase-component.test.js index bf889b6a77eb..bd72a3646f89 100644 --- a/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase-component.test.js +++ b/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase-component.test.js @@ -139,13 +139,11 @@ describe('ConfirmSeedPhrase Component', () => { ]; const trackEventSpy = sinon.spy(); const replaceSpy = sinon.spy(); - const initialize3BoxSpy = sinon.spy(); const component = shallowRender( { seedPhrase: '鼠 牛 虎 兔 龍 蛇 馬 羊 猴 雞 狗 豬', history: { replace: replaceSpy }, setSeedPhraseBackedUp: () => Promise.resolve(), - initializeThreeBox: initialize3BoxSpy, }, { trackEvent: trackEventSpy, @@ -174,7 +172,6 @@ describe('ConfirmSeedPhrase Component', () => { is_backup_skipped: false, }, }); - expect(initialize3BoxSpy.calledOnce).toStrictEqual(true); expect(replaceSpy.args[0][0]).toStrictEqual('/initialize/end-of-flow'); }); }); diff --git a/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.component.js b/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.component.js index b7a467fd0354..f178b48ca61d 100644 --- a/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.component.js +++ b/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.component.js @@ -28,7 +28,6 @@ export default class ConfirmSeedPhrase extends PureComponent { static propTypes = { history: PropTypes.object, seedPhrase: PropTypes.string, - initializeThreeBox: PropTypes.func, setSeedPhraseBackedUp: PropTypes.func, }; @@ -74,7 +73,7 @@ export default class ConfirmSeedPhrase extends PureComponent { }; handleSubmit = async () => { - const { history, setSeedPhraseBackedUp, initializeThreeBox } = this.props; + const { history, setSeedPhraseBackedUp } = this.props; if (!this.isValid()) { return; @@ -91,7 +90,6 @@ export default class ConfirmSeedPhrase extends PureComponent { }, }); - initializeThreeBox(); history.replace(INITIALIZE_END_OF_FLOW_ROUTE); }); } catch (error) { diff --git a/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.container.js b/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.container.js index 339bb35136e3..4dadebc0f5a7 100644 --- a/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.container.js +++ b/ui/pages/first-time-flow/seed-phrase/confirm-seed-phrase/confirm-seed-phrase.container.js @@ -1,15 +1,11 @@ import { connect } from 'react-redux'; -import { - setSeedPhraseBackedUp, - initializeThreeBox, -} from '../../../../store/actions'; +import { setSeedPhraseBackedUp } from '../../../../store/actions'; import ConfirmSeedPhrase from './confirm-seed-phrase.component'; const mapDispatchToProps = (dispatch) => { return { setSeedPhraseBackedUp: (seedPhraseBackupState) => dispatch(setSeedPhraseBackedUp(seedPhraseBackupState)), - initializeThreeBox: () => dispatch(initializeThreeBox()), }; }; diff --git a/ui/pages/home/home.component.js b/ui/pages/home/home.component.js index d1f15978a32f..718c5174f2b7 100644 --- a/ui/pages/home/home.component.js +++ b/ui/pages/home/home.component.js @@ -6,7 +6,6 @@ import { EVENT_NAMES, CONTEXT_PROPS, } from '../../../shared/constants/metametrics'; -import { formatDate } from '../../helpers/utils/util'; import AssetList from '../../components/app/asset-list'; import CollectiblesTab from '../../components/app/collectibles-tab'; import HomeNotification from '../../components/app/home-notification'; @@ -59,9 +58,6 @@ import BetaHomeFooter from './beta/beta-home-footer.component'; import FlaskHomeFooter from './flask/flask-home-footer.component'; ///: END:ONLY_INCLUDE_IN -const LEARN_MORE_URL = - 'https://metamask.zendesk.com/hc/en-us/articles/360045129011-Intro-to-MetaMask-v8-extension'; - function shouldCloseNotificationPopup({ isNotification, totalUnapprovedCount, @@ -88,14 +84,6 @@ export default class Home extends PureComponent { shouldShowSeedPhraseReminder: PropTypes.bool.isRequired, isPopup: PropTypes.bool, isNotification: PropTypes.bool.isRequired, - threeBoxSynced: PropTypes.bool, - setupThreeBox: PropTypes.func, - turnThreeBoxSyncingOn: PropTypes.func, - showRestorePrompt: PropTypes.bool, - selectedAddress: PropTypes.string, - restoreFromThreeBox: PropTypes.func, - setShowRestorePromptToFalse: PropTypes.func, - threeBoxLastUpdated: PropTypes.number, firstPermissionsRequestId: PropTypes.string, // This prop is used in the `shouldCloseNotificationPopup` function // eslint-disable-next-line react/no-unused-prop-types @@ -236,26 +224,13 @@ export default class Home extends PureComponent { } componentDidUpdate(_prevProps, prevState) { - const { - closeNotificationPopup, - setupThreeBox, - showRestorePrompt, - threeBoxLastUpdated, - threeBoxSynced, - isNotification, - } = this.props; + const { closeNotificationPopup, isNotification } = this.props; const { notificationClosing } = this.state; if (notificationClosing && !prevState.notificationClosing) { closeNotificationPopup(); } else if (isNotification) { this.checkStatusAndNavigate(); - } else if ( - threeBoxSynced && - showRestorePrompt && - threeBoxLastUpdated === null - ) { - setupThreeBox(); } } @@ -274,12 +249,6 @@ export default class Home extends PureComponent { history, shouldShowSeedPhraseReminder, isPopup, - selectedAddress, - restoreFromThreeBox, - turnThreeBoxSyncingOn, - setShowRestorePromptToFalse, - showRestorePrompt, - threeBoxLastUpdated, shouldShowWeb3ShimUsageNotification, setWeb3ShimUsageAlertDismissed, originOfCurrentTab, @@ -457,25 +426,6 @@ export default class Home extends PureComponent { key="home-backupApprovalNotice" /> ) : null} - {threeBoxLastUpdated && showRestorePrompt ? ( - { - restoreFromThreeBox(selectedAddress).then(() => { - turnThreeBoxSyncingOn(); - }); - }} - onIgnore={() => { - setShowRestorePromptToFalse(); - }} - key="home-privacyModeDefault" - /> - ) : null} {infuraBlocked && this.state.canShowBlockageNotification ? ( - - {t('learnMore')} + + {t('learnMoreUpperCase')}