1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 03:12:42 +02:00

Support for GridPlus Lattice1 hardware wallet (#12053)

* GridPlus: Adds support for GridPlus Lattice1 hardware wallet

* Fixes issue with switching hardware HD path
The main `Select HD Path` piece of the account selection component was not
properly hooked up to the state manager (`onPathChange`) and the extra
`Popover` component was being used instead.
I'm not sure what the origin of this is, but I don't see why the Popover
is needed at all. I have remove it and hooked `onPathChange` directly into
the HD path selector dropdown.
This was an issue that nearly every Lattice user who had come from Ledger
has contacted us about.

* GridPlus: Addresses QA issues
* Adds Lattice tutorial + image
* Cleans up connectivity issues (see: https://github.com/GridPlus/eth-lattice-keyring/pull/16)

* GridPlus: Adds Firefox support
To connect to the Lattice you need to open a new tab/window and get
login data from it. We were not able to do this for Firefox because
we relied on the `window` API. This is now fixed.
See corresponding changes:
* `eth-lattice-keyring`: https://github.com/GridPlus/eth-lattice-keyring/pull/17
* Lattice connector: https://github.com/GridPlus/wallet-web/pull/152

* GridPlus: Adds missing error path for Firefox
See: 242a93f559
This commit is contained in:
Alex Miller 2021-11-08 08:48:41 -06:00 committed by GitHub
parent 87ab272a5a
commit 722c4e5b63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
59 changed files with 661 additions and 313 deletions

View File

@ -844,9 +844,6 @@
"selectAnAccount": {
"message": "መለያ ይምረጡ"
},
"selectAnAccountHelp": {
"message": "መለያውን በ MetaMask ለማየት ይምረጡ"
},
"selectEachPhrase": {
"message": "እባክዎ እያንዳንዱን ሐረግ በመምረጥ ትክክለኛነቱን ያረጋግጡ።"
},

View File

@ -840,9 +840,6 @@
"selectAnAccount": {
"message": "قم بتحديد حساب"
},
"selectAnAccountHelp": {
"message": "حدد الحساب لعرضه في MetaMask"
},
"selectEachPhrase": {
"message": "يُرجى تحديد كل عبارة للتأكد من صحتها."
},

View File

@ -843,9 +843,6 @@
"selectAnAccount": {
"message": "Изберете акаунт"
},
"selectAnAccountHelp": {
"message": "Изберете акаунта за преглед в MetaMask"
},
"selectEachPhrase": {
"message": "Моля, изберете всяка фраза, за да се уверите, че е правилна."
},

View File

@ -847,9 +847,6 @@
"selectAnAccount": {
"message": "একটি অ্যাকাউন্ট নির্বাচন করুন"
},
"selectAnAccountHelp": {
"message": "MetaMask এ দেখতে অ্যাকাউন্টটি নির্বাচন করুন"
},
"selectEachPhrase": {
"message": "ফ্রেজগুলি সঠিক তা নিশ্চিত করতে অনুগ্রহ করে প্রতিটি ফ্রেজ নির্বাচন করুন।"
},

View File

@ -825,9 +825,6 @@
"selectAnAccount": {
"message": "Selecciona un Compte"
},
"selectAnAccountHelp": {
"message": "Selecciona el compte que vols veure a MetaMask"
},
"selectEachPhrase": {
"message": "Si us plau selecciona cada frase per a assegurar-te que és correcta."
},

View File

@ -828,9 +828,6 @@
"selectAnAccount": {
"message": "Vælg en Konto"
},
"selectAnAccountHelp": {
"message": "Vælg kontoen der skal vises i MetaMask"
},
"selectEachPhrase": {
"message": "Vælg venligst hver sætning, for at sikre at de er korrekte."
},

View File

@ -819,9 +819,6 @@
"selectAnAccount": {
"message": "Ein Konto auswählen"
},
"selectAnAccountHelp": {
"message": "Wählen Sie das Konto aus, das in MetaMask angezeigt werden soll."
},
"selectEachPhrase": {
"message": "Bitte wählen Sie jede Phrase aus, um sicherzustellen, dass sie korrekt ist."
},

View File

@ -844,9 +844,6 @@
"selectAnAccount": {
"message": "Επιλέξτε Λογαριασμό"
},
"selectAnAccountHelp": {
"message": "Επιλέξτε τον λογαριασμό για προβολή στο MetaMask"
},
"selectEachPhrase": {
"message": "Παρακαλούμε επιλέξτε κάθε φράση, για να βεβαιωθείτε ότι είναι σωστή."
},

View File

@ -2123,13 +2123,6 @@
"selectAnAccountAlreadyConnected": {
"message": "This account has already been connected to MetaMask"
},
"selectAnAccountHelp": {
"message": "Select an account to view in MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "Don't see your account? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Please select each phrase in order to make sure it is correct."
},
@ -2137,7 +2130,7 @@
"message": "Select HD Path"
},
"selectPathHelp": {
"message": "If you don't see your existing Ledger accounts below, try switching paths to \"Legacy (MEW / MyCrypto)\""
"message": "If you don't see the accounts you expect, try switching the HD path."
},
"selectType": {
"message": "Select Type"
@ -2310,6 +2303,13 @@
"statusNotConnected": {
"message": "Not connected"
},
"step1LatticeWallet": {
"message": "Make sure your Lattice1 is ready to connect"
},
"step1LatticeWalletMsg": {
"message": "You can connect MetaMask to your Lattice1 device once it is set up and online. Unlock your device and have your Device ID ready. For more on using hardware wallets, $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"step1LedgerWallet": {
"message": "Download Ledger app"
},
@ -2673,12 +2673,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "Allow this site to switch the network?"
},
"switchLedgerPaths": {
"message": "Switch Ledger paths"
},
"switchLedgerPathsText": {
"message": "Select the Ledger path to view other accounts"
},
"switchNetwork": {
"message": "Switch network"
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "Esta cuenta ya se conectó a MetaMask."
},
"selectAnAccountHelp": {
"message": "Seleccione una cuenta para verla en MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "¿No ve su cuenta? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Seleccione cada frase para garantizar que sea correcta."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "¿Le permite a este sitio cambiar la red?"
},
"switchLedgerPaths": {
"message": "Cambiar rutas de acceso al Ledger"
},
"switchLedgerPathsText": {
"message": "Seleccione la ruta de acceso al Ledger para ver otras cuentas"
},
"switchNetwork": {
"message": "Cambiar red"
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "Esta cuenta ya se conectó a MetaMask."
},
"selectAnAccountHelp": {
"message": "Seleccione una cuenta para verla en MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "¿No ve su cuenta? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Seleccione cada frase para garantizar que sea correcta."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "¿Le permite a este sitio cambiar la red?"
},
"switchLedgerPaths": {
"message": "Cambiar rutas de acceso al Ledger"
},
"switchLedgerPathsText": {
"message": "Seleccione la ruta de acceso al Ledger para ver otras cuentas"
},
"switchNetwork": {
"message": "Cambiar red"
},

View File

@ -837,9 +837,6 @@
"selectAnAccount": {
"message": "Valige konto"
},
"selectAnAccountHelp": {
"message": "Valige konto, mida MetaMaskis vaadata"
},
"selectEachPhrase": {
"message": "Valige iga fraas, veendumaks, et see on õige."
},

View File

@ -847,9 +847,6 @@
"selectAnAccount": {
"message": "یک حساب را انتخاب کنید"
},
"selectAnAccountHelp": {
"message": "برای مشاهده MetaMask حساب را انتخاب نمایید"
},
"selectEachPhrase": {
"message": "لطفًا جهت اطمینان از درستی، هر عبارت را انتخاب کنید."
},

View File

@ -844,9 +844,6 @@
"selectAnAccount": {
"message": "Valitse tili"
},
"selectAnAccountHelp": {
"message": "Valitse MetaMaskissa näytettävä tili"
},
"selectEachPhrase": {
"message": "Ole hyvä ja valitse jokainen teksti järjestyksessä varmistaaksesi, että se on oikein."
},

View File

@ -768,9 +768,6 @@
"selectAnAccount": {
"message": "Pumili ng Account"
},
"selectAnAccountHelp": {
"message": "Piliin ang account na titingnan sa MetaMask"
},
"selectEachPhrase": {
"message": "Pakipili ang bawat parirala para tiyaking tama ito."
},

View File

@ -829,9 +829,6 @@
"selectAnAccount": {
"message": "Selectionner un compte"
},
"selectAnAccountHelp": {
"message": "Selectionner le compte à afficher dans MetaMask"
},
"selectEachPhrase": {
"message": "Veuillez sélectionner chaque phrase afin de vous assurer qu'elle est correcte."
},

View File

@ -841,9 +841,6 @@
"selectAnAccount": {
"message": "בחר חשבון"
},
"selectAnAccountHelp": {
"message": "בחר את החשבון לצפייה ב- MetaMask"
},
"selectEachPhrase": {
"message": "נא לבחור כל צירוף מילים כדי להבטיח שהוא נכון."
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "यह खाता पहले ही MetaMask से जुड़ा हुआ है"
},
"selectAnAccountHelp": {
"message": "MetaMask में देखने के लिए खाते का चयन करें।"
},
"selectAnAccountHelpDirections": {
"message": "अपना खाता नहीं देख पा रहे हैं? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "कृपया प्रत्येक वाक्यांश का चयन करें, ताकि यह सुनिश्चित हो सके कि यह सही है।"
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "इस साइट को नेटवर्क स्विच करने की अनुमति दें?"
},
"switchLedgerPaths": {
"message": "Ledger पथ स्विच करें"
},
"switchLedgerPathsText": {
"message": "अन्य खाते देखने के लिए Ledger पथ का चयन करें"
},
"switchNetwork": {
"message": "नेटवर्क स्विच करें"
},

View File

@ -840,9 +840,6 @@
"selectAnAccount": {
"message": "Odaberi račun"
},
"selectAnAccountHelp": {
"message": "Odaberi račun za prikaz u usluzi MetaMask"
},
"selectEachPhrase": {
"message": "Odaberite svaku rečenicu kako biste provjerili je li točna."
},

View File

@ -528,9 +528,6 @@
"selectAnAccount": {
"message": "Chwazi yon kont"
},
"selectAnAccountHelp": {
"message": "Chwazi kont pou wè nan MetaMask"
},
"selectHdPath": {
"message": "Chwazi chemen HD"
},

View File

@ -840,9 +840,6 @@
"selectAnAccount": {
"message": "Válasszon fiókot"
},
"selectAnAccountHelp": {
"message": "Válássza ki a MetaMask-ban megtekinteni kívánt fiókot"
},
"selectEachPhrase": {
"message": "Kérjük, válassza ki az egyes mondatokat, hogy meggyőződjön azok helyességéről. "
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "Akun ini sudah terhubung ke MetaMask."
},
"selectAnAccountHelp": {
"message": "Pilih akun untuk dilihat di MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "Tidak melihat akun Anda? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Pilih masing-masing frasa untuk memastikan kebenarannya."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "Izinkan situs ini untuk beralih jaringan?"
},
"switchLedgerPaths": {
"message": "Beralih jalur Ledger"
},
"switchLedgerPathsText": {
"message": "Pilih jalur Ledger untuk melihat akun lain"
},
"switchNetwork": {
"message": "Beralih jaringan"
},

View File

@ -1309,9 +1309,6 @@
"selectAnAccount": {
"message": "Seleziona un Account"
},
"selectAnAccountHelp": {
"message": "Selezione l'account da visualizzare in MetaMask"
},
"selectEachPhrase": {
"message": "Per favore seleziona ogni frase in ordine per assicurarti che sia corretta."
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "このアカウントはすでに MetaMask に接続されています"
},
"selectAnAccountHelp": {
"message": "MetaMask で表示するアカウントを選択します。"
},
"selectAnAccountHelpDirections": {
"message": "アカウントが表示されません。$1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "各フレーズを選択して、各フレーズが正しいことを確認してください。"
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "このサイトのネットワーク変更を許可しますか?"
},
"switchLedgerPaths": {
"message": "レジャー パスの切り替え"
},
"switchLedgerPathsText": {
"message": "レジャー パスを選択して他のアカウントを表示します"
},
"switchNetwork": {
"message": "ネットワークの切り替え"
},

View File

@ -847,9 +847,6 @@
"selectAnAccount": {
"message": "ಖಾತೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"
},
"selectAnAccountHelp": {
"message": "MetaMask ನಲ್ಲಿ ವೀಕ್ಷಿಸಲು ಖಾತೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"
},
"selectEachPhrase": {
"message": "ಅದು ಸರಿಯಾಗಿದೆಯೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ದಯವಿಟ್ಟು ಪ್ರತಿ ಫ್ರೇಸ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ."
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "이 계정은 이미 MetaMask와 연결되어 있습니다."
},
"selectAnAccountHelp": {
"message": "MetaMask에서 확인할 계정을 선택하십시오."
},
"selectAnAccountHelpDirections": {
"message": "계정을 찾을 수 없습니까? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "각 구문을 선택하여 구문이 올바른지 확인하세요."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "이 사이트가 네트워크를 전환하도록 허용하시겠어요?"
},
"switchLedgerPaths": {
"message": "Ledger 경로 전환"
},
"switchLedgerPathsText": {
"message": "다른 계정을 보려면 Ledger 경로를 선택하세요."
},
"switchNetwork": {
"message": "네트워크 전환"
},

View File

@ -847,9 +847,6 @@
"selectAnAccount": {
"message": "Pasirinkite paskyrą"
},
"selectAnAccountHelp": {
"message": "Pasirinkite paskyrą peržiūrėti „MetaMask“"
},
"selectEachPhrase": {
"message": "Pasirinkite kiekvieną frazę, kad patikrintumėte, ar ji tinkama"
},

View File

@ -843,9 +843,6 @@
"selectAnAccount": {
"message": "Atlasiet kontu"
},
"selectAnAccountHelp": {
"message": "Atlasiet kontu, ko skatīt MetaMask"
},
"selectEachPhrase": {
"message": "Lūdzu, atlasiet katru frāzi, lai pārliecinātos par tās pareizību."
},

View File

@ -824,9 +824,6 @@
"selectAnAccount": {
"message": "Pilih Akaun"
},
"selectAnAccountHelp": {
"message": "Pilih akaun untuk dilihat dalam MetaMask"
},
"selectEachPhrase": {
"message": "Sila pilih setiap ungkapan untuk memastikan ia betul."
},

View File

@ -831,9 +831,6 @@
"selectAnAccount": {
"message": "Velg en konto"
},
"selectAnAccountHelp": {
"message": "Velg konto for å vise i MetaMask"
},
"selectEachPhrase": {
"message": "Velg hver frase for å kontrollere at den er riktig."
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "Nakakonekta na ang account na ito sa MetaMask"
},
"selectAnAccountHelp": {
"message": "Pumili ng account na titingnan sa MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "Hindi makita ang iyong account? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Pakipili ang bawat phrase para matiyak na tama ito."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "Payagang palitan ng site na ito ang network?"
},
"switchLedgerPaths": {
"message": "Magpalit ng path ng Ledger"
},
"switchLedgerPathsText": {
"message": "Piliin ang path ng Ledger para tingnan ang iba pang account"
},
"switchNetwork": {
"message": "Lumipat ng network"
},

View File

@ -841,9 +841,6 @@
"selectAnAccount": {
"message": "Wybierz konto"
},
"selectAnAccountHelp": {
"message": "Wybierz konto do przeglądania w MetaMask"
},
"selectEachPhrase": {
"message": "Wybierz każdą frazę, aby upewnić się, że jest poprawna."
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "Esta conta já foi conectada ao MetaMask"
},
"selectAnAccountHelp": {
"message": "Selecione uma conta a ser exibida no MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "Não está vendo sua conta? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Selecione cada frase para garantir que esteja correta."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "Permitir que este site mude a rede?"
},
"switchLedgerPaths": {
"message": "Mudar caminhos do Ledger"
},
"switchLedgerPathsText": {
"message": "Selecione o caminho do Ledger para ver outras contas"
},
"switchNetwork": {
"message": "Trocar de rede"
},

View File

@ -834,9 +834,6 @@
"selectAnAccount": {
"message": "Selectați un cont"
},
"selectAnAccountHelp": {
"message": "Selectați contul de vizualizat în MetaMask"
},
"selectEachPhrase": {
"message": "Vă rugăm să selectați fiecare expresie pentru a vă asigura că este corectă."
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "Этот счет уже подключен к MetaMask"
},
"selectAnAccountHelp": {
"message": "Выберите счет для просмотра в MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "Не видите свой счет? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Выберите каждую фразу, чтобы убедиться, что она верна."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "Разрешить этому сайту переключить сеть?"
},
"switchLedgerPaths": {
"message": "Переключить пути Ledger"
},
"switchLedgerPathsText": {
"message": "Выберите путь Ledger для просмотра других счетов"
},
"switchNetwork": {
"message": "Переключить сеть"
},

View File

@ -810,9 +810,6 @@
"selectAnAccount": {
"message": "Vybrať účet"
},
"selectAnAccountHelp": {
"message": "Vyberte účet, ktorý chcete zobraziť v MetaMask"
},
"selectEachPhrase": {
"message": "Vyberte každú frázu, aby ste sa uistili, že je správna."
},

View File

@ -835,9 +835,6 @@
"selectAnAccount": {
"message": "Izberi račun"
},
"selectAnAccountHelp": {
"message": "Izberi račun za prikaz v MetaMask"
},
"selectEachPhrase": {
"message": "Izberite vsako geslo ter se prepričajte, da je pravilno."
},

View File

@ -838,9 +838,6 @@
"selectAnAccount": {
"message": "Izaberite nalog"
},
"selectAnAccountHelp": {
"message": "Izaberite nalog za prikaz u MetaMask-u"
},
"selectEachPhrase": {
"message": "Molimo vas izaberite svaki izraz kako biste proverili da je tačan."
},

View File

@ -831,9 +831,6 @@
"selectAnAccount": {
"message": "Välj ett konto"
},
"selectAnAccountHelp": {
"message": "Välj konto att visa i MetaMask"
},
"selectEachPhrase": {
"message": "Välj varje fras för att säkerställa att den är korrekt."
},

View File

@ -825,9 +825,6 @@
"selectAnAccount": {
"message": "Chagua Akaunti"
},
"selectAnAccountHelp": {
"message": "Chagua akaunti kuangalia kwenye MetaMask"
},
"selectEachPhrase": {
"message": "Tafadhali chagua kila kirai ili kuhakikisha kuwa hii ni sahihi."
},

View File

@ -1300,9 +1300,6 @@
"selectAnAccount": {
"message": "Pumili ng Account"
},
"selectAnAccountHelp": {
"message": "Piliin ang account na titingnan sa MetaMask"
},
"selectEachPhrase": {
"message": "Pakipili ang bawat phrase para matiyak na tama ito."
},

View File

@ -847,9 +847,6 @@
"selectAnAccount": {
"message": "Виберіть обліковий запис"
},
"selectAnAccountHelp": {
"message": "Оберіть обліковий запис для перегляду в MetaMask"
},
"selectEachPhrase": {
"message": "Виберіть кожну фразу, щоб переконатися, що вона правильна."
},

View File

@ -1619,13 +1619,6 @@
"selectAnAccountAlreadyConnected": {
"message": "Tài khoản này đã được kết nối với MetaMask"
},
"selectAnAccountHelp": {
"message": "Chọn một tài khoản để xem trong MetaMask."
},
"selectAnAccountHelpDirections": {
"message": "Bạn không thấy tài khoản của mình? $1",
"description": "$1 represents the `hardwareWalletSupportLinkConversion` localization key"
},
"selectEachPhrase": {
"message": "Vui lòng chọn từng cụm mật khẩu theo thứ tự để đảm bảo sự chính xác."
},
@ -2106,12 +2099,6 @@
"switchEthereumChainConfirmationTitle": {
"message": "Cho phép trang web này chuyển mạng?"
},
"switchLedgerPaths": {
"message": "Chuyển đường dẫn Ledger"
},
"switchLedgerPathsText": {
"message": "Chọn đường dẫn Ledger để xem các tài khoản khác"
},
"switchNetwork": {
"message": "Chuyển mạng"
},

View File

@ -1303,9 +1303,6 @@
"selectAnAccount": {
"message": "选择一个账户"
},
"selectAnAccountHelp": {
"message": "选择在 MetaMask 中查看的账户"
},
"selectEachPhrase": {
"message": "请选择每个单词,以确保其正确性。"
},

View File

@ -0,0 +1,18 @@
<svg width="213" height="78" viewBox="0 0 213 78" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M103.333 32L109.425 37.29L103.333 42.58M96 37.21H109.5" stroke="#3098DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M202.536 76.19H119.162C118.68 76.1892 118.203 76.0934 117.757 75.9082C117.312 75.7229 116.908 75.4517 116.568 75.1102C116.227 74.7686 115.958 74.3634 115.774 73.9176C115.59 73.4718 115.496 72.9942 115.497 72.512V4.677C115.496 4.19492 115.59 3.7174 115.774 3.27171C115.958 2.82602 116.228 2.42089 116.568 2.07945C116.908 1.73801 117.313 1.46695 117.758 1.28173C118.203 1.09652 118.68 1.00079 119.162 1H202.536C203.018 1.00066 203.495 1.0963 203.941 1.28147C204.386 1.46663 204.79 1.73769 205.13 2.07916C205.471 2.42063 205.74 2.82581 205.924 3.27156C206.108 3.7173 206.202 4.19488 206.201 4.677V72.512C206.202 72.9942 206.108 73.4719 205.924 73.9177C205.741 74.3636 205.471 74.7689 205.131 75.1105C204.79 75.4521 204.386 75.7232 203.941 75.9084C203.496 76.0937 203.018 76.1893 202.536 76.19Z" fill="#FEFEFE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M202.536 76.19H119.162C118.68 76.1892 118.203 76.0934 117.757 75.9082C117.312 75.7229 116.908 75.4517 116.568 75.1102C116.227 74.7686 115.958 74.3634 115.774 73.9176C115.59 73.4718 115.496 72.9942 115.497 72.512V4.677C115.496 4.19492 115.59 3.7174 115.774 3.27171C115.958 2.82602 116.228 2.42089 116.568 2.07945C116.908 1.73801 117.313 1.46695 117.758 1.28173C118.203 1.09652 118.68 1.00079 119.162 1H202.536C203.018 1.00066 203.495 1.0963 203.941 1.28147C204.386 1.46663 204.79 1.73769 205.13 2.07916C205.471 2.42063 205.74 2.82581 205.924 3.27156C206.108 3.7173 206.202 4.19488 206.201 4.677V72.512C206.202 72.9942 206.108 73.4719 205.924 73.9177C205.741 74.3636 205.471 74.7689 205.131 75.1105C204.79 75.4521 204.386 75.7232 203.941 75.9084C203.496 76.0937 203.018 76.1893 202.536 76.19V76.19Z" stroke="#3098DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M210.706 76.63H111.222C111.061 76.6299 110.902 76.598 110.754 76.5363C110.605 76.4746 110.47 76.3842 110.357 76.2704C110.243 76.1565 110.153 76.0214 110.092 75.8727C110.031 75.724 110 75.5648 110 75.404V70.871C110 70.194 110.547 69.645 111.222 69.645H210.706C211.38 69.645 211.927 70.194 211.927 70.871V75.404C211.927 76.081 211.38 76.63 210.706 76.63Z" fill="#D9F0FF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M210.706 76.63H111.222C111.061 76.6299 110.902 76.598 110.754 76.5363C110.605 76.4746 110.47 76.3842 110.357 76.2704C110.243 76.1565 110.153 76.0214 110.092 75.8727C110.031 75.724 110 75.5648 110 75.404V70.871C110 70.194 110.547 69.645 111.222 69.645H210.706C211.38 69.645 211.927 70.194 211.927 70.871V75.404C211.927 76.081 211.38 76.63 210.706 76.63Z" stroke="#3098DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M119.772 64.695H202.155V5.90302H119.772V64.695Z" fill="#FEFEFE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M119.772 64.695H202.155V5.90302H119.772V64.695Z" stroke="#3098DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M163.433 52.476H158.382C158.294 52.4765 158.207 52.4496 158.135 52.399L155.146 50.307L153.832 49.221L146.537 51.249C146.427 51.2786 146.309 51.2638 146.21 51.2076C146.111 51.1515 146.037 51.0586 146.006 50.949L143.891 43.608C143.867 43.5246 143.868 43.4358 143.894 43.353L146.141 36.283L144.792 34.683C144.753 34.6369 144.724 34.5833 144.707 34.5255C144.69 34.4678 144.685 34.4071 144.692 34.3473C144.699 34.2875 144.719 34.2298 144.749 34.1778C144.78 34.1258 144.82 34.0806 144.869 34.045L145.111 33.869L144.437 33.249C144.391 33.2058 144.354 33.1532 144.33 33.0947C144.306 33.0363 144.295 32.9733 144.297 32.91C144.299 32.8468 144.315 32.7848 144.343 32.7282C144.372 32.6716 144.412 32.6217 144.461 32.582L144.841 32.281L144.221 31.804C144.168 31.7625 144.125 31.7092 144.096 31.6485C144.066 31.5877 144.051 31.521 144.052 31.4535C144.053 31.3861 144.069 31.3196 144.099 31.2594C144.129 31.1991 144.173 31.1466 144.227 31.106L144.682 30.766L143.602 25.529C143.586 25.4528 143.591 25.3737 143.616 25.3L145.262 20.299C145.28 20.2439 145.309 20.1929 145.348 20.1493C145.386 20.1056 145.433 20.0701 145.485 20.0448C145.537 20.0195 145.594 20.005 145.652 20.0021C145.71 19.9993 145.768 20.008 145.823 20.028L156.483 24.051H165.332L175.99 20.028C176.045 20.0072 176.103 19.9977 176.161 20.0001C176.22 20.0026 176.277 20.017 176.329 20.0423C176.382 20.0677 176.429 20.1036 176.467 20.1477C176.505 20.1918 176.534 20.2433 176.552 20.299L178.199 25.302C178.223 25.3749 178.227 25.4528 178.212 25.528L177.144 30.768L177.591 31.108C177.644 31.1493 177.686 31.202 177.716 31.2622C177.745 31.3224 177.761 31.3885 177.761 31.4555C177.761 31.5225 177.746 31.5887 177.717 31.6491C177.688 31.7094 177.646 31.7624 177.593 31.804L176.974 32.281L177.354 32.582C177.454 32.662 177.514 32.782 177.518 32.91C177.521 32.9731 177.509 33.036 177.485 33.0944C177.461 33.1528 177.424 33.2052 177.378 33.248L176.704 33.869L176.946 34.045C176.995 34.0805 177.036 34.1257 177.066 34.1777C177.097 34.2298 177.116 34.2876 177.123 34.3476C177.13 34.4075 177.125 34.4683 177.107 34.526C177.09 34.5837 177.06 34.6372 177.021 34.683L175.674 36.282L177.934 43.352C177.96 43.4348 177.961 43.5236 177.937 43.607L175.807 50.95C175.775 51.0591 175.702 51.1514 175.603 51.2073C175.504 51.2631 175.387 51.2781 175.277 51.249L167.982 49.221L166.628 50.337L163.678 52.399C163.606 52.4491 163.521 52.476 163.433 52.476Z" fill="#FEFEFE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M163.433 52.476H158.382C158.294 52.4765 158.207 52.4496 158.135 52.399L155.146 50.307L153.832 49.221L146.537 51.249C146.427 51.2786 146.309 51.2638 146.21 51.2076C146.111 51.1515 146.037 51.0586 146.006 50.949L143.891 43.608C143.867 43.5246 143.868 43.4358 143.894 43.353L146.141 36.283L144.792 34.683C144.753 34.6369 144.724 34.5833 144.707 34.5255C144.69 34.4678 144.685 34.4071 144.692 34.3473C144.699 34.2875 144.719 34.2298 144.749 34.1778C144.78 34.1258 144.82 34.0806 144.869 34.045L145.111 33.869L144.437 33.249C144.391 33.2058 144.354 33.1532 144.33 33.0947C144.306 33.0363 144.295 32.9733 144.297 32.91C144.299 32.8468 144.315 32.7848 144.343 32.7282C144.372 32.6716 144.412 32.6217 144.461 32.582L144.841 32.281L144.221 31.804C144.168 31.7625 144.125 31.7092 144.096 31.6485C144.066 31.5877 144.051 31.521 144.052 31.4535C144.053 31.3861 144.069 31.3196 144.099 31.2594C144.129 31.1991 144.173 31.1466 144.227 31.106L144.682 30.766L143.602 25.529C143.586 25.4528 143.591 25.3737 143.616 25.3L145.262 20.299C145.28 20.2439 145.309 20.1929 145.348 20.1493C145.386 20.1056 145.433 20.0701 145.485 20.0448C145.537 20.0195 145.594 20.005 145.652 20.0021C145.71 19.9993 145.768 20.008 145.823 20.028L156.483 24.051H165.332L175.99 20.028C176.045 20.0072 176.103 19.9977 176.161 20.0001C176.22 20.0026 176.277 20.017 176.329 20.0423C176.382 20.0677 176.429 20.1036 176.467 20.1477C176.505 20.1918 176.534 20.2433 176.552 20.299L178.199 25.302C178.223 25.3749 178.227 25.4528 178.212 25.528L177.144 30.768L177.591 31.108C177.644 31.1493 177.686 31.202 177.716 31.2622C177.745 31.3224 177.761 31.3885 177.761 31.4555C177.761 31.5225 177.746 31.5887 177.717 31.6491C177.688 31.7094 177.646 31.7624 177.593 31.804L176.974 32.281L177.354 32.582C177.454 32.662 177.514 32.782 177.518 32.91C177.521 32.9731 177.509 33.036 177.485 33.0944C177.461 33.1528 177.424 33.2052 177.378 33.248L176.704 33.869L176.946 34.045C176.995 34.0805 177.036 34.1257 177.066 34.1777C177.097 34.2298 177.116 34.2876 177.123 34.3476C177.13 34.4075 177.125 34.4683 177.107 34.526C177.09 34.5837 177.06 34.6372 177.021 34.683L175.674 36.282L177.934 43.352C177.96 43.4348 177.961 43.5236 177.937 43.607L175.807 50.95C175.775 51.0591 175.702 51.1514 175.603 51.2073C175.504 51.2631 175.387 51.2781 175.277 51.249L167.982 49.221L166.628 50.337L163.678 52.399C163.606 52.4491 163.521 52.476 163.433 52.476V52.476Z" stroke="#3098DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M162.048 47.58H159.478L159.032 47.936L158.862 50.075H162.664L162.494 47.935L162.048 47.58ZM164.834 39.14L163.771 41.486C163.685 41.676 163.856 41.881 164.051 41.821L167.674 40.701C167.881 40.638 167.901 40.343 167.705 40.249L165.145 39.022C165.117 39.0089 165.087 39.0015 165.056 39.0003C165.025 38.9991 164.994 39.0041 164.965 39.015C164.936 39.0259 164.91 39.0425 164.888 39.0638C164.865 39.0851 164.847 39.1107 164.835 39.139L164.834 39.14ZM156.67 39.022L154.112 40.249C153.916 40.343 153.936 40.637 154.143 40.702L157.767 41.821C157.961 41.881 158.132 41.675 158.046 41.485L156.979 39.139C156.967 39.1107 156.949 39.0851 156.926 39.0638C156.904 39.0425 156.878 39.0259 156.849 39.015C156.82 39.0041 156.789 38.9991 156.758 39.0003C156.727 39.0015 156.697 39.0089 156.669 39.022" fill="#3098DC"/>
<rect x="0.5" y="3.5" width="69" height="69" rx="8.5" stroke="#3098DC"/>
<path d="M67.0547 23.8164C67.0547 22.4724 68.1442 21.3828 69.4883 21.3828C70.8323 21.3828 71.9219 22.4724 71.9219 23.8164V52.3242C71.9219 53.6683 70.8323 54.7578 69.4883 54.7578C68.1442 54.7578 67.0547 53.6683 67.0547 52.3242V23.8164Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M71.2266 52.3242V23.8164C71.2266 22.8564 70.4483 22.0781 69.4883 22.0781C68.5283 22.0781 67.75 22.8564 67.75 23.8164V52.3242C67.75 53.2842 68.5283 54.0625 69.4883 54.0625C70.4483 54.0625 71.2266 53.2842 71.2266 52.3242ZM69.4883 21.3828C68.1442 21.3828 67.0547 22.4724 67.0547 23.8164V52.3242C67.0547 53.6683 68.1442 54.7578 69.4883 54.7578C70.8323 54.7578 71.9219 53.6683 71.9219 52.3242V23.8164C71.9219 22.4724 70.8323 21.3828 69.4883 21.3828Z" fill="#3098DC"/>
<path d="M70.25 25.3594H89.9141C90.79 25.3594 91.5 26.0694 91.5 26.9453V49.8906C91.5 50.7665 90.79 51.4766 89.9141 51.4766H70.25V25.3594Z" fill="#D8F0FE" stroke="#3098DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M46 72L46 3L47 3L47 72L46 72Z" fill="#3098DC"/>
<rect x="7" y="10" width="33" height="56" fill="#D8F0FE" stroke="#3098DC"/>
</svg>

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
app/images/lattice-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -66,6 +66,7 @@
"clipboardWrite",
"http://localhost:8545/",
"https://*.infura.io/",
"https://wallet.gridplus.io/*",
"activeTab",
"webRequest",
"*://*.eth/",

View File

@ -14,6 +14,7 @@ import { stripHexPrefix } from 'ethereumjs-util';
import log from 'loglevel';
import TrezorKeyring from 'eth-trezor-keyring';
import LedgerBridgeKeyring from '@metamask/eth-ledger-bridge-keyring';
import LatticeKeyring from 'eth-lattice-keyring';
import EthQuery from 'eth-query';
import nanoid from 'nanoid';
import {
@ -370,7 +371,11 @@ export default class MetamaskController extends EventEmitter {
await opts.openPopup();
});
const additionalKeyrings = [TrezorKeyring, LedgerBridgeKeyring];
const additionalKeyrings = [
TrezorKeyring,
LedgerBridgeKeyring,
LatticeKeyring,
];
this.keyringController = new KeyringController({
keyringTypes: additionalKeyrings,
initState: initState.KeyringController,
@ -1445,6 +1450,7 @@ export default class MetamaskController extends EventEmitter {
.map((address) => toChecksumHexAddress(address)),
ledger: [],
trezor: [],
lattice: [],
};
// transactions
@ -1545,6 +1551,9 @@ export default class MetamaskController extends EventEmitter {
case 'ledger':
keyringName = LedgerBridgeKeyring.type;
break;
case 'lattice':
keyringName = LatticeKeyring.type;
break;
default:
throw new Error(
'MetamaskController:getKeyringForDevice - Unknown device',
@ -1559,7 +1568,9 @@ export default class MetamaskController extends EventEmitter {
if (hdPath && keyring.setHdPath) {
keyring.setHdPath(hdPath);
}
if (deviceName === 'lattice') {
keyring.appName = 'MetaMask';
}
keyring.network = this.networkController.getProviderConfig().type;
return keyring;
@ -2047,6 +2058,14 @@ export default class MetamaskController extends EventEmitter {
});
}
case KEYRING_TYPES.LATTICE: {
return new Promise((_, reject) => {
reject(
new Error('Lattice does not support eth_getEncryptionPublicKey.'),
);
});
}
default: {
const promise = this.encryptionPublicKeyManager.addUnapprovedMessageAsync(
msgParams,

View File

@ -0,0 +1,320 @@
{
"appState": {
"shouldClose": false,
"menuOpen": false,
"modal": {
"open": false,
"modalState": {
"name": null,
"props": {}
},
"previousModalState": {
"name": null
}
},
"sidebar": {
"isOpen": false,
"transitionName": "",
"type": ""
},
"alertOpen": false,
"alertMessage": null,
"qrCodeData": null,
"networkDropdownOpen": false,
"currentView": {
"name": "confTx",
"context": 0
},
"accountDetail": {
"subview": "transactions"
},
"transForward": false,
"isLoading": false,
"warning": null,
"buyView": {},
"isMouseUser": true,
"gasIsLoading": false,
"networkNonce": "0x92",
"defaultHdPaths": {
"trezor": "m/44'/60'/0'/0",
"ledger": "m/44'/60'/0'/0/0",
"lattice": "m/44'/60'/0'/0"
}
},
"confirmTransaction": {
"txData": {
"estimatedGas": "0x38f53",
"gasLimitSpecified": true,
"gasPriceSpecified": false,
"history": [],
"id": 2389644572638774,
"loadingDefaults": false,
"metamaskNetworkId": "4",
"origin": "remix.ethereum.org",
"status": "unapproved",
"time": 1538844223352,
"txParams": {
"data": "0x608060405234801561001057600080fd5b506102a7806100206000396000f30060806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d13319c48114610050578063dfb29935146100da575b600080fd5b34801561005c57600080fd5b50610065610135565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561009f578181015183820152602001610087565b50505050905090810190601f1680156100cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100e657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101339436949293602493928401919081908401838280828437509497506101cc9650505050505050565b005b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156101c15780601f10610196576101008083540402835291602001916101c1565b820191906000526020600020905b8154815290600101906020018083116101a457829003601f168201915b505050505090505b90565b80516101df9060009060208401906101e3565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061022457805160ff1916838001178555610251565b82800160010185558215610251579182015b82811115610251578251825591602001919060010190610236565b5061025d929150610261565b5090565b6101c991905b8082111561025d57600081556001016102675600a165627a7a72305820cf4282c534b8f2faad947d592afa109b907e4e6b2f52335b361b69c24fedb9580029",
"from": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"gas": "0x38f53",
"gasPrice": "0x3b9aca00",
"value": "0x0"
},
"type": "standard"
},
"tokenData": {},
"methodData": {},
"tokenProps": {
"tokenDecimals": "",
"tokenSymbol": ""
},
"fiatTransactionAmount": "0",
"fiatTransactionFee": "0.05",
"fiatTransactionTotal": "0.05",
"ethTransactionAmount": "0",
"ethTransactionFee": "0.000233",
"ethTransactionTotal": "0.000233",
"hexGasTotal": "0xd42f28057e00",
"nonce": "",
"toSmartContract": false,
"fetchingData": false
},
"localeMessages": {},
"metamask": {
"isInitialized": true,
"isUnlocked": true,
"isAccountMenuOpen": false,
"isPopup": false,
"rpcTarget": "https://rawtestrpc.metamask.io/",
"identities": {
"0x8cf82b5aa41ff2282427be151dd328568684007a": {
"address": "0x8cf82b5aa41ff2282427be151dd328568684007a",
"name": "Account 3"
},
"0xbe1a00e10ec68b154adb84e8119167146a71c9a2": {
"address": "0xbe1a00e10ec68b154adb84e8119167146a71c9a2",
"name": "Account 2"
},
"0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2": {
"address": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"name": "Account 1"
}
},
"unapprovedTxs": {
"2389644572638771": {
"estimatedGas": "0x8544",
"gasLimitSpecified": true,
"gasPriceSpecified": true,
"history": [],
"id": 2389644572638771,
"loadingDefaults": false,
"metamaskNetworkId": "4",
"origin": "MetaMask",
"status": "unapproved",
"time": 1538844175144,
"txParams": {
"data": "0xa9059cbb000000000000000000000000be1a00e10ec68b154adb84e8119167146a71c9a20000000000000000000000000000000000000000000000000000000000000000",
"from": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"gas": "0x8544",
"gasPrice": "0x3b9aca00",
"to": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a",
"value": "0x0"
},
"type": "standard"
},
"2389644572638772": {
"estimatedGas": "0x5208",
"gasLimitSpecified": true,
"gasPriceSpecified": true,
"history": [],
"id": 2389644572638772,
"loadingDefaults": false,
"metamaskNetworkId": "4",
"origin": "MetaMask",
"status": "unapproved",
"time": 1538844178492,
"txParams": {
"from": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"gas": "0x5208",
"gasPrice": "0x3b9aca00",
"to": "0xbe1a00e10ec68b154adb84e8119167146a71c9a2",
"value": "0x0"
},
"type": "standard"
},
"2389644572638773": {
"estimatedGas": {
"length": 1,
"negative": 0,
"red": null,
"words": [34061, null]
},
"gasLimitSpecified": false,
"gasPriceSpecified": true,
"history": [],
"id": 2389644572638773,
"loadingDefaults": false,
"metamaskNetworkId": "4",
"origin": "localhost",
"status": "unapproved",
"time": 1538844204724,
"txParams": {
"data": "0xdfb29935000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000155468697320697320746865206970667320686173680000000000000000000000",
"from": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"gas": "0xc793",
"gasPrice": "0x3b9aca00",
"to": "0xb7ec370c889b3b48ec537e0b2c887faedceb254a",
"value": "0x0"
},
"type": "standard"
},
"2389644572638774": {
"estimatedGas": "0x38f53",
"gasLimitSpecified": true,
"gasPriceSpecified": false,
"history": [],
"id": 2389644572638774,
"loadingDefaults": false,
"metamaskNetworkId": "4",
"origin": "remix.ethereum.org",
"status": "unapproved",
"time": 1538844223352,
"txParams": {
"data": "0x608060405234801561001057600080fd5b506102a7806100206000396000f30060806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d13319c48114610050578063dfb29935146100da575b600080fd5b34801561005c57600080fd5b50610065610135565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561009f578181015183820152602001610087565b50505050905090810190601f1680156100cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100e657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101339436949293602493928401919081908401838280828437509497506101cc9650505050505050565b005b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156101c15780601f10610196576101008083540402835291602001916101c1565b820191906000526020600020905b8154815290600101906020018083116101a457829003601f168201915b505050505090505b90565b80516101df9060009060208401906101e3565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061022457805160ff1916838001178555610251565b82800160010185558215610251579182015b82811115610251578251825591602001919060010190610236565b5061025d929150610261565b5090565b6101c991905b8082111561025d57600081556001016102675600a165627a7a72305820cf4282c534b8f2faad947d592afa109b907e4e6b2f52335b361b69c24fedb9580029",
"from": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"gas": "0x38f53",
"gasPrice": "0x3b9aca00",
"value": "0x0"
},
"type": "standard"
}
},
"noActiveNotices": true,
"frequentRpcList": [],
"addressBook": [],
"selectedTokenAddress": null,
"contractExchangeRates": {},
"tokenExchangeRates": {},
"tokens": [
{
"address": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a",
"decimals": 9,
"symbol": "DGD"
}
],
"pendingTokens": {},
"send": {
"gasLimit": null,
"gasPrice": null,
"gasTotal": null,
"tokenBalance": null,
"from": "",
"to": "",
"amount": "0x0",
"memo": "",
"errors": {},
"editingTransactionId": null,
"forceGasMin": null
},
"coinOptions": {},
"useBlockie": false,
"featureFlags": {
"betaUI": true,
"skipAnnounceBetaUI": true
},
"isRevealingSeedWords": false,
"welcomeScreenSeen": false,
"currentLocale": "en",
"preferences": {
"useETHAsPrimaryCurrency": true
},
"provider": {
"type": "rinkeby"
},
"network": "4",
"accounts": {
"0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2": {
"address": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"balance": "0x36aabfb2a0190c00"
},
"0xbe1a00e10ec68b154adb84e8119167146a71c9a2": {
"address": "0xbe1a00e10ec68b154adb84e8119167146a71c9a2",
"balance": "0x7b3ef08c294a000"
},
"0x8cf82b5aa41ff2282427be151dd328568684007a": {
"address": "0x8cf82b5aa41ff2282427be151dd328568684007a",
"balance": "0x0"
}
},
"currentBlockGasLimit": "0x731e25",
"selectedAddressTxList": [],
"unapprovedMsgs": {},
"unapprovedMsgCount": 0,
"unapprovedPersonalMsgs": {},
"unapprovedPersonalMsgCount": 0,
"unapprovedTypedMessages": {},
"unapprovedTypedMessagesCount": 0,
"keyringTypes": [
"Simple Key Pair",
"HD Key Tree",
"Trezor Hardware",
"Ledger Hardware",
"Lattice Hardware"
],
"keyrings": [
{
"type": "HD Key Tree",
"accounts": [
"0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"0xbe1a00e10ec68b154adb84e8119167146a71c9a2",
"0x8cf82b5aa41ff2282427be151dd328568684007a"
]
}
],
"currentAccountTab": "history",
"accountTokens": {
"0x8cf82b5aa41ff2282427be151dd328568684007a": {},
"0xbe1a00e10ec68b154adb84e8119167146a71c9a2": {},
"0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2": {
"rinkeby": [
{
"address": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a",
"decimals": 9,
"symbol": "DGD"
},
{
"address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359",
"decimals": 18,
"symbol": "DAI"
}
]
}
},
"assetImages": {
"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359": null,
"0xe0b7927c4af23765cb51314a0e0521a9645f0e2a": null
},
"suggestedTokens": {},
"lostIdentities": {},
"seedWords": null,
"forgottenPassword": false,
"selectedAddress": "0xe2f12a09ba1098312a7d1cad7581ed253ca5f4b2",
"recentBlocks": [],
"currentCurrency": "usd",
"conversionRate": 225.23,
"conversionDate": 1538859376,
"shapeShiftTxList": [],
"infuraNetworkStatus": {
"kovan": "ok",
"mainnet": "ok",
"rinkeby": "ok",
"ropsten": "ok",
"goerli": "ok"
}
},
"send": {
"toDropdownOpen": false,
"errors": {},
"warnings": {}
}
}

View File

@ -137,6 +137,7 @@
"eth-json-rpc-middleware": "^6.0.0",
"eth-keyring-controller": "^6.2.0",
"eth-method-registry": "^2.0.0",
"eth-lattice-keyring": "^0.3.0",
"eth-query": "^2.1.2",
"eth-rpc-errors": "^4.0.2",
"eth-sig-util": "^3.0.0",
@ -347,6 +348,7 @@
},
"lavamoat": {
"allowScripts": {
"gridplus-sdk": false,
"chromedriver": true,
"geckodriver": true,
"@sentry/cli": true,

View File

@ -6,6 +6,7 @@
export const KEYRING_TYPES = {
LEDGER: 'Ledger Hardware',
TREZOR: 'Trezor Hardware',
LATTICE: 'Lattice Hardware',
};
/**

View File

@ -238,6 +238,7 @@ export default class AccountMenu extends Component {
switch (type) {
case KEYRING_TYPES.TREZOR:
case KEYRING_TYPES.LEDGER:
case KEYRING_TYPES.LATTICE:
label = t('hardware');
break;
case 'Simple Key Pair':

View File

@ -38,6 +38,7 @@ export default function reduceApp(state = {}, action) {
defaultHdPaths: {
trezor: `m/44'/60'/0'/0`,
ledger: `m/44'/60'/0'/0/0`,
lattice: `m/44'/60'/0'/0`,
},
networksTabSelectedRpcUrl: '',
loadingMethodData: false,

View File

@ -255,6 +255,7 @@ describe('App State', () => {
const hdPaths = {
trezor: "m/44'/60'/0'/0",
ledger: "m/44'/60'/0'",
lattice: "m/44'/60'/0'/0",
};
const state = reduceApp(metamaskState, {
type: actions.SET_HARDWARE_WALLET_DEFAULT_HD_PATH,

View File

@ -5,13 +5,11 @@ import { getAccountLink } from '@metamask/etherscan-link';
import Button from '../../../components/ui/button';
import Checkbox from '../../../components/ui/check-box';
import Dropdown from '../../../components/ui/dropdown';
import Popover from '../../../components/ui/popover';
import { getURLHostName } from '../../../helpers/utils/util';
class AccountList extends Component {
state = {
showPopover: false,
pathValue: null,
};
@ -33,7 +31,7 @@ class AccountList extends Component {
}
renderHdPathSelector() {
const { selectedPath, hdPaths } = this.props;
const { device, selectedPath, hdPaths, onPathChange } = this.props;
const { pathValue } = this.state;
return (
@ -45,10 +43,11 @@ class AccountList extends Component {
<div className="hw-connect__hdPath">
<Dropdown
className="hw-connect__hdPath__select"
options={hdPaths}
options={hdPaths[device.toLowerCase()]}
selectedOption={pathValue || selectedPath}
onChange={(value) => {
this.setPath(value);
onPathChange(value);
}}
/>
</div>
@ -61,26 +60,18 @@ class AccountList extends Component {
}
renderHeader() {
const { device } = this.props;
const shouldShowHDPaths =
device.toLowerCase() === 'ledger' || device.toLowerCase() === 'lattice';
return (
<div className="hw-connect">
<h3 className="hw-connect__unlock-title">
{this.context.t('selectAnAccount')}
</h3>
{shouldShowHDPaths ? this.renderHdPathSelector() : null}
<h3 className="hw-connect__hdPath__title">
{this.context.t('selectAnAccount')}
</h3>
<p className="hw-connect__msg">
{this.context.t('selectAnAccountHelp')}
{this.context.t('selectAnAccountHelpDirections', [
<button
className="hw-connect__msg-link"
onClick={() => this.setState({ showPopover: true })}
key="account-help"
>
{this.context.t('hardwareWalletSupportLinkConversion')}
</button>,
])}
</p>
</div>
);
}
@ -228,44 +219,7 @@ class AccountList extends Component {
);
}
renderSelectPathPopover() {
const { pathValue } = this.state;
const { onPathChange } = this.props;
const footer = (
<div className="switch-ledger-path-popover__footer">
<Button
onClick={() => this.setState({ showPopover: false })}
type="secondary"
>
{this.context.t('cancel')}
</Button>
<Button
onClick={() => {
onPathChange(pathValue);
this.setState({ showPopover: false });
}}
type="primary"
>
{this.context.t('save')}
</Button>
</div>
);
return (
<Popover
title={this.context.t('switchLedgerPaths')}
subtitle={this.context.t('switchLedgerPathsText')}
contentClassName="switch-ledger-path-popover__content"
footer={footer}
>
{this.renderHdPathSelector()}
</Popover>
);
}
render() {
const { showPopover } = this.state;
return (
<div className="new-external-account-form account-list">
{this.renderHeader()}
@ -273,7 +227,6 @@ class AccountList extends Component {
{this.renderPagination()}
{this.renderButtons()}
{this.renderForgetDevice()}
{showPopover ? this.renderSelectPathPopover() : null}
</div>
);
}

View File

@ -20,12 +20,32 @@ const U2F_ERROR = 'U2F';
const LEDGER_LIVE_PATH = `m/44'/60'/0'/0/0`;
const MEW_PATH = `m/44'/60'/0'`;
const BIP44_PATH = `m/44'/60'/0'/0`;
const HD_PATHS = [
const LEDGER_HD_PATHS = [
{ name: 'Ledger Live', value: LEDGER_LIVE_PATH },
{ name: 'Legacy (MEW / MyCrypto)', value: MEW_PATH },
{ name: `BIP44 Standard (e.g. MetaMask, Trezor)`, value: BIP44_PATH },
];
const LATTICE_STANDARD_BIP44_PATH = `m/44'/60'/0'/0/x`;
const LATTICE_LEDGER_LIVE_PATH = `m/44'/60'/x'/0/0`;
const LATTICE_MEW_PATH = `m/44'/60'/0'/x`;
const LATTICE_HD_PATHS = [
{
name: `Standard (${LATTICE_STANDARD_BIP44_PATH})`,
value: LATTICE_STANDARD_BIP44_PATH,
},
{
name: `Ledger Live (${LATTICE_LEDGER_LIVE_PATH})`,
value: LATTICE_LEDGER_LIVE_PATH,
},
{ name: `Ledger Legacy (${LATTICE_MEW_PATH})`, value: LATTICE_MEW_PATH },
];
const HD_PATHS = {
ledger: LEDGER_HD_PATHS,
lattice: LATTICE_HD_PATHS,
};
class ConnectHardwareForm extends Component {
static contextTypes = {
t: PropTypes.func,
@ -56,7 +76,7 @@ class ConnectHardwareForm extends Component {
}
async checkIfUnlocked() {
for (const device of ['trezor', 'ledger']) {
for (const device of ['trezor', 'ledger', 'lattice']) {
const path = this.props.defaultHdPaths[device];
const unlocked = await this.props.checkHardwareStatus(device, path);
if (unlocked) {

View File

@ -43,6 +43,23 @@ export default class SelectHardware extends Component {
);
}
renderConnectToLatticeButton() {
return (
<button
className={classnames('hw-connect__btn', {
selected: this.state.selectedDevice === 'lattice',
})}
onClick={(_) => this.setState({ selectedDevice: 'lattice' })}
>
<img
className="hw-connect__btn__img"
src="images/lattice-logo.png"
alt=""
/>
</button>
);
}
renderConnectToLedgerButton() {
return (
<button
@ -67,6 +84,12 @@ export default class SelectHardware extends Component {
{this.renderConnectToLedgerButton()}
{this.renderConnectToTrezorButton()}
</div>
<div
className="hw-connect__btn-wrapper"
style={{ margin: '10px 0 0 0' }}
>
{this.renderConnectToLatticeButton()}
</div>
</>
);
}
@ -130,6 +153,8 @@ export default class SelectHardware extends Component {
return this.renderLedgerTutorialSteps();
case 'trezor':
return this.renderTrezorTutorialSteps();
case 'lattice':
return this.renderLatticeTutorialSteps();
default:
return '';
}
@ -191,6 +216,46 @@ export default class SelectHardware extends Component {
);
}
renderLatticeTutorialSteps() {
const steps = [
{
asset: 'connect-lattice',
dimensions: { width: '225px', height: '75px' },
title: this.context.t('step1LatticeWallet'),
message: this.context.t('step1LatticeWalletMsg', [
<a
className="hw-connect__msg-link"
href="https://metamask.zendesk.com/hc/en-us/articles/4408552261275"
rel="noopener noreferrer"
target="_blank"
key="lattice-setup-link"
>
{this.context.t('hardwareWalletSupportLinkConversion')}
</a>,
]),
},
];
return (
<div className="hw-tutorial">
{steps.map((step, index) => (
<div className="hw-connect" key={index}>
<h3 className="hw-connect__title">{step.title}</h3>
<p className="hw-connect__msg">{step.message}</p>
{step.asset && (
<img
className="hw-connect__step-asset"
src={`images/${step.asset}.svg`}
{...step.dimensions}
alt=""
/>
)}
</div>
))}
</div>
);
}
renderTrezorTutorialSteps() {
const steps = [
{

View File

@ -151,6 +151,7 @@ export function getAccountType(state) {
switch (type) {
case KEYRING_TYPES.TREZOR:
case KEYRING_TYPES.LEDGER:
case KEYRING_TYPES.LATTICE:
return 'hardware';
case 'Simple Key Pair':
return 'imported';

204
yarn.lock
View File

@ -2409,7 +2409,7 @@
crc-32 "^1.2.0"
ethereumjs-util "^7.1.0"
"@ethereumjs/tx@^3.1.4", "@ethereumjs/tx@^3.2.0", "@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.3.0":
"@ethereumjs/tx@^3.1.1", "@ethereumjs/tx@^3.1.4", "@ethereumjs/tx@^3.2.0", "@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378"
integrity sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==
@ -2460,6 +2460,19 @@
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/web" "^5.4.0"
"@ethersproject/abstract-provider@5.4.1":
version "5.4.1"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e"
integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==
dependencies:
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/networks" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/web" "^5.4.0"
"@ethersproject/abstract-provider@^5.0.4":
version "5.0.5"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.5.tgz#797a32a8707830af1ad8f833e9c228994d5572b9"
@ -2484,6 +2497,17 @@
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/abstract-signer@5.4.1":
version "5.4.1"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81"
integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==
dependencies:
"@ethersproject/abstract-provider" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/abstract-signer@^5.0.6":
version "5.0.7"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.7.tgz#cdbd3bd479edf77c71b7f6a6156b0275b1176ded"
@ -2609,6 +2633,22 @@
"@ethersproject/properties" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/contracts@5.4.1":
version "5.4.1"
resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470"
integrity sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w==
dependencies:
"@ethersproject/abi" "^5.4.0"
"@ethersproject/abstract-provider" "^5.4.0"
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/address" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/hash@5.4.0", "@ethersproject/hash@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0"
@ -2712,6 +2752,13 @@
dependencies:
"@ethersproject/logger" "^5.4.0"
"@ethersproject/networks@5.4.2":
version "5.4.2"
resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35"
integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==
dependencies:
"@ethersproject/logger" "^5.4.0"
"@ethersproject/networks@^5.0.3":
version "5.0.4"
resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.4.tgz#6d320a5e15a0cda804f5da88be0ba846156f6eec"
@ -2773,6 +2820,31 @@
bech32 "1.1.4"
ws "7.4.6"
"@ethersproject/providers@5.4.3":
version "5.4.3"
resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.3.tgz#4cd7ccd9e12bc3875b33df8b24abf735663958a5"
integrity sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg==
dependencies:
"@ethersproject/abstract-provider" "^5.4.0"
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/address" "^5.4.0"
"@ethersproject/basex" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/hash" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/networks" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/random" "^5.4.0"
"@ethersproject/rlp" "^5.4.0"
"@ethersproject/sha2" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/web" "^5.4.0"
bech32 "1.1.4"
ws "7.4.6"
"@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16"
@ -7773,6 +7845,11 @@ bech32@^1.1.2:
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd"
integrity sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==
bech32@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355"
integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
better-opn@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6"
@ -7927,6 +8004,11 @@ bitcoinjs-lib@^5.0.0:
varuint-bitcoin "^1.0.4"
wif "^2.0.1"
bitwise@^2.0.4:
version "2.1.0"
resolved "https://registry.yarnpkg.com/bitwise/-/bitwise-2.1.0.tgz#1853fac76500c86da01e3819150a4edf92a7abdb"
integrity sha512-XKgAhMXCh4H/3oNwAHAsAO0iC89s9cOiumgYwSHjSobGWxYjv62YhkL9QEdvGP151xypCtMlAfKK79GEcd2eRQ==
bl@^1.0.0, bl@^1.2.1:
version "1.2.3"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
@ -8054,6 +8136,19 @@ borc@^2.1.0:
iso-url "~0.4.4"
json-text-sequence "~0.1.0"
borc@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19"
integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==
dependencies:
bignumber.js "^9.0.0"
buffer "^5.5.0"
commander "^2.15.0"
ieee754 "^1.1.13"
iso-url "~0.4.7"
json-text-sequence "~0.1.0"
readable-stream "^3.6.0"
bowser@^2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f"
@ -8538,7 +8633,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0:
buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.2, buffer@^5.5.0, buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@ -12340,6 +12435,17 @@ eth-keyring-controller@^6.1.0, eth-keyring-controller@^6.2.0, eth-keyring-contro
loglevel "^1.5.0"
obs-store "^4.0.3"
eth-lattice-keyring@^0.3.0:
version "0.3.5"
resolved "https://registry.yarnpkg.com/eth-lattice-keyring/-/eth-lattice-keyring-0.3.5.tgz#2e0aa5893206c62e4a184c5481abb13c49b07ad2"
integrity sha512-HWMfbwO+UCFA4OOuPS2tfY1mqG2u6k0+GLY9us+WLsFJTII6D/NzdN8OBQorYoYG+ce9VEJrJtRPjpOG11ZA1w==
dependencies:
"@ethereumjs/common" "^2.4.0"
"@ethereumjs/tx" "^3.1.1"
bignumber.js "^9.0.1"
ethereumjs-util "^7.0.10"
gridplus-sdk "^0.9.0"
eth-lib@0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8"
@ -12739,6 +12845,11 @@ ethereumjs-wallet@^1.0.1:
utf8 "^3.0.0"
uuid "^3.3.2"
ethers-eip712@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/ethers-eip712/-/ethers-eip712-0.2.0.tgz#52973b3a9a22638f7357283bf66624994c6e91ed"
integrity sha512-fgS196gCIXeiLwhsWycJJuxI9nL/AoUPGSQ+yvd+8wdWR+43G+J1n69LmWVWvAON0M6qNaf2BF4/M159U8fujQ==
ethers@^4.0.20, ethers@^4.0.28:
version "4.0.48"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.48.tgz#330c65b8133e112b0613156e57e92d9009d8fbbe"
@ -12790,6 +12901,42 @@ ethers@^5.0.8, ethers@^5.4.1:
"@ethersproject/web" "5.4.0"
"@ethersproject/wordlists" "5.4.0"
ethers@^5.4.2:
version "5.4.4"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947"
integrity sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA==
dependencies:
"@ethersproject/abi" "5.4.0"
"@ethersproject/abstract-provider" "5.4.1"
"@ethersproject/abstract-signer" "5.4.1"
"@ethersproject/address" "5.4.0"
"@ethersproject/base64" "5.4.0"
"@ethersproject/basex" "5.4.0"
"@ethersproject/bignumber" "5.4.1"
"@ethersproject/bytes" "5.4.0"
"@ethersproject/constants" "5.4.0"
"@ethersproject/contracts" "5.4.1"
"@ethersproject/hash" "5.4.0"
"@ethersproject/hdnode" "5.4.0"
"@ethersproject/json-wallets" "5.4.0"
"@ethersproject/keccak256" "5.4.0"
"@ethersproject/logger" "5.4.0"
"@ethersproject/networks" "5.4.2"
"@ethersproject/pbkdf2" "5.4.0"
"@ethersproject/properties" "5.4.0"
"@ethersproject/providers" "5.4.3"
"@ethersproject/random" "5.4.0"
"@ethersproject/rlp" "5.4.0"
"@ethersproject/sha2" "5.4.0"
"@ethersproject/signing-key" "5.4.0"
"@ethersproject/solidity" "5.4.0"
"@ethersproject/strings" "5.4.0"
"@ethersproject/transactions" "5.4.0"
"@ethersproject/units" "5.4.0"
"@ethersproject/wallet" "5.4.0"
"@ethersproject/web" "5.4.0"
"@ethersproject/wordlists" "5.4.0"
ethjs-abi@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.2.0.tgz#d3e2c221011520fc499b71682036c14fcc2f5b25"
@ -14886,6 +15033,27 @@ graphql-request@^1.8.2:
dependencies:
cross-fetch "2.2.2"
gridplus-sdk@^0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/gridplus-sdk/-/gridplus-sdk-0.9.0.tgz#6ed207e83dd0a607e472309a3d785ee2cf20c3cc"
integrity sha512-uhxYZ8xiZ5RwLdfZyRCE571I4tdQxsTRU0miaY7A/r+1UW6xS4xSYPYu3azEl0ZJ8sO5awfdDylrim6LMkHe+g==
dependencies:
aes-js "^3.1.1"
bech32 "^2.0.0"
bignumber.js "^9.0.1"
bitwise "^2.0.4"
borc "^2.1.2"
bs58check "^2.1.2"
buffer "^5.6.0"
crc-32 "^1.2.0"
elliptic "6.5.4"
ethers "^5.4.2"
ethers-eip712 "^0.2.0"
js-sha3 "^0.8.0"
rlp-browser "^1.0.1"
secp256k1 "4.0.2"
superagent "^3.8.3"
growl@1.10.5:
version "1.10.5"
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
@ -17329,6 +17497,11 @@ iso-url@~0.4.4, iso-url@~0.4.6:
resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.6.tgz#45005c4af4984cad4f8753da411b41b74cf0a8a6"
integrity sha512-YQO7+aIe6l1aSJUKOx+Vrv08DlhZeLFIVfehG2L29KLSEb9RszqPXilxJRVpp57px36BddKR5ZsebacO5qG0tg==
iso-url@~0.4.7:
version "0.4.7"
resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385"
integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@ -25589,6 +25762,13 @@ ripple-lib@1.8.2:
ripple-lib-transactionparser "0.8.2"
ws "^7.2.0"
rlp-browser@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/rlp-browser/-/rlp-browser-1.0.1.tgz#d1ea37f289359200d33dfa006d46008a288761eb"
integrity sha512-JU+9ntlfyKanOOPwtNuMZBmCQ/fWVoryfa7ZSYDTUKAa1zk4v2smvM0WV8BsskJuqn/DdxpO7HO2vEikMvmhOA==
dependencies:
buffer "^5.4.2"
rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4:
version "2.2.6"
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c"
@ -25929,6 +26109,15 @@ scss-parser@^1.0.4:
dependencies:
invariant "2.2.4"
secp256k1@4.0.2, secp256k1@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1"
integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==
dependencies:
elliptic "^6.5.2"
node-addon-api "^2.0.0"
node-gyp-build "^4.2.0"
secp256k1@^3.0.1, secp256k1@^3.5.2, secp256k1@^3.6.1, secp256k1@^3.6.2:
version "3.8.0"
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d"
@ -25943,15 +26132,6 @@ secp256k1@^3.0.1, secp256k1@^3.5.2, secp256k1@^3.6.1, secp256k1@^3.6.2:
nan "^2.14.0"
safe-buffer "^5.1.2"
secp256k1@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1"
integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==
dependencies:
elliptic "^6.5.2"
node-addon-api "^2.0.0"
node-gyp-build "^4.2.0"
seedrandom@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.1.tgz#eb3dde015bcf55df05a233514e5df44ef9dce083"
@ -27438,7 +27618,7 @@ superagent-proxy@^2.0.0, superagent-proxy@^3.0.0:
debug "^4.3.2"
proxy-agent "^5.0.0"
superagent@^3.8.1:
superagent@^3.8.1, superagent@^3.8.3:
version "3.8.3"
resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128"
integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==