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

Merge pull request #18267 from MetaMask/Version-v10.27.0

Version v10.27.0 RC
This commit is contained in:
Dan J Miller 2023-03-24 05:05:34 -07:00 committed by GitHub
commit d8591d48c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
68 changed files with 472 additions and 21 deletions

View File

@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [10.27.0]
### Added
- feat: add the ConsenSys zkEVM (Linea) as a default network ([#17875](https://github.com/MetaMask/metamask-extension/pull/17875))
## [10.26.2] ## [10.26.2]
### Changed ### Changed
- Sign in with Ethereum: re-enable warning UI for mismatched domains / disable domain binding ([#18200](https://github.com/MetaMask/metamask-extension/pull/18200)) - Sign in with Ethereum: re-enable warning UI for mismatched domains / disable domain binding ([#18200](https://github.com/MetaMask/metamask-extension/pull/18200))
@ -3536,7 +3540,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Uncategorized ### Uncategorized
- Added the ability to restore accounts from seed words. - Added the ability to restore accounts from seed words.
[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.26.2...HEAD [Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.27.0...HEAD
[10.27.0]: https://github.com/MetaMask/metamask-extension/compare/v10.26.2...v10.27.0
[10.26.2]: https://github.com/MetaMask/metamask-extension/compare/v10.26.1...v10.26.2 [10.26.2]: https://github.com/MetaMask/metamask-extension/compare/v10.26.1...v10.26.2
[10.26.1]: https://github.com/MetaMask/metamask-extension/compare/v10.26.0...v10.26.1 [10.26.1]: https://github.com/MetaMask/metamask-extension/compare/v10.26.0...v10.26.1
[10.26.0]: https://github.com/MetaMask/metamask-extension/compare/v10.25.0...v10.26.0 [10.26.0]: https://github.com/MetaMask/metamask-extension/compare/v10.25.0...v10.26.0

View File

@ -172,6 +172,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "ከ Goerli የሙከራ አውታረ መረብ ጋር መገናኘት" "message": "ከ Goerli የሙከራ አውታረ መረብ ጋር መገናኘት"
}, },
"connectingToLineaTestnet": {
"message": "ከ Linea Goerli የሙከራ አውታረ መረብ ጋር መገናኘት"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "ከዋናው የ Ethereum አውታረ መረብ ጋር መገናኘት" "message": "ከዋናው የ Ethereum አውታረ መረብ ጋር መገናኘት"
}, },
@ -425,6 +428,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "እነዚህን ተለዋጭ ስሞች ለማከል ይፈልጋሉ?" "message": "እነዚህን ተለዋጭ ስሞች ለማከል ይፈልጋሉ?"
}, },
"lineatestnet": {
"message": "የ Linea Goerli የሙከራ አውታረ መረብ"
},
"links": { "links": {
"message": "ማስፈንጠሪያዎች" "message": "ማስፈንጠሪያዎች"
}, },

View File

@ -182,6 +182,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "الاتصال بشبكة اختبار Goerli" "message": "الاتصال بشبكة اختبار Goerli"
}, },
"connectingToLineaTestnet": {
"message": "الاتصال بشبكة اختبار Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "جارِ الاتصال بشبكة إيثيريوم الرئيسية" "message": "جارِ الاتصال بشبكة إيثيريوم الرئيسية"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "هل ترغب في إضافة هذه الرموز؟" "message": "هل ترغب في إضافة هذه الرموز؟"
}, },
"lineatestnet": {
"message": "شبكة اختبار Linea Goerli"
},
"links": { "links": {
"message": "الروابط" "message": "الروابط"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Свързване с тестова мрежа на Goerli" "message": "Свързване с тестова мрежа на Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Свързване с тестова мрежа на Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Свързване с главната мрежа Ethereum" "message": "Свързване с главната мрежа Ethereum"
}, },
@ -433,6 +436,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Искате ли да добавите тези жетони?" "message": "Искате ли да добавите тези жетони?"
}, },
"lineatestnet": {
"message": "Тестова мрежа на Linea Goerli"
},
"links": { "links": {
"message": "Връзки" "message": "Връзки"
}, },

View File

@ -175,6 +175,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Connectant a Xarxa de Prova Goerli" "message": "Connectant a Xarxa de Prova Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Connectant a Xarxa de Prova Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Connectant a Xarxa Principal Ethereum" "message": "Connectant a Xarxa Principal Ethereum"
}, },
@ -424,6 +427,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "T'agradaria afegir aquestes fitxes?" "message": "T'agradaria afegir aquestes fitxes?"
}, },
"lineatestnet": {
"message": "Xarxa de test Linea Goerli"
},
"links": { "links": {
"message": "Enllaços" "message": "Enllaços"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Opretter forbindelse til Goerli Testnetværk" "message": "Opretter forbindelse til Goerli Testnetværk"
}, },
"connectingToLineaTestnet": {
"message": "Opretter forbindelse til Linea Goerli Testnetværk"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Forbinder til dit Primære Ethereum Netværk" "message": "Forbinder til dit Primære Ethereum Netværk"
}, },
@ -430,6 +433,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Ønsker du at tilføje disse tokens?" "message": "Ønsker du at tilføje disse tokens?"
}, },
"lineatestnet": {
"message": "Linea-testnetværk"
},
"loadMore": { "loadMore": {
"message": "Indlæs Mere" "message": "Indlæs Mere"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Verbindungsaufbau zum Goerli-Testnetzwerk" "message": "Verbindungsaufbau zum Goerli-Testnetzwerk"
}, },
"connectingToLineaTestnet": {
"message": "Verbindungsaufbau zum Linea-Testnetzwerk"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Verbinde zum Ethereum Mainnet" "message": "Verbinde zum Ethereum Mainnet"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Möchtest du diese Token hinzufügen?" "message": "Möchtest du diese Token hinzufügen?"
}, },
"lineatestnet": {
"message": "Linea-Testnetzwerk"
},
"link": { "link": {
"message": "Link" "message": "Link"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Σύνδεση στο Δίκτυο Δοκιμής Goerli" "message": "Σύνδεση στο Δίκτυο Δοκιμής Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Σύνδεση στο δίκτυο δοκιμών Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Σύνδεση στο Κύριο Δίκτυο Ethereum" "message": "Σύνδεση στο Κύριο Δίκτυο Ethereum"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Θέλετε να προσθέσετε αυτά τα token;" "message": "Θέλετε να προσθέσετε αυτά τα token;"
}, },
"lineatestnet": {
"message": "Δίκτυο δοκιμών Linea Goerli"
},
"link": { "link": {
"message": "Σύνδεσμος" "message": "Σύνδεσμος"
}, },

View File

@ -743,6 +743,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Connecting to Goerli test network" "message": "Connecting to Goerli test network"
}, },
"connectingToLineaTestnet": {
"message": "Connecting to Linea Goerli test network"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Connecting to Ethereum Mainnet" "message": "Connecting to Ethereum Mainnet"
}, },
@ -1836,6 +1839,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Would you like to import these tokens?" "message": "Would you like to import these tokens?"
}, },
"lineatestnet": {
"message": "Linea Goerli test network"
},
"link": { "link": {
"message": "Link" "message": "Link"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Estableciendo conexión a la red de prueba Goerli" "message": "Estableciendo conexión a la red de prueba Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Conectando a la red de prueba Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Estableciendo conexión a la red principal de Ethereum" "message": "Estableciendo conexión a la red principal de Ethereum"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "¿Le gustaría agregar estos tokens?" "message": "¿Le gustaría agregar estos tokens?"
}, },
"lineatestnet": {
"message": "Red de prueba Linea Goerli"
},
"link": { "link": {
"message": "Vínculo" "message": "Vínculo"
}, },

View File

@ -469,6 +469,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Estableciendo conexión a la red de prueba Goerli" "message": "Estableciendo conexión a la red de prueba Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Estableciendo conexión a la red de prueba Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Estableciendo conexión a la red principal de Ethereum" "message": "Estableciendo conexión a la red principal de Ethereum"
}, },
@ -1308,6 +1311,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "¿Quiere agregar estos tokens?" "message": "¿Quiere agregar estos tokens?"
}, },
"lineatestnet": {
"message": "Red de prueba Linea Goerli"
},
"link": { "link": {
"message": "Enlace" "message": "Enlace"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Ühendamine Goerli testvõrguga" "message": "Ühendamine Goerli testvõrguga"
}, },
"connectingToLineaTestnet": {
"message": "Ühendamine Linea Goerli testvõrguga"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Ühenduse loomine peamise Etherumi võrguga" "message": "Ühenduse loomine peamise Etherumi võrguga"
}, },
@ -433,6 +436,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Kas soovite need load lisada?" "message": "Kas soovite need load lisada?"
}, },
"lineatestnet": {
"message": "Linea Goerli testvõrk"
},
"links": { "links": {
"message": "Lingid" "message": "Lingid"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "در حال اتصال به شبکه آزمایشی Goerli " "message": "در حال اتصال به شبکه آزمایشی Goerli "
}, },
"connectingToLineaTestnet": {
"message": "در حال اتصال به شبکه آزمایشی Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "در حال اتصال به شبکه اصلی ایتریم" "message": "در حال اتصال به شبکه اصلی ایتریم"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "آیا میخواهید این رمزیاب ها را اضافه نمایید؟" "message": "آیا میخواهید این رمزیاب ها را اضافه نمایید؟"
}, },
"lineatestnet": {
"message": "شبکه آزمایشی Linea Goerli"
},
"links": { "links": {
"message": "لینک ها" "message": "لینک ها"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Yhdistetään Goerlin testiverkostoon" "message": "Yhdistetään Goerlin testiverkostoon"
}, },
"connectingToLineaTestnet": {
"message": "Yhdistetään Linea Goerli testiverkostoon"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Yhdistetään Ethereumin pääverkkoon" "message": "Yhdistetään Ethereumin pääverkkoon"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Haluaisitko lisätä nämä poletit?" "message": "Haluaisitko lisätä nämä poletit?"
}, },
"lineatestnet": {
"message": "Linea-testiverkko"
},
"links": { "links": {
"message": "Linkit" "message": "Linkit"
}, },

View File

@ -157,6 +157,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Kumokonekta sa Goerli Test Network" "message": "Kumokonekta sa Goerli Test Network"
}, },
"connectingToLineaTestnet": {
"message": "Kumokonekta sa Linea Goerli Test Network"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Kumokonekta sa Ethereum Mainnet" "message": "Kumokonekta sa Ethereum Mainnet"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Connexion au testnet Goerli" "message": "Connexion au testnet Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Connexion au réseau de test Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Connexion au réseau principal Ethereum" "message": "Connexion au réseau principal Ethereum"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Souhaitez-vous ajouter ces jetons ?" "message": "Souhaitez-vous ajouter ces jetons ?"
}, },
"lineatestnet": {
"message": "Réseau de test Linea Goerli"
},
"link": { "link": {
"message": "Associer" "message": "Associer"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "מתחבר ל-Goerli Test Network" "message": "מתחבר ל-Goerli Test Network"
}, },
"connectingToLineaTestnet": {
"message": "מתחבר ל-Linea Goerli Test Network"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "מתחבר לרשת אתריום הראשית" "message": "מתחבר לרשת אתריום הראשית"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "האם ברצונך להוסיף טוקנים אלה?" "message": "האם ברצונך להוסיף טוקנים אלה?"
}, },
"lineatestnet": {
"message": "רשת בדיקה Linea Goerli"
},
"links": { "links": {
"message": "קישורים" "message": "קישורים"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Goerli टेस्ट नेटवर्क से कनेक्ट हो रहा है" "message": "Goerli टेस्ट नेटवर्क से कनेक्ट हो रहा है"
}, },
"connectingToLineaTestnet": {
"message": "Linea Goerli टेस्ट नेटवर्क से कनेक्ट हो रहा है"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Ethereum Mainnet से कनेक्ट हो रहा है" "message": "Ethereum Mainnet से कनेक्ट हो रहा है"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "क्या आप इन टोकन को इंपोर्ट करना चाहते हैं?" "message": "क्या आप इन टोकन को इंपोर्ट करना चाहते हैं?"
}, },
"lineatestnet": {
"message": "Linea Goerli टेस्ट नेटवर्क"
},
"link": { "link": {
"message": "लिंक" "message": "लिंक"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Povezivanje na testnu mrežu Goerli" "message": "Povezivanje na testnu mrežu Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Povezivanje na testnu mrežu Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Povezivanje na glavnu mrežu Ethereum" "message": "Povezivanje na glavnu mrežu Ethereum"
}, },
@ -433,6 +436,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Želite li dodati ove tokene?" "message": "Želite li dodati ove tokene?"
}, },
"lineatestnet": {
"message": "Testna mreža Linea Goerli"
},
"links": { "links": {
"message": "Poveznice" "message": "Poveznice"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Csatlakozás a Goerli teszthálózathoz" "message": "Csatlakozás a Goerli teszthálózathoz"
}, },
"connectingToLineaTestnet": {
"message": "Csatlakozás a Linea Goerli teszthálózathoz"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Csatlakozás a fő Ethereum hálózathoz" "message": "Csatlakozás a fő Ethereum hálózathoz"
}, },
@ -433,6 +436,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Hozzá szeretné adni ezeket az érméket?" "message": "Hozzá szeretné adni ezeket az érméket?"
}, },
"lineatestnet": {
"message": "Linea Goerli teszthálózat"
},
"links": { "links": {
"message": "Linkek" "message": "Linkek"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Menghubungkan ke jaringan uji Goerli" "message": "Menghubungkan ke jaringan uji Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Menghubungkan ke jaringan uji Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Menghubungkan ke Ethereum Mainnet" "message": "Menghubungkan ke Ethereum Mainnet"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Apakah Anda ingin menambahkan token ini?" "message": "Apakah Anda ingin menambahkan token ini?"
}, },
"lineatestnet": {
"message": "Jaringan uji Linea Goerli"
},
"link": { "link": {
"message": "Tautan" "message": "Tautan"
}, },

View File

@ -599,6 +599,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Connessione alla Rete di Test Goerli" "message": "Connessione alla Rete di Test Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Connessione alla Rete di test Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Connessione alla Rete Ethereum Principale" "message": "Connessione alla Rete Ethereum Principale"
}, },
@ -1210,6 +1213,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Vorresti aggiungere questi token?" "message": "Vorresti aggiungere questi token?"
}, },
"lineatestnet": {
"message": "Rete di test Linea Goerli"
},
"links": { "links": {
"message": "Collegamenti" "message": "Collegamenti"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Goerliテストネットワークに接続中" "message": "Goerliテストネットワークに接続中"
}, },
"connectingToLineaTestnet": {
"message": "Linea Goerli テストネットワークに接続中"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "イーサリアムメインネットに接続中" "message": "イーサリアムメインネットに接続中"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "これらのトークンを追加しますか?" "message": "これらのトークンを追加しますか?"
}, },
"lineatestnet": {
"message": "Linea Goerli テストネットワーク"
},
"link": { "link": {
"message": "リンク" "message": "リンク"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Goerli ಪರೀಕ್ಷಾ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ" "message": "Goerli ಪರೀಕ್ಷಾ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ"
}, },
"connectingToLineaTestnet": {
"message": "Linea Goerli ಪರೀಕ್ಷಾ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "ಮುಖ್ಯ ಎಥೆರಿಯಮ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ" "message": "ಮುಖ್ಯ ಎಥೆರಿಯಮ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "ನೀವು ಈ ಟೋಕನ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಬಯಸುತ್ತೀರಾ?" "message": "ನೀವು ಈ ಟೋಕನ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಬಯಸುತ್ತೀರಾ?"
}, },
"lineatestnet": {
"message": "Linea Goerli ಪರೀಕ್ಷೆ ನೆಟ್‌ವರ್ಕ್"
},
"links": { "links": {
"message": "ಲಿಂಕ್‌ಗಳು" "message": "ಲಿಂಕ್‌ಗಳು"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Goerli 테스트 네트워크에 연결 중" "message": "Goerli 테스트 네트워크에 연결 중"
}, },
"connectingToLineaTestnet": {
"message": "Linea Goerli 테스트 네트워크에 연결 중"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "이더리움 메인넷에 연결 중" "message": "이더리움 메인넷에 연결 중"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "이 토큰을 추가할까요?" "message": "이 토큰을 추가할까요?"
}, },
"lineatestnet": {
"message": "Linea Goerli 테스트 네트워크"
},
"link": { "link": {
"message": "링크" "message": "링크"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Jungiamasi prie „Goerli“ bandomojo tinklo" "message": "Jungiamasi prie „Goerli“ bandomojo tinklo"
}, },
"connectingToLineaTestnet": {
"message": "Jungiamasi prie „Linea“ bandomojo tinklo"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Jungiamasi prie pagrindinio „Ethereum“ tinklo" "message": "Jungiamasi prie pagrindinio „Ethereum“ tinklo"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Ar norėtumėte pridėti šiuos žetonus?" "message": "Ar norėtumėte pridėti šiuos žetonus?"
}, },
"lineatestnet": {
"message": "„Linea“ bandomasis tinklas"
},
"links": { "links": {
"message": "Nuorodos" "message": "Nuorodos"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Pieslēdzas Goerli testa tīklam" "message": "Pieslēdzas Goerli testa tīklam"
}, },
"connectingToLineaTestnet": {
"message": "Pieslēdzas Linea Goerli testa tīklam"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Savienojas ar galveno Ethereum tīklu" "message": "Savienojas ar galveno Ethereum tīklu"
}, },
@ -433,6 +436,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Vai vēlaties pievienot šos marķierus?" "message": "Vai vēlaties pievienot šos marķierus?"
}, },
"lineatestnet": {
"message": "Linea Goerli testa tīkls"
},
"links": { "links": {
"message": "Saites" "message": "Saites"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Menyambung kepada Rangkaian Ujian Goerli" "message": "Menyambung kepada Rangkaian Ujian Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Menyambung kepada Rangkaian Ujian Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Menyambung kepada Rangkaian Ethereum Utama" "message": "Menyambung kepada Rangkaian Ethereum Utama"
}, },
@ -426,6 +429,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Adakah anda ingin menambah token ini?" "message": "Adakah anda ingin menambah token ini?"
}, },
"lineatestnet": {
"message": "Rangkaian Ujian Linea Goerli"
},
"links": { "links": {
"message": "Pautan" "message": "Pautan"
}, },

View File

@ -175,6 +175,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Oppretter forbindelse med Goerli Test Network" "message": "Oppretter forbindelse med Goerli Test Network"
}, },
"connectingToLineaTestnet": {
"message": "Oppretter forbindelse med Linea Goerli Test Network"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Forbinder med hoved-Ethereumnettverk " "message": "Forbinder med hoved-Ethereumnettverk "
}, },

View File

@ -332,6 +332,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Kumokonekta sa Goerli Test Network" "message": "Kumokonekta sa Goerli Test Network"
}, },
"connectingToLineaTestnet": {
"message": "Kumokonekta sa Linea Goerli Test Network"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Kumokonekta sa Ethereum Mainnet" "message": "Kumokonekta sa Ethereum Mainnet"
}, },
@ -840,6 +843,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Gusto mo bang idagdag ang mga token na ito?" "message": "Gusto mo bang idagdag ang mga token na ito?"
}, },
"lineatestnet": {
"message": "Linea Goerli Test Network"
},
"links": { "links": {
"message": "Mga Link" "message": "Mga Link"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Łączenie z siecią testową Goerli" "message": "Łączenie z siecią testową Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Łączenie z siecią testową Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Łączenie z główną siecią Ethereum" "message": "Łączenie z główną siecią Ethereum"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Czy chcesz dodać te tokeny?" "message": "Czy chcesz dodać te tokeny?"
}, },
"lineatestnet": {
"message": "Sieć testowa Linea Goerli"
},
"links": { "links": {
"message": "Łącza" "message": "Łącza"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Conectando à rede de testes Goerli" "message": "Conectando à rede de testes Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Conectando à rede de teste Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Conectando à mainnet do Ethereum" "message": "Conectando à mainnet do Ethereum"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Gostaria de adicionar estes tokens?" "message": "Gostaria de adicionar estes tokens?"
}, },
"lineatestnet": {
"message": "Rede de teste Linea Goerli"
},
"link": { "link": {
"message": "Link" "message": "Link"
}, },

View File

@ -469,6 +469,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Conectando à rede de testes Goerli" "message": "Conectando à rede de testes Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Conectando à rede de testes Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Conectando à mainnet do Ethereum" "message": "Conectando à mainnet do Ethereum"
}, },
@ -1308,6 +1311,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Você gostaria de importar esses tokens?" "message": "Você gostaria de importar esses tokens?"
}, },
"lineatestnet": {
"message": "Rede de testes Linea Goerli"
},
"link": { "link": {
"message": "Link" "message": "Link"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Se conectează la rețeaua de test Goerli" "message": "Se conectează la rețeaua de test Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Se conectează la rețeaua de test Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Se conectează la rețeaua Ethereum principală" "message": "Se conectează la rețeaua Ethereum principală"
}, },
@ -427,6 +430,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Adăugați aceste indicative?" "message": "Adăugați aceste indicative?"
}, },
"lineatestnet": {
"message": "Rețea de test Linea Goerli"
},
"links": { "links": {
"message": "Link-uri" "message": "Link-uri"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Подключение к тестовой сети Goerli..." "message": "Подключение к тестовой сети Goerli..."
}, },
"connectingToLineaTestnet": {
"message": "Подключение к тестовой сети Linea..."
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Подключение к сети Ethereum Mainnet..." "message": "Подключение к сети Ethereum Mainnet..."
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Вы хотели бы импортировать эти токены?" "message": "Вы хотели бы импортировать эти токены?"
}, },
"lineatestnet": {
"message": "Тестовая сеть Linea Goerli"
},
"link": { "link": {
"message": "Привязать" "message": "Привязать"
}, },

View File

@ -172,6 +172,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Pripája sa k testovacej sieti Goerli" "message": "Pripája sa k testovacej sieti Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Pripája sa k testovacej sieti Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Připojuji se k Ethereum Mainnet" "message": "Připojuji se k Ethereum Mainnet"
}, },
@ -424,6 +427,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Chcete přidat tyto tokeny?" "message": "Chcete přidat tyto tokeny?"
}, },
"lineatestnet": {
"message": "Testovacia sieť Linea Goerli"
},
"links": { "links": {
"message": "Odkazy" "message": "Odkazy"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Povezovanje na testno omrežje Goerli" "message": "Povezovanje na testno omrežje Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Povezovanje na testno omrežje Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Povezovanje na glavno omrežje" "message": "Povezovanje na glavno omrežje"
}, },
@ -431,6 +434,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Želite dodati te žetone?" "message": "Želite dodati te žetone?"
}, },
"lineatestnet": {
"message": "Testno omrežje Linea Goerli"
},
"links": { "links": {
"message": "Povezave" "message": "Povezave"
}, },

View File

@ -175,6 +175,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Povezuje se sa test mrežom Goerli " "message": "Povezuje se sa test mrežom Goerli "
}, },
"connectingToLineaTestnet": {
"message": "Povezuje se sa test mrežom Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Povezuje se na glavnu Ethereum mrežu" "message": "Povezuje se na glavnu Ethereum mrežu"
}, },
@ -434,6 +437,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Želite li da dodate ove tokene?" "message": "Želite li da dodate ove tokene?"
}, },
"lineatestnet": {
"message": "Test mreža Linea Goerli"
},
"links": { "links": {
"message": "Veze" "message": "Veze"
}, },

View File

@ -172,6 +172,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Ansluter till Goerli Test Network" "message": "Ansluter till Goerli Test Network"
}, },
"connectingToLineaTestnet": {
"message": "Ansluter till Linea Goerli Test Network"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Koppla till Ethereums huvudnätverk" "message": "Koppla till Ethereums huvudnätverk"
}, },
@ -427,6 +430,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Vill du lägga till dessa tokens?" "message": "Vill du lägga till dessa tokens?"
}, },
"lineatestnet": {
"message": "Linea Goerli testnätverk"
},
"links": { "links": {
"message": "Länkar" "message": "Länkar"
}, },

View File

@ -172,6 +172,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Inaunganisha kwenye Mtandao wa Majaribio wa Goerli" "message": "Inaunganisha kwenye Mtandao wa Majaribio wa Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Inaunganisha kwenye Mtandao wa Majaribio wa Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Inaunganisha kwenye Mtandao Mkuu wa Ethereum" "message": "Inaunganisha kwenye Mtandao Mkuu wa Ethereum"
}, },
@ -424,6 +427,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Je, ungependa kuongeza vianzio hivi?" "message": "Je, ungependa kuongeza vianzio hivi?"
}, },
"lineatestnet": {
"message": "Mtandao wa Majaribio wa Linea Goerli"
},
"links": { "links": {
"message": "Viungo" "message": "Viungo"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Kumokonekta sa Goerli Test Network" "message": "Kumokonekta sa Goerli Test Network"
}, },
"connectingToLineaTestnet": {
"message": "Kumokonekta sa Linea Goerli test network"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Kumokonekta sa Ethereum Mainnet" "message": "Kumokonekta sa Ethereum Mainnet"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Gusto mo bang idagdag ang mga token na ito?" "message": "Gusto mo bang idagdag ang mga token na ito?"
}, },
"lineatestnet": {
"message": "Linea Goerli test network"
},
"link": { "link": {
"message": "Link" "message": "Link"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Goerli Test Ağına Bağlanıyor" "message": "Goerli Test Ağına Bağlanıyor"
}, },
"connectingToLineaTestnet": {
"message": "Linea Goerli test ağına bağlanılıyor"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Ethereum Mainnet ağına bağlanıyor" "message": "Ethereum Mainnet ağına bağlanıyor"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Bu tokenleri içe aktarmak ister misiniz?" "message": "Bu tokenleri içe aktarmak ister misiniz?"
}, },
"lineatestnet": {
"message": "Linea Goerli test ağı"
},
"link": { "link": {
"message": "Bağlantı" "message": "Bağlantı"
}, },

View File

@ -178,6 +178,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Підключення до тестової мережі Goerli" "message": "Підключення до тестової мережі Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Підключення до тестової мережі Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "З'єднуємось з Головною мережею Ethereum" "message": "З'єднуємось з Головною мережею Ethereum"
}, },
@ -437,6 +440,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Ви б хотіли додати ці токени?" "message": "Ви б хотіли додати ці токени?"
}, },
"lineatestnet": {
"message": "Тестова мережа Linea Goerli"
},
"links": { "links": {
"message": "Посилання" "message": "Посилання"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "Đang kết nối với mạng thử nghiệm Goerli" "message": "Đang kết nối với mạng thử nghiệm Goerli"
}, },
"connectingToLineaTestnet": {
"message": "Đang kết nối với mạng thử nghiệm Linea Goerli"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "Đang kết nối với mạng chính thức của Ethereum" "message": "Đang kết nối với mạng chính thức của Ethereum"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "Bạn có muốn nhập những token này không?" "message": "Bạn có muốn nhập những token này không?"
}, },
"lineatestnet": {
"message": "Mạng thử nghiệm Linea Goerli"
},
"link": { "link": {
"message": "Liên kết" "message": "Liên kết"
}, },

View File

@ -736,6 +736,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "正在连接 Goerli 测试网络" "message": "正在连接 Goerli 测试网络"
}, },
"connectingToLineaTestnet": {
"message": "正在连接Linea测试网络"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "正在连接到以太坊主网" "message": "正在连接到以太坊主网"
}, },
@ -1813,6 +1816,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "您想导入这些代币吗?" "message": "您想导入这些代币吗?"
}, },
"lineatestnet": {
"message": "Linea测试网络"
},
"link": { "link": {
"message": "链接" "message": "链接"
}, },

View File

@ -331,6 +331,9 @@
"connectingToGoerli": { "connectingToGoerli": {
"message": "連線到 Goerli 測試網路" "message": "連線到 Goerli 測試網路"
}, },
"connectingToLineaTestnet": {
"message": "連線到 Linea Goerli 測試網路"
},
"connectingToMainnet": { "connectingToMainnet": {
"message": "連線到 Ethereum 主網路" "message": "連線到 Ethereum 主網路"
}, },
@ -854,6 +857,9 @@
"likeToImportTokens": { "likeToImportTokens": {
"message": "確定要加入代幣?" "message": "確定要加入代幣?"
}, },
"lineatestnet": {
"message": "Linea Goerli 測試網路"
},
"links": { "links": {
"message": "連結" "message": "連結"
}, },

View File

@ -110,7 +110,8 @@ async function switchEthereumChainHandler(
}); });
if ( if (
chainId in CHAIN_ID_TO_TYPE_MAP && chainId in CHAIN_ID_TO_TYPE_MAP &&
approvedRequestData.type !== NETWORK_TYPES.LOCALHOST approvedRequestData.type !== NETWORK_TYPES.LOCALHOST &&
approvedRequestData.type !== NETWORK_TYPES.LINEA_TESTNET
) { ) {
setProviderType(approvedRequestData.type); setProviderType(approvedRequestData.type);
} else { } else {

View File

@ -304,7 +304,8 @@
"infuraNetworkStatus": { "infuraNetworkStatus": {
"mainnet": "ok", "mainnet": "ok",
"goerli": "ok", "goerli": "ok",
"sepolia": "ok" "sepolia": "ok",
"lineatestnet": "ok"
} }
}, },
"send": { "send": {

View File

@ -1,6 +1,6 @@
{ {
"name": "metamask-crx", "name": "metamask-crx",
"version": "10.26.2", "version": "10.27.0",
"private": true, "private": true,
"repository": { "repository": {
"type": "git", "type": "git",

View File

@ -165,6 +165,7 @@ export const NETWORK_TYPES = {
MAINNET: 'mainnet', MAINNET: 'mainnet',
RPC: 'rpc', RPC: 'rpc',
SEPOLIA: 'sepolia', SEPOLIA: 'sepolia',
LINEA_TESTNET: 'lineatestnet',
} as const; } as const;
/** /**
@ -190,6 +191,7 @@ export const NETWORK_IDS = {
GOERLI: '5', GOERLI: '5',
LOCALHOST: '1337', LOCALHOST: '1337',
SEPOLIA: '11155111', SEPOLIA: '11155111',
LINEA_TESTNET: '59140',
} as const; } as const;
/** /**
@ -211,6 +213,7 @@ export const CHAIN_IDS = {
HARMONY: '0x63564c40', HARMONY: '0x63564c40',
PALM: '0x2a15c308d', PALM: '0x2a15c308d',
SEPOLIA: '0xaa36a7', SEPOLIA: '0xaa36a7',
LINEA_TESTNET: '0xe704',
AURORA: '0x4e454152', AURORA: '0x4e454152',
} as const; } as const;
@ -223,6 +226,7 @@ export const MAX_SAFE_CHAIN_ID = 4503599627370476;
export const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet'; export const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet';
export const GOERLI_DISPLAY_NAME = 'Goerli'; export const GOERLI_DISPLAY_NAME = 'Goerli';
export const SEPOLIA_DISPLAY_NAME = 'Sepolia'; export const SEPOLIA_DISPLAY_NAME = 'Sepolia';
export const LINEA_TESTNET_DISPLAY_NAME = 'Linea Goerli test network';
export const LOCALHOST_DISPLAY_NAME = 'Localhost 8545'; export const LOCALHOST_DISPLAY_NAME = 'Localhost 8545';
export const BSC_DISPLAY_NAME = 'Binance Smart Chain'; export const BSC_DISPLAY_NAME = 'Binance Smart Chain';
export const POLYGON_DISPLAY_NAME = 'Polygon'; export const POLYGON_DISPLAY_NAME = 'Polygon';
@ -252,6 +256,7 @@ export const MAINNET_RPC_URL = getRpcUrl({
}); });
export const GOERLI_RPC_URL = getRpcUrl({ network: NETWORK_TYPES.GOERLI }); export const GOERLI_RPC_URL = getRpcUrl({ network: NETWORK_TYPES.GOERLI });
export const SEPOLIA_RPC_URL = getRpcUrl({ network: NETWORK_TYPES.SEPOLIA }); export const SEPOLIA_RPC_URL = getRpcUrl({ network: NETWORK_TYPES.SEPOLIA });
export const LINEA_TESTNET_RPC_URL = 'https://rpc.goerli.linea.build';
export const LOCALHOST_RPC_URL = 'http://localhost:8545'; export const LOCALHOST_RPC_URL = 'http://localhost:8545';
/** /**
@ -428,6 +433,7 @@ export const INFURA_PROVIDER_TYPES = [
export const TEST_CHAINS = [ export const TEST_CHAINS = [
CHAIN_IDS.GOERLI, CHAIN_IDS.GOERLI,
CHAIN_IDS.SEPOLIA, CHAIN_IDS.SEPOLIA,
CHAIN_IDS.LINEA_TESTNET,
CHAIN_IDS.LOCALHOST, CHAIN_IDS.LOCALHOST,
]; ];
@ -446,6 +452,10 @@ export const TEST_NETWORK_TICKER_MAP: {
[NETWORK_TYPES.SEPOLIA]: `${typedCapitalize(NETWORK_TYPES.SEPOLIA)}${ [NETWORK_TYPES.SEPOLIA]: `${typedCapitalize(NETWORK_TYPES.SEPOLIA)}${
CURRENCY_SYMBOLS.ETH CURRENCY_SYMBOLS.ETH
}`, }`,
[NETWORK_TYPES.LINEA_TESTNET]:
`Linea${CURRENCY_SYMBOLS.ETH}` as `${Capitalize<
typeof NETWORK_TYPES.LINEA_TESTNET
>}${typeof CURRENCY_SYMBOLS.ETH}`,
}; };
/** /**
@ -462,6 +472,12 @@ export const BUILT_IN_NETWORKS = {
chainId: CHAIN_IDS.SEPOLIA, chainId: CHAIN_IDS.SEPOLIA,
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA], ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA],
}, },
[NETWORK_TYPES.LINEA_TESTNET]: {
networkId: NETWORK_IDS.LINEA_TESTNET,
chainId: CHAIN_IDS.LINEA_TESTNET,
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_TESTNET],
blockExplorerUrl: 'https://explorer.goerli.linea.build',
},
[NETWORK_TYPES.MAINNET]: { [NETWORK_TYPES.MAINNET]: {
networkId: NETWORK_IDS.MAINNET, networkId: NETWORK_IDS.MAINNET,
chainId: CHAIN_IDS.MAINNET, chainId: CHAIN_IDS.MAINNET,
@ -476,15 +492,18 @@ export const NETWORK_TO_NAME_MAP = {
[NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME, [NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME,
[NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME, [NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME,
[NETWORK_TYPES.SEPOLIA]: SEPOLIA_DISPLAY_NAME, [NETWORK_TYPES.SEPOLIA]: SEPOLIA_DISPLAY_NAME,
[NETWORK_TYPES.LINEA_TESTNET]: LINEA_TESTNET_DISPLAY_NAME,
[NETWORK_TYPES.LOCALHOST]: LOCALHOST_DISPLAY_NAME, [NETWORK_TYPES.LOCALHOST]: LOCALHOST_DISPLAY_NAME,
[NETWORK_IDS.GOERLI]: GOERLI_DISPLAY_NAME, [NETWORK_IDS.GOERLI]: GOERLI_DISPLAY_NAME,
[NETWORK_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME, [NETWORK_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,
[NETWORK_IDS.LINEA_TESTNET]: LINEA_TESTNET_DISPLAY_NAME,
[NETWORK_IDS.MAINNET]: MAINNET_DISPLAY_NAME, [NETWORK_IDS.MAINNET]: MAINNET_DISPLAY_NAME,
[NETWORK_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME, [NETWORK_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,
[CHAIN_IDS.GOERLI]: GOERLI_DISPLAY_NAME, [CHAIN_IDS.GOERLI]: GOERLI_DISPLAY_NAME,
[CHAIN_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME, [CHAIN_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,
[CHAIN_IDS.LINEA_TESTNET]: LINEA_TESTNET_DISPLAY_NAME,
[CHAIN_IDS.MAINNET]: MAINNET_DISPLAY_NAME, [CHAIN_IDS.MAINNET]: MAINNET_DISPLAY_NAME,
[CHAIN_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME, [CHAIN_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,
} as const; } as const;
@ -493,12 +512,14 @@ export const CHAIN_ID_TO_TYPE_MAP = {
[CHAIN_IDS.MAINNET]: NETWORK_TYPES.MAINNET, [CHAIN_IDS.MAINNET]: NETWORK_TYPES.MAINNET,
[CHAIN_IDS.GOERLI]: NETWORK_TYPES.GOERLI, [CHAIN_IDS.GOERLI]: NETWORK_TYPES.GOERLI,
[CHAIN_IDS.SEPOLIA]: NETWORK_TYPES.SEPOLIA, [CHAIN_IDS.SEPOLIA]: NETWORK_TYPES.SEPOLIA,
[CHAIN_IDS.LINEA_TESTNET]: NETWORK_TYPES.LINEA_TESTNET,
[CHAIN_IDS.LOCALHOST]: NETWORK_TYPES.LOCALHOST, [CHAIN_IDS.LOCALHOST]: NETWORK_TYPES.LOCALHOST,
} as const; } as const;
export const CHAIN_ID_TO_RPC_URL_MAP = { export const CHAIN_ID_TO_RPC_URL_MAP = {
[CHAIN_IDS.GOERLI]: GOERLI_RPC_URL, [CHAIN_IDS.GOERLI]: GOERLI_RPC_URL,
[CHAIN_IDS.SEPOLIA]: SEPOLIA_RPC_URL, [CHAIN_IDS.SEPOLIA]: SEPOLIA_RPC_URL,
[CHAIN_IDS.LINEA_TESTNET]: LINEA_TESTNET_RPC_URL,
[CHAIN_IDS.MAINNET]: MAINNET_RPC_URL, [CHAIN_IDS.MAINNET]: MAINNET_RPC_URL,
[CHAIN_IDS.LOCALHOST]: LOCALHOST_RPC_URL, [CHAIN_IDS.LOCALHOST]: LOCALHOST_RPC_URL,
} as const; } as const;
@ -520,6 +541,7 @@ export const CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP = {
export const NETWORK_ID_TO_ETHERS_NETWORK_NAME_MAP = { export const NETWORK_ID_TO_ETHERS_NETWORK_NAME_MAP = {
[NETWORK_IDS.GOERLI]: NETWORK_TYPES.GOERLI, [NETWORK_IDS.GOERLI]: NETWORK_TYPES.GOERLI,
[NETWORK_IDS.SEPOLIA]: NETWORK_TYPES.SEPOLIA, [NETWORK_IDS.SEPOLIA]: NETWORK_TYPES.SEPOLIA,
[NETWORK_IDS.LINEA_TESTNET]: NETWORK_TYPES.LINEA_TESTNET,
[NETWORK_IDS.MAINNET]: NETWORK_NAMES.HOMESTEAD, [NETWORK_IDS.MAINNET]: NETWORK_NAMES.HOMESTEAD,
} as const; } as const;
@ -527,6 +549,7 @@ export const CHAIN_ID_TO_NETWORK_ID_MAP = {
[CHAIN_IDS.MAINNET]: NETWORK_IDS.MAINNET, [CHAIN_IDS.MAINNET]: NETWORK_IDS.MAINNET,
[CHAIN_IDS.GOERLI]: NETWORK_IDS.GOERLI, [CHAIN_IDS.GOERLI]: NETWORK_IDS.GOERLI,
[CHAIN_IDS.SEPOLIA]: NETWORK_IDS.SEPOLIA, [CHAIN_IDS.SEPOLIA]: NETWORK_IDS.SEPOLIA,
[CHAIN_IDS.LINEA_TESTNET]: NETWORK_IDS.LINEA_TESTNET,
[CHAIN_IDS.LOCALHOST]: NETWORK_IDS.LOCALHOST, [CHAIN_IDS.LOCALHOST]: NETWORK_IDS.LOCALHOST,
} as const; } as const;
@ -591,6 +614,7 @@ export const BUYABLE_CHAINS_MAP: {
| typeof CHAIN_IDS.PALM | typeof CHAIN_IDS.PALM
| typeof CHAIN_IDS.HARMONY | typeof CHAIN_IDS.HARMONY
| typeof CHAIN_IDS.OPTIMISM_TESTNET | typeof CHAIN_IDS.OPTIMISM_TESTNET
| typeof CHAIN_IDS.LINEA_TESTNET
>]: BuyableChainSettings; >]: BuyableChainSettings;
} = { } = {
[CHAIN_IDS.MAINNET]: { [CHAIN_IDS.MAINNET]: {
@ -982,3 +1006,6 @@ export const FEATURED_RPCS: RPCDefinition[] = [
}, },
}, },
]; ];
export const SHOULD_SHOW_LINEA_TESTNET_NETWORK =
new Date().getTime() > Date.UTC(2023, 2, 28, 8);

View File

@ -7,8 +7,13 @@ import Button from '../../ui/button';
import * as actions from '../../../store/actions'; import * as actions from '../../../store/actions';
import { openAlert as displayInvalidCustomNetworkAlert } from '../../../ducks/alerts/invalid-custom-network'; import { openAlert as displayInvalidCustomNetworkAlert } from '../../../ducks/alerts/invalid-custom-network';
import { import {
BUILT_IN_NETWORKS,
CHAIN_ID_TO_RPC_URL_MAP,
LINEA_TESTNET_RPC_URL,
LOCALHOST_RPC_URL, LOCALHOST_RPC_URL,
NETWORK_TO_NAME_MAP,
NETWORK_TYPES, NETWORK_TYPES,
SHOULD_SHOW_LINEA_TESTNET_NETWORK,
} from '../../../../shared/constants/network'; } from '../../../../shared/constants/network';
import { isPrefixedFormattedHexString } from '../../../../shared/modules/network.utils'; import { isPrefixedFormattedHexString } from '../../../../shared/modules/network.utils';
@ -57,8 +62,18 @@ function mapDispatchToProps(dispatch) {
setProviderType: (type) => { setProviderType: (type) => {
dispatch(actions.setProviderType(type)); dispatch(actions.setProviderType(type));
}, },
setRpcTarget: (target, chainId, ticker, nickname) => { setRpcTarget: (
dispatch(actions.setRpcTarget(target, chainId, ticker, nickname)); target,
chainId,
ticker,
nickname,
{ blockExplorerUrl } = {},
) => {
dispatch(
actions.setRpcTarget(target, chainId, ticker, nickname, {
blockExplorerUrl,
}),
);
}, },
hideNetworkDropdown: () => dispatch(actions.hideNetworkDropdown()), hideNetworkDropdown: () => dispatch(actions.hideNetworkDropdown()),
displayInvalidCustomNetworkAlert: (networkName) => { displayInvalidCustomNetworkAlert: (networkName) => {
@ -224,6 +239,8 @@ class NetworkDropdown extends Component {
return t('goerli'); return t('goerli');
case NETWORK_TYPES.SEPOLIA: case NETWORK_TYPES.SEPOLIA:
return t('sepolia'); return t('sepolia');
case NETWORK_TYPES.LINEA_TESTNET:
return t('lineatestnet');
case NETWORK_TYPES.LOCALHOST: case NETWORK_TYPES.LOCALHOST:
return t('localhost'); return t('localhost');
default: default:
@ -268,6 +285,52 @@ class NetworkDropdown extends Component {
); );
} }
renderNonInfuraDefaultNetwork(network) {
const { provider, setRpcTarget } = this.props;
const { chainId, ticker, blockExplorerUrl } = BUILT_IN_NETWORKS[network];
const networkName = NETWORK_TO_NAME_MAP[network];
const rpcUrl = CHAIN_ID_TO_RPC_URL_MAP[chainId];
const isCurrentRpcTarget =
provider.type === NETWORK_TYPES.RPC && rpcUrl === provider.rpcUrl;
return (
<DropdownMenuItem
key={network}
closeMenu={this.props.hideNetworkDropdown}
onClick={async () => {
await setRpcTarget(rpcUrl, chainId, ticker, networkName, {
blockExplorerUrl,
});
}}
style={DROP_DOWN_MENU_ITEM_STYLE}
>
{isCurrentRpcTarget ? (
<IconCheck color="var(--color-success-default)" />
) : (
<div className="network-check__transparent"></div>
)}
<ColorIndicator
color={network}
size={Size.LG}
type={ColorIndicator.TYPES.FILLED}
/>
<span
className="network-name-item"
data-testid={`${network}-network-item`}
style={{
color:
provider.type === network
? 'var(--color-text-default)'
: 'var(--color-text-alternative)',
}}
>
{this.context.t(network)}
</span>
</DropdownMenuItem>
);
}
render() { render() {
const { const {
history, history,
@ -277,9 +340,12 @@ class NetworkDropdown extends Component {
showTestnetMessageInDropdown, showTestnetMessageInDropdown,
hideTestNetMessage, hideTestNetMessage,
} = this.props; } = this.props;
const rpcListDetail = this.props.frequentRpcListDetail; const rpcListDetail = this.props.frequentRpcListDetail;
const rpcListDetailWithoutLocalHost = rpcListDetail.filter( const rpcListDetailWithoutLocalHostAndLinea = rpcListDetail.filter(
(rpc) => rpc.rpcUrl !== LOCALHOST_RPC_URL, (rpc) =>
rpc.rpcUrl !== LOCALHOST_RPC_URL &&
rpc.rpcUrl !== LINEA_TESTNET_RPC_URL,
); );
const rpcListDetailForLocalHost = rpcListDetail.filter( const rpcListDetailForLocalHost = rpcListDetail.filter(
(rpc) => rpc.rpcUrl === LOCALHOST_RPC_URL, (rpc) => rpc.rpcUrl === LOCALHOST_RPC_URL,
@ -352,7 +418,7 @@ class NetworkDropdown extends Component {
{this.renderNetworkEntry(NETWORK_TYPES.MAINNET)} {this.renderNetworkEntry(NETWORK_TYPES.MAINNET)}
{this.renderCustomRpcList( {this.renderCustomRpcList(
rpcListDetailWithoutLocalHost, rpcListDetailWithoutLocalHostAndLinea,
this.props.provider, this.props.provider,
)} )}
@ -360,6 +426,13 @@ class NetworkDropdown extends Component {
<> <>
{this.renderNetworkEntry(NETWORK_TYPES.GOERLI)} {this.renderNetworkEntry(NETWORK_TYPES.GOERLI)}
{this.renderNetworkEntry(NETWORK_TYPES.SEPOLIA)} {this.renderNetworkEntry(NETWORK_TYPES.SEPOLIA)}
{SHOULD_SHOW_LINEA_TESTNET_NETWORK && (
<>
{this.renderNonInfuraDefaultNetwork(
NETWORK_TYPES.LINEA_TESTNET,
)}
</>
)}
{this.renderCustomRpcList( {this.renderCustomRpcList(
rpcListDetailForLocalHost, rpcListDetailForLocalHost,
this.props.provider, this.props.provider,

View File

@ -6,6 +6,15 @@ import { renderWithProvider } from '../../../../test/lib/render-helpers';
import { LOCALHOST_RPC_URL } from '../../../../shared/constants/network'; import { LOCALHOST_RPC_URL } from '../../../../shared/constants/network';
import NetworkDropdown from './network-dropdown'; import NetworkDropdown from './network-dropdown';
// Mock linea test network feature toggle
jest.mock('../../../../shared/constants/network', () => {
const constants = jest.requireActual('../../../../shared/constants/network');
return {
...constants,
SHOULD_SHOW_LINEA_TESTNET_NETWORK: true,
};
});
describe('Network Dropdown', () => { describe('Network Dropdown', () => {
const createMockStore = configureMockStore([thunk]); const createMockStore = configureMockStore([thunk]);
@ -97,6 +106,13 @@ describe('Network Dropdown', () => {
expect(localhostColorIndicator).toBeInTheDocument(); expect(localhostColorIndicator).toBeInTheDocument();
}); });
it('checks background color for seventh ColorIndicator', () => {
const lineaColorIndicator = screen.queryByTestId(
'color-icon-lineatestnet',
);
expect(lineaColorIndicator).toBeInTheDocument();
});
it('checks that Add Network button is rendered', () => { it('checks that Add Network button is rendered', () => {
const addNetworkButton = screen.queryByText('Add network'); const addNetworkButton = screen.queryByText('Add network');
expect(addNetworkButton).toBeInTheDocument(); expect(addNetworkButton).toBeInTheDocument();
@ -104,8 +120,7 @@ describe('Network Dropdown', () => {
it('shows test networks in the dropdown', () => { it('shows test networks in the dropdown', () => {
const networkItems = screen.queryAllByTestId(/network-item/u); const networkItems = screen.queryAllByTestId(/network-item/u);
expect(networkItems).toHaveLength(7);
expect(networkItems).toHaveLength(6);
}); });
}); });

View File

@ -49,6 +49,8 @@ export default class LoadingNetworkScreen extends PureComponent {
return t('connectingToGoerli'); return t('connectingToGoerli');
case NETWORK_TYPES.SEPOLIA: case NETWORK_TYPES.SEPOLIA:
return t('connectingToSepolia'); return t('connectingToSepolia');
case NETWORK_TYPES.LINEA_TESTNET:
return t('connectingToLineaTestnet');
default: default:
return t('connectingTo', [providerId]); return t('connectingTo', [providerId]);
} }

View File

@ -72,6 +72,8 @@ export default class SignatureRequestOriginal extends Component {
return t('goerli'); return t('goerli');
case NETWORK_TYPES.SEPOLIA: case NETWORK_TYPES.SEPOLIA:
return t('sepolia'); return t('sepolia');
case NETWORK_TYPES.LINEA_TESTNET:
return t('lineatestnet');
case NETWORK_TYPES.LOCALHOST: case NETWORK_TYPES.LOCALHOST:
return t('localhost'); return t('localhost');
default: default:

View File

@ -113,6 +113,8 @@ export default class SignatureRequest extends PureComponent {
return t('goerli'); return t('goerli');
case NETWORK_TYPES.SEPOLIA: case NETWORK_TYPES.SEPOLIA:
return t('sepolia'); return t('sepolia');
case NETWORK_TYPES.LINEA_TESTNET:
return t('lineatestnet');
case NETWORK_TYPES.LOCALHOST: case NETWORK_TYPES.LOCALHOST:
return t('localhost'); return t('localhost');
default: default:

View File

@ -32,6 +32,8 @@ export const ValidColors = [
Color.sepolia, Color.sepolia,
Color.goerli, Color.goerli,
Color.sepoliaInverse, Color.sepoliaInverse,
Color.lineaTestnet,
Color.lineaTestnetInverse,
]; ];
export const ValidTags = [ export const ValidTags = [

View File

@ -41,6 +41,8 @@ $color-map: (
'sepolia': --color-network-sepolia-default, 'sepolia': --color-network-sepolia-default,
'goerli-inverse':--color-network-goerli-inverse, 'goerli-inverse':--color-network-goerli-inverse,
'sepolia-inverse': --color-network-sepolia-inverse, 'sepolia-inverse': --color-network-sepolia-inverse,
'lineatestnet': --color-network-linea-testnet-default,
'lineatestnet-inverse': --color-network-linea-testnet-inverse,
'localhost': --color-network-localhost-default, 'localhost': --color-network-localhost-default,
'transparent': --transparent, 'transparent': --transparent,
'flask-purple': --color-flask-default, 'flask-purple': --color-flask-default,

View File

@ -25,6 +25,10 @@
background-color: rgba(207, 181, 240, 0.7) !important; background-color: rgba(207, 181, 240, 0.7) !important;
} }
&.linea-test-network .menu-icon-circle div {
background-color: rgba(0, 0, 0, 0.7) !important;
}
&.localhost-network .menu-icon-circle div { &.localhost-network .menu-icon-circle div {
background-color: rgba(3, 135, 137, 0.7) !important; background-color: rgba(3, 135, 137, 0.7) !important;
} }

View File

@ -4,6 +4,8 @@
--mainnet: #29b6af; --mainnet: #29b6af;
--inherit: inherit; --inherit: inherit;
--transparent: transparent; --transparent: transparent;
--color-network-linea-testnet-default: #000;
--color-network-linea-testnet-inverse: #fcfcfc;
// DO NOT CHANGE // DO NOT CHANGE
// Required for the QR reader to work properly // Required for the QR reader to work properly
--qr-code-white-background: #fff; --qr-code-white-background: #fff;

View File

@ -46,6 +46,8 @@ export enum Color {
mainnet = 'mainnet', mainnet = 'mainnet',
goerli = 'goerli', goerli = 'goerli',
sepolia = 'sepolia', sepolia = 'sepolia',
lineaTestnet = 'lineatestnet',
lineaTestnetInverse = 'lineatestnet-inverse',
transparent = 'transparent', transparent = 'transparent',
localhost = 'localhost', localhost = 'localhost',
inherit = 'inherit', inherit = 'inherit',
@ -75,6 +77,7 @@ export enum BackgroundColor {
mainnet = 'mainnet', mainnet = 'mainnet',
goerli = 'goerli', goerli = 'goerli',
sepolia = 'sepolia', sepolia = 'sepolia',
lineaTestnet = 'lineatestnet',
transparent = 'transparent', transparent = 'transparent',
localhost = 'localhost', localhost = 'localhost',
} }
@ -100,6 +103,7 @@ export enum BorderColor {
mainnet = 'mainnet', mainnet = 'mainnet',
goerli = 'goerli', goerli = 'goerli',
sepolia = 'sepolia', sepolia = 'sepolia',
lineaTestnet = 'lineatestnet',
transparent = 'transparent', transparent = 'transparent',
localhost = 'localhost', localhost = 'localhost',
} }
@ -121,6 +125,8 @@ export enum TextColor {
inherit = 'inherit', inherit = 'inherit',
goerli = 'goerli', goerli = 'goerli',
sepolia = 'sepolia', sepolia = 'sepolia',
lineaTestnet = 'lineatestnet',
lineaTestnetInverse = 'lineatestnet-inverse',
goerliInverse = 'goerli-inverse', goerliInverse = 'goerli-inverse',
sepoliaInverse = 'sepolia-inverse', sepoliaInverse = 'sepolia-inverse',
} }
@ -143,6 +149,8 @@ export enum IconColor {
inherit = 'inherit', inherit = 'inherit',
goerli = 'goerli', goerli = 'goerli',
sepolia = 'sepolia', sepolia = 'sepolia',
lineaTestnet = 'lineatestnet',
lineaTestnetInverse = 'lineatestnet-inverse',
goerliInverse = 'goerli-inverse', goerliInverse = 'goerli-inverse',
sepoliaInverse = 'sepolia-inverse', sepoliaInverse = 'sepolia-inverse',
} }

View File

@ -254,6 +254,13 @@ export const SETTINGS_CONSTANTS = [
route: `${NETWORKS_ROUTE}#networks-sepolia`, route: `${NETWORKS_ROUTE}#networks-sepolia`,
icon: 'fa fa-plug', icon: 'fa fa-plug',
}, },
{
tabMessage: (t) => t('networks'),
sectionMessage: (t) => t('lineatestnet'),
descriptionMessage: (t) => t('lineatestnet'),
route: `${NETWORKS_ROUTE}#networks-lineatestnet`,
icon: 'fa fa-plug',
},
{ {
tabMessage: (t) => t('networks'), tabMessage: (t) => t('networks'),
sectionMessage: (t) => t('localhost'), sectionMessage: (t) => t('localhost'),

View File

@ -177,7 +177,7 @@ describe('Settings Search Utils', () => {
}); });
it('should get good network section number', () => { it('should get good network section number', () => {
expect(getNumberOfSettingsInSection(t, t('networks'))).toStrictEqual(4); expect(getNumberOfSettingsInSection(t, t('networks'))).toStrictEqual(5);
}); });
it('should get good experimental section number', () => { it('should get good experimental section number', () => {

View File

@ -56,6 +56,7 @@ export function isDefaultMetaMaskChain(chainId) {
chainId === CHAIN_IDS.MAINNET || chainId === CHAIN_IDS.MAINNET ||
chainId === CHAIN_IDS.GOERLI || chainId === CHAIN_IDS.GOERLI ||
chainId === CHAIN_IDS.SEPOLIA || chainId === CHAIN_IDS.SEPOLIA ||
chainId === CHAIN_IDS.LINEA_TESTNET ||
chainId === CHAIN_IDS.LOCALHOST chainId === CHAIN_IDS.LOCALHOST
) { ) {
return true; return true;

View File

@ -1,5 +1,6 @@
import Bowser from 'bowser'; import Bowser from 'bowser';
import { BN } from 'ethereumjs-util'; import { BN } from 'ethereumjs-util';
import { CHAIN_IDS } from '../../../shared/constants/network';
import { addHexPrefixToObjectValues } from '../../../shared/lib/swaps-utils'; import { addHexPrefixToObjectValues } from '../../../shared/lib/swaps-utils';
import { toPrecisionWithoutTrailingZeros } from '../../../shared/lib/transactions-controller-utils'; import { toPrecisionWithoutTrailingZeros } from '../../../shared/lib/transactions-controller-utils';
import * as util from './util'; import * as util from './util';
@ -589,4 +590,14 @@ describe('util', () => {
).toStrictEqual('The Quick Brown \\u202EFox Jumps Over The Lazy Dog'); ).toStrictEqual('The Quick Brown \\u202EFox Jumps Over The Lazy Dog');
}); });
}); });
describe('isDefaultMetaMaskChain()', () => {
it('should return true if the provided chainId is a default MetaMask chain', () => {
expect(util.isDefaultMetaMaskChain(CHAIN_IDS.GOERLI)).toBeTruthy();
});
it('should return false if the provided chainId is a not default MetaMask chain', () => {
expect(util.isDefaultMetaMaskChain(CHAIN_IDS.CELO)).toBeFalsy();
});
});
}); });

View File

@ -472,6 +472,8 @@ export default class Routes extends Component {
return t('connectingToGoerli'); return t('connectingToGoerli');
case NETWORK_TYPES.SEPOLIA: case NETWORK_TYPES.SEPOLIA:
return t('connectingToSepolia'); return t('connectingToSepolia');
case NETWORK_TYPES.LINEA_TESTNET:
return t('connectingToLineaTestnet');
default: default:
return t('connectingTo', [providerId]); return t('connectingTo', [providerId]);
} }

View File

@ -4,6 +4,7 @@ import {
CURRENCY_SYMBOLS, CURRENCY_SYMBOLS,
CHAIN_IDS, CHAIN_IDS,
NETWORK_TYPES, NETWORK_TYPES,
LINEA_TESTNET_RPC_URL,
} from '../../../../shared/constants/network'; } from '../../../../shared/constants/network';
const defaultNetworksData = [ const defaultNetworksData = [
@ -43,6 +44,15 @@ const defaultNetworksData = [
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA], ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.SEPOLIA],
blockExplorerUrl: 'https://sepolia.etherscan.io', blockExplorerUrl: 'https://sepolia.etherscan.io',
}, },
{
labelKey: NETWORK_TYPES.LINEA_TESTNET,
iconColor: '#234FD5',
providerType: NETWORK_TYPES.LINEA_TESTNET,
rpcUrl: LINEA_TESTNET_RPC_URL,
chainId: CHAIN_IDS.LINEA_TESTNET,
ticker: TEST_NETWORK_TICKER_MAP[NETWORK_TYPES.LINEA_TESTNET],
blockExplorerUrl: 'https://explorer.goerli.linea.build',
},
]; ];
export { defaultNetworksData }; export { defaultNetworksData };

View File

@ -20,7 +20,9 @@ import {
getProvider, getProvider,
} from '../../../selectors'; } from '../../../selectors';
import { import {
CHAIN_IDS,
NETWORK_TYPES, NETWORK_TYPES,
SHOULD_SHOW_LINEA_TESTNET_NETWORK,
TEST_CHAINS, TEST_CHAINS,
} from '../../../../shared/constants/network'; } from '../../../../shared/constants/network';
import { defaultNetworksData } from './networks-tab.constants'; import { defaultNetworksData } from './networks-tab.constants';
@ -28,11 +30,13 @@ import NetworksTabContent from './networks-tab-content';
import NetworksForm from './networks-form'; import NetworksForm from './networks-form';
import NetworksFormSubheader from './networks-tab-subheader'; import NetworksFormSubheader from './networks-tab-subheader';
const defaultNetworks = defaultNetworksData.map((network) => ({ const defaultNetworks = defaultNetworksData
.map((network) => ({
...network, ...network,
viewOnly: true, viewOnly: true,
isATestNetwork: TEST_CHAINS.includes(network.chainId), isATestNetwork: TEST_CHAINS.includes(network.chainId),
})); }))
.filter((network) => network.chainId !== CHAIN_IDS.LINEA_TESTNET);
const NetworksTab = ({ addNewNetwork }) => { const NetworksTab = ({ addNewNetwork }) => {
const t = useI18nContext(); const t = useI18nContext();
@ -64,10 +68,14 @@ const NetworksTab = ({ addNewNetwork }) => {
}; };
}); });
const networksToRender = [ let networksToRender = [...defaultNetworks, ...frequentRpcNetworkListDetails];
...defaultNetworks,
...frequentRpcNetworkListDetails, if (!SHOULD_SHOW_LINEA_TESTNET_NETWORK) {
]; networksToRender = networksToRender.filter(
(network) => network.chainId !== CHAIN_IDS.LINEA_TESTNET,
);
}
let selectedNetwork = let selectedNetwork =
networksToRender.find( networksToRender.find(
(network) => network.rpcUrl === networksTabSelectedRpcUrl, (network) => network.rpcUrl === networksTabSelectedRpcUrl,

View File

@ -2512,6 +2512,7 @@ export function setRpcTarget(
chainId: string, chainId: string,
ticker?: EtherDenomination, ticker?: EtherDenomination,
nickname?: string, nickname?: string,
rpcPrefs?: object,
): ThunkAction<void, MetaMaskReduxState, unknown, AnyAction> { ): ThunkAction<void, MetaMaskReduxState, unknown, AnyAction> {
return async (dispatch) => { return async (dispatch) => {
log.debug( log.debug(
@ -2524,6 +2525,7 @@ export function setRpcTarget(
chainId, chainId,
ticker ?? EtherDenomination.ETH, ticker ?? EtherDenomination.ETH,
nickname || newRpcUrl, nickname || newRpcUrl,
rpcPrefs,
]); ]);
} catch (error) { } catch (error) {
logErrorWithMessage(error); logErrorWithMessage(error);