mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #7474 from MetaMask/Version-v7.6.1
Version v7.6.1 RC
This commit is contained in:
commit
72eb233ee9
@ -148,6 +148,7 @@
|
|||||||
"operator-linebreak": [2, "after", { "overrides": { "?": "ignore", ":": "ignore" } }],
|
"operator-linebreak": [2, "after", { "overrides": { "?": "ignore", ":": "ignore" } }],
|
||||||
"padded-blocks": "off",
|
"padded-blocks": "off",
|
||||||
"quotes": [2, "single", {"avoidEscape": true, "allowTemplateLiterals": true}],
|
"quotes": [2, "single", {"avoidEscape": true, "allowTemplateLiterals": true}],
|
||||||
|
"react/jsx-boolean-value": 2,
|
||||||
"react/jsx-curly-brace-presence": [2, { "props": "never", "children": "never" }],
|
"react/jsx-curly-brace-presence": [2, { "props": "never", "children": "never" }],
|
||||||
"react/jsx-equals-spacing": 2,
|
"react/jsx-equals-spacing": 2,
|
||||||
"react/no-deprecated": 0,
|
"react/no-deprecated": 0,
|
||||||
|
@ -2,7 +2,15 @@
|
|||||||
|
|
||||||
## Current Develop Branch
|
## Current Develop Branch
|
||||||
|
|
||||||
|
## 7.6.1 Tue Nov 19 2019
|
||||||
|
- [#7475](https://github.com/MetaMask/metamask-extension/pull/7475): Add 'Remind Me Later' to the Maker notification
|
||||||
|
- [#7436](https://github.com/MetaMask/metamask-extension/pull/7436): Add additional rpcUrl verification
|
||||||
|
- [#7468](https://github.com/MetaMask/metamask-extension/pull/7468): Show transaction fee units on approve screen
|
||||||
|
|
||||||
## 7.6.0 Mon Nov 18 2019
|
## 7.6.0 Mon Nov 18 2019
|
||||||
|
- [#7450](https://github.com/MetaMask/metamask-extension/pull/7450): Add migration notification for users with non-zero Sai
|
||||||
|
- [#7461](https://github.com/MetaMask/metamask-extension/pull/7461): Import styles for showing multiple notifications
|
||||||
|
- [#7451](https://github.com/MetaMask/metamask-extension/pull/7451): Add button disabled when password is empty
|
||||||
|
|
||||||
## 7.5.3 Fri Nov 15 2019
|
## 7.5.3 Fri Nov 15 2019
|
||||||
- [#7412](https://github.com/MetaMask/metamask-extension/pull/7412): lock eth-contract-metadata (#7412)
|
- [#7412](https://github.com/MetaMask/metamask-extension/pull/7412): lock eth-contract-metadata (#7412)
|
||||||
|
@ -1344,7 +1344,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "የዘመነ $1"
|
"message": "የዘመነ $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIs አግባብነት ያለው የ HTTP/HTTPS ቅድመ ቅጥያ ይፈልጋል።"
|
"message": "URIs አግባብነት ያለው የ HTTP/HTTPS ቅድመ ቅጥያ ይፈልጋል።"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1340,7 +1340,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "تم تحديث $1"
|
"message": "تم تحديث $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "تتطلب الروابط بادئة HTTP/HTTPS مناسبة."
|
"message": "تتطلب الروابط بادئة HTTP/HTTPS مناسبة."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1343,7 +1343,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Актуализирано $1 "
|
"message": "Актуализирано $1 "
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI изискват съответния HTTP / HTTPS префикс."
|
"message": "URI изискват съответния HTTP / HTTPS префикс."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1347,7 +1347,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "আপডেট করা $1"
|
"message": "আপডেট করা $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI গুলির যথাযথ HTTP/HTTPS প্রেফিক্সের প্রয়োজন।"
|
"message": "URI গুলির যথাযথ HTTP/HTTPS প্রেফিক্সের প্রয়োজন।"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1316,7 +1316,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Actualitzat $1"
|
"message": "Actualitzat $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Els URIs requereixen el prefix HTTP/HTTPS apropiat."
|
"message": "Els URIs requereixen el prefix HTTP/HTTPS apropiat."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -529,7 +529,7 @@
|
|||||||
"unknownNetwork": {
|
"unknownNetwork": {
|
||||||
"message": "Neznámá soukromá síť"
|
"message": "Neznámá soukromá síť"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI vyžadují korektní HTTP/HTTPS prefix."
|
"message": "URI vyžadují korektní HTTP/HTTPS prefix."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1313,7 +1313,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Opdaterede $1"
|
"message": "Opdaterede $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Links kræver det rette HTTP/HTTPS-præfix."
|
"message": "Links kræver det rette HTTP/HTTPS-præfix."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1304,7 +1304,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "$1 aktualisiert"
|
"message": "$1 aktualisiert"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIs benötigen die korrekten HTTP/HTTPS Präfixe."
|
"message": "URIs benötigen die korrekten HTTP/HTTPS Präfixe."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1341,7 +1341,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Ενημερώθηκε το $1"
|
"message": "Ενημερώθηκε το $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Τα URI απαιτούν το κατάλληλο πρόθεμα HTTP/HTTPS."
|
"message": "Τα URI απαιτούν το κατάλληλο πρόθεμα HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
"migrateSai": {
|
"migrateSai": {
|
||||||
"message": "A message from Maker: The new Multi-Collateral Dai token has been released. Your old tokens are now called Sai. Please upgrade your Sai tokens to the new Dai."
|
"message": "A message from Maker: The new Multi-Collateral Dai token has been released. Your old tokens are now called Sai. Please upgrade your Sai tokens to the new Dai."
|
||||||
},
|
},
|
||||||
|
"migrateSaiInfo": {
|
||||||
|
"message": "To dismiss this notification you can migrate your tokens or hide SAI from the token list."
|
||||||
|
},
|
||||||
"migrate": {
|
"migrate": {
|
||||||
"message": "Migrate"
|
"message": "Migrate"
|
||||||
},
|
},
|
||||||
@ -1474,8 +1477,11 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Updated $1"
|
"message": "Updated $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIs require the appropriate HTTP/HTTPS prefix."
|
"message": "URLs require the appropriate HTTP/HTTPS prefix."
|
||||||
|
},
|
||||||
|
"urlExistsErrorMsg": {
|
||||||
|
"message": "URL is already present in existing list of networks"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
"message": "Used by a variety of different clients"
|
"message": "Used by a variety of different clients"
|
||||||
|
@ -1091,7 +1091,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Actualizado $1"
|
"message": "Actualizado $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI necesita el prefijo HTTP/HTTPS apropiado"
|
"message": "URI necesita el prefijo HTTP/HTTPS apropiado"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1326,7 +1326,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Actualización: $1"
|
"message": "Actualización: $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Los URI deben tener el prefijo HTTP/HTTPS apropiado."
|
"message": "Los URI deben tener el prefijo HTTP/HTTPS apropiado."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1337,7 +1337,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Värskendatud $1"
|
"message": "Värskendatud $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI-d nõuavad sobivat HTTP/HTTPS-i prefiksit."
|
"message": "URI-d nõuavad sobivat HTTP/HTTPS-i prefiksit."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1347,7 +1347,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "بروزرسانی شد 1$1"
|
"message": "بروزرسانی شد 1$1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URl ها نیازمند پیشوند مناسب HTTP/HTTPS اند."
|
"message": "URl ها نیازمند پیشوند مناسب HTTP/HTTPS اند."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1344,7 +1344,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "$1 päivitetty"
|
"message": "$1 päivitetty"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI:t vaativat asianmukaisen HTTP/HTTPS-etuliitteen."
|
"message": "URI:t vaativat asianmukaisen HTTP/HTTPS-etuliitteen."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1235,7 +1235,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Na-update ang $1"
|
"message": "Na-update ang $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Kinakailangan ng mga URI ang naaangkop na HTTP/HTTPS prefix."
|
"message": "Kinakailangan ng mga URI ang naaangkop na HTTP/HTTPS prefix."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1308,7 +1308,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Mis à jour $1"
|
"message": "Mis à jour $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Les URLs requièrent un préfixe HTTP/HTTPS approprié."
|
"message": "Les URLs requièrent un préfixe HTTP/HTTPS approprié."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1341,7 +1341,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "עודכן $1"
|
"message": "עודכן $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "כתובות URI דורשות את קידומת HTTP/HTTPS המתאימה."
|
"message": "כתובות URI דורשות את קידומת HTTP/HTTPS המתאימה."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1341,7 +1341,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "$1 अपडेट किया गया"
|
"message": "$1 अपडेट किया गया"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI को उपयुक्त HTTP/HTTPS प्रीफ़िक्स की आवश्यकता होती है।"
|
"message": "URI को उपयुक्त HTTP/HTTPS प्रीफ़िक्स की आवश्यकता होती है।"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -491,7 +491,7 @@
|
|||||||
"unknownNetwork": {
|
"unknownNetwork": {
|
||||||
"message": "अज्ञात निजी नेटवर्क"
|
"message": "अज्ञात निजी नेटवर्क"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI-यूआरआई को उपयुक्त HTTP / HTTPS उपसर्ग की आवश्यकता होती है।"
|
"message": "URI-यूआरआई को उपयुक्त HTTP / HTTPS उपसर्ग की आवश्यकता होती है।"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1337,7 +1337,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Ažurirano $1"
|
"message": "Ažurirano $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI-jevima se zahtijeva prikladan prefiks HTTP/HTTPS."
|
"message": "URI-jevima se zahtijeva prikladan prefiks HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -851,7 +851,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Mete ajou $1"
|
"message": "Mete ajou $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIs mande pou apwopriye prefiks HTTP / HTTPS a."
|
"message": "URIs mande pou apwopriye prefiks HTTP / HTTPS a."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1337,7 +1337,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "$1 frissítve"
|
"message": "$1 frissítve"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Az URI-hez szükség van a megfelelő HTTP/HTTPS előtagra."
|
"message": "Az URI-hez szükség van a megfelelő HTTP/HTTPS előtagra."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1316,7 +1316,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Diperbarui $1"
|
"message": "Diperbarui $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI memerlukan awalan HTTP/HTTPS yang sesuai."
|
"message": "URI memerlukan awalan HTTP/HTTPS yang sesuai."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1307,7 +1307,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Aggiornata $1"
|
"message": "Aggiornata $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Gli URI richiedono un prefisso HTTP/HTTPS."
|
"message": "Gli URI richiedono un prefisso HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1347,7 +1347,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "$1 ನವೀಕರಿಸಲಾಗಿದೆ"
|
"message": "$1 ನವೀಕರಿಸಲಾಗಿದೆ"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI ಗಳಿಗೆ ಸೂಕ್ತವಾದ HTTP/HTTPS ಪೂರ್ವಪ್ರತ್ಯಯದ ಅಗತ್ಯವಿದೆ."
|
"message": "URI ಗಳಿಗೆ ಸೂಕ್ತವಾದ HTTP/HTTPS ಪೂರ್ವಪ್ರತ್ಯಯದ ಅಗತ್ಯವಿದೆ."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1338,7 +1338,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "$1에 업데이트 됨"
|
"message": "$1에 업데이트 됨"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI는 HTTP/HTTPS로 시작해야 합니다."
|
"message": "URI는 HTTP/HTTPS로 시작해야 합니다."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1347,7 +1347,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Atnaujinta $1"
|
"message": "Atnaujinta $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI reikia atitinkamo HTTP/HTTPS priešdėlio."
|
"message": "URI reikia atitinkamo HTTP/HTTPS priešdėlio."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1343,7 +1343,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Atjaunināts $1"
|
"message": "Atjaunināts $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI jāsākas ar atbilstošo HTTP/HTTPS priedēkli."
|
"message": "URI jāsākas ar atbilstošo HTTP/HTTPS priedēkli."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1315,7 +1315,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Dikemaskini $1"
|
"message": "Dikemaskini $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI memerlukan awalan HTTP/HTTPS yang sesuai."
|
"message": "URI memerlukan awalan HTTP/HTTPS yang sesuai."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -478,7 +478,7 @@
|
|||||||
"unknownNetwork": {
|
"unknownNetwork": {
|
||||||
"message": "Onbekend privénetwerk"
|
"message": "Onbekend privénetwerk"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Voor URI's is het juiste HTTP / HTTPS-voorvoegsel vereist."
|
"message": "Voor URI's is het juiste HTTP / HTTPS-voorvoegsel vereist."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1319,7 +1319,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Oppdatert $1"
|
"message": "Oppdatert $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI-er krever det aktuelle HTTP/HTTPS-prefikset."
|
"message": "URI-er krever det aktuelle HTTP/HTTPS-prefikset."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1332,7 +1332,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Zaktualizowano $1"
|
"message": "Zaktualizowano $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI wymaga prawidłowego prefiksu HTTP/HTTPS."
|
"message": "URI wymaga prawidłowego prefiksu HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -488,7 +488,7 @@
|
|||||||
"unknownNetwork": {
|
"unknownNetwork": {
|
||||||
"message": "Rede Privada Desconhecida"
|
"message": "Rede Privada Desconhecida"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Links requerem o prefixo HTTP/HTTPS apropriado."
|
"message": "Links requerem o prefixo HTTP/HTTPS apropriado."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1326,7 +1326,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "$1 atualizado"
|
"message": "$1 atualizado"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIs exigem o devido prefixo HTTP/HTTPS."
|
"message": "URIs exigem o devido prefixo HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1328,7 +1328,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Actualizat $1"
|
"message": "Actualizat $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URL necesită prefixul potrivit HTTP/HTTPS."
|
"message": "URL necesită prefixul potrivit HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -542,7 +542,7 @@
|
|||||||
"unknownNetwork": {
|
"unknownNetwork": {
|
||||||
"message": "Неизвестная частная сеть"
|
"message": "Неизвестная частная сеть"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "Для URI требуется соответствующий префикс HTTP/HTTPS."
|
"message": "Для URI требуется соответствующий префикс HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1301,7 +1301,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Aktualizované $1"
|
"message": "Aktualizované $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI vyžadují korektní HTTP/HTTPS prefix."
|
"message": "URI vyžadují korektní HTTP/HTTPS prefix."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1329,7 +1329,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Posodobljeno $1"
|
"message": "Posodobljeno $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI zahtevajo ustrezno HTTP/HTTPS predpono."
|
"message": "URI zahtevajo ustrezno HTTP/HTTPS predpono."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1332,7 +1332,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Ažuriran $1"
|
"message": "Ažuriran $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI-ovi zahtevaju odgovarajući prefiks HTTP / HTTPS."
|
"message": "URI-ovi zahtevaju odgovarajući prefiks HTTP / HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1322,7 +1322,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Uppdaterat $1"
|
"message": "Uppdaterat $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI:er kräver lämpligt HTTP/HTTPS-prefix."
|
"message": "URI:er kräver lämpligt HTTP/HTTPS-prefix."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1325,7 +1325,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Imesasishwa $1"
|
"message": "Imesasishwa $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI huhitaji kiambishi sahihi cha HTTP/HTTPS."
|
"message": "URI huhitaji kiambishi sahihi cha HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -554,7 +554,7 @@
|
|||||||
"unknownNetwork": {
|
"unknownNetwork": {
|
||||||
"message": "அறியப்படாத தனியார் நெட்வொர்க்"
|
"message": "அறியப்படாத தனியார் நெட்வொர்க்"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI கள் சரியான HTTP / HTTPS முன்னொட்டு தேவை."
|
"message": "URI கள் சரியான HTTP / HTTPS முன்னொட்டு தேவை."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -656,7 +656,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "อัปเดต $1 แล้ว"
|
"message": "อัปเดต $1 แล้ว"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URI ต้องมีคำนำหน้าเป็น HTTP หรือ HTTPS"
|
"message": "URI ต้องมีคำนำหน้าเป็น HTTP หรือ HTTPS"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -547,7 +547,7 @@
|
|||||||
"unknownNetwork": {
|
"unknownNetwork": {
|
||||||
"message": "Bilinmeyen özel ağ"
|
"message": "Bilinmeyen özel ağ"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIler için HTTP/HTTPS öneki gerekmektedir."
|
"message": "URIler için HTTP/HTTPS öneki gerekmektedir."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1347,7 +1347,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "Оновлено $1"
|
"message": "Оновлено $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIs вимагають відповідного префікса HTTP/HTTPS."
|
"message": "URIs вимагають відповідного префікса HTTP/HTTPS."
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1320,7 +1320,7 @@
|
|||||||
"updatedWithDate": {
|
"updatedWithDate": {
|
||||||
"message": "更新時間 $1"
|
"message": "更新時間 $1"
|
||||||
},
|
},
|
||||||
"uriErrorMsg": {
|
"urlErrorMsg": {
|
||||||
"message": "URIs 需要加入適當的 HTTP/HTTPS 前綴字"
|
"message": "URIs 需要加入適當的 HTTP/HTTPS 前綴字"
|
||||||
},
|
},
|
||||||
"usedByClients": {
|
"usedByClients": {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "__MSG_appName__",
|
"name": "__MSG_appName__",
|
||||||
"short_name": "__MSG_appName__",
|
"short_name": "__MSG_appName__",
|
||||||
"version": "7.6.0",
|
"version": "7.6.1",
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"author": "https://metamask.io",
|
"author": "https://metamask.io",
|
||||||
"description": "__MSG_appDescription__",
|
"description": "__MSG_appDescription__",
|
||||||
|
@ -13,6 +13,7 @@ class AppStateController {
|
|||||||
this.onInactiveTimeout = onInactiveTimeout || (() => {})
|
this.onInactiveTimeout = onInactiveTimeout || (() => {})
|
||||||
this.store = new ObservableStore(extend({
|
this.store = new ObservableStore(extend({
|
||||||
timeoutMinutes: 0,
|
timeoutMinutes: 0,
|
||||||
|
mkrMigrationReminderTimestamp: null,
|
||||||
}, initState))
|
}, initState))
|
||||||
this.timer = null
|
this.timer = null
|
||||||
|
|
||||||
@ -23,6 +24,12 @@ class AppStateController {
|
|||||||
this._setInactiveTimeout(preferences.autoLogoutTimeLimit)
|
this._setInactiveTimeout(preferences.autoLogoutTimeLimit)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setMkrMigrationReminderTimestamp (timestamp) {
|
||||||
|
this.store.updateState({
|
||||||
|
mkrMigrationReminderTimestamp: timestamp,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the last active time to the current time
|
* Sets the last active time to the current time
|
||||||
* @return {void}
|
* @return {void}
|
||||||
|
@ -508,6 +508,7 @@ module.exports = class MetamaskController extends EventEmitter {
|
|||||||
|
|
||||||
// AppStateController
|
// AppStateController
|
||||||
setLastActiveTime: nodeify(this.appStateController.setLastActiveTime, this.appStateController),
|
setLastActiveTime: nodeify(this.appStateController.setLastActiveTime, this.appStateController),
|
||||||
|
setMkrMigrationReminderTimestamp: nodeify(this.appStateController.setMkrMigrationReminderTimestamp, this.appStateController),
|
||||||
|
|
||||||
// EnsController
|
// EnsController
|
||||||
tryReverseResolveAddress: nodeify(this.ensController.reverseResolveAddress, this.ensController),
|
tryReverseResolveAddress: nodeify(this.ensController.reverseResolveAddress, this.ensController),
|
||||||
|
@ -1190,7 +1190,7 @@ describe('MetaMask', function () {
|
|||||||
await driver.wait(until.stalenessOf(gasModal))
|
await driver.wait(until.stalenessOf(gasModal))
|
||||||
|
|
||||||
const gasFeeInEth = await findElement(driver, By.css('.confirm-approve-content__transaction-details-content__secondary-fee'))
|
const gasFeeInEth = await findElement(driver, By.css('.confirm-approve-content__transaction-details-content__secondary-fee'))
|
||||||
assert.equal(await gasFeeInEth.getText(), '0.0006')
|
assert.equal(await gasFeeInEth.getText(), '0.0006 ETH')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('edits the permission', async () => {
|
it('edits the permission', async () => {
|
||||||
|
@ -71,7 +71,7 @@ export default class AppHeader extends PureComponent {
|
|||||||
<Identicon
|
<Identicon
|
||||||
address={selectedAddress}
|
address={selectedAddress}
|
||||||
diameter={32}
|
diameter={32}
|
||||||
addBorder={true}
|
addBorder
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@ -92,7 +92,7 @@ export default class AppHeader extends PureComponent {
|
|||||||
className={classnames('app-header', { 'app-header--back-drop': isUnlocked })}>
|
className={classnames('app-header', { 'app-header--back-drop': isUnlocked })}>
|
||||||
<div className="app-header__contents">
|
<div className="app-header__contents">
|
||||||
<MetaFoxLogo
|
<MetaFoxLogo
|
||||||
unsetIconHeight={true}
|
unsetIconHeight
|
||||||
onClick={() => history.push(DEFAULT_ROUTE)}
|
onClick={() => history.push(DEFAULT_ROUTE)}
|
||||||
/>
|
/>
|
||||||
<div className="app-header__account-menu-container">
|
<div className="app-header__account-menu-container">
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DateTime } from 'luxon'
|
||||||
import React, { PureComponent } from 'react'
|
import React, { PureComponent } from 'react'
|
||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
import HomeNotification from '../home-notification'
|
import HomeNotification from '../home-notification'
|
||||||
@ -8,18 +9,37 @@ export default class DaiV1MigrationNotification extends PureComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
|
mkrMigrationReminderTimestamp: null,
|
||||||
string: '',
|
string: '',
|
||||||
symbol: '',
|
symbol: '',
|
||||||
}
|
}
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
setMkrMigrationReminderTimestamp: PropTypes.func.isRequired,
|
||||||
|
mkrMigrationReminderTimestamp: PropTypes.string,
|
||||||
string: PropTypes.string,
|
string: PropTypes.string,
|
||||||
symbol: PropTypes.string,
|
symbol: PropTypes.string,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
remindMeLater = () => {
|
||||||
|
const nextWeek = DateTime.utc().plus({
|
||||||
|
days: 7,
|
||||||
|
})
|
||||||
|
this.props.setMkrMigrationReminderTimestamp(nextWeek.toString())
|
||||||
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { t } = this.context
|
const { t } = this.context
|
||||||
const { string: balanceString, symbol } = this.props
|
const { mkrMigrationReminderTimestamp, string: balanceString, symbol } = this.props
|
||||||
|
|
||||||
|
if (mkrMigrationReminderTimestamp) {
|
||||||
|
const reminderDateTime = DateTime.fromISO(mkrMigrationReminderTimestamp, {
|
||||||
|
zone: 'UTC',
|
||||||
|
})
|
||||||
|
if (reminderDateTime > DateTime.utc()) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!balanceString || !symbol) {
|
if (!balanceString || !symbol) {
|
||||||
return null
|
return null
|
||||||
@ -31,15 +51,27 @@ export default class DaiV1MigrationNotification extends PureComponent {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<HomeNotification
|
<HomeNotification
|
||||||
descriptionText={t('migrateSai')}
|
descriptionText={(
|
||||||
|
<div>
|
||||||
|
{t('migrateSai')}
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="#"
|
||||||
|
onClick={() => {
|
||||||
|
window.open('https://blog.makerdao.com/multi-collateral-dai-is-live/', '_blank', 'noopener')
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t('learnMore')}.
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
acceptText={t('migrate')}
|
acceptText={t('migrate')}
|
||||||
onAccept={() => {
|
onAccept={() => {
|
||||||
window.open('https://migrate.makerdao.com', '_blank', 'noopener')
|
window.open('https://migrate.makerdao.com', '_blank', 'noopener')
|
||||||
}}
|
}}
|
||||||
ignoreText={t('learnMore')}
|
ignoreText={t('remindMeLater')}
|
||||||
onIgnore={() => {
|
onIgnore={this.remindMeLater}
|
||||||
window.open('https://blog.makerdao.com/multi-collateral-dai-is-live/', '_blank', 'noopener')
|
infoText={t('migrateSaiInfo')}
|
||||||
}}
|
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,32 @@ import { compose } from 'recompose'
|
|||||||
import DaiMigrationNotification from './dai-migration-notification.component'
|
import DaiMigrationNotification from './dai-migration-notification.component'
|
||||||
import withTokenTracker from '../../../helpers/higher-order-components/with-token-tracker'
|
import withTokenTracker from '../../../helpers/higher-order-components/with-token-tracker'
|
||||||
import { getSelectedAddress, getDaiV1Token } from '../../../selectors/selectors'
|
import { getSelectedAddress, getDaiV1Token } from '../../../selectors/selectors'
|
||||||
|
import { setMkrMigrationReminderTimestamp } from '../../../store/actions'
|
||||||
|
|
||||||
const mapStateToProps = (state) => {
|
const mapStateToProps = (state) => {
|
||||||
|
const {
|
||||||
|
metamask: {
|
||||||
|
mkrMigrationReminderTimestamp,
|
||||||
|
},
|
||||||
|
} = state
|
||||||
|
|
||||||
const userAddress = getSelectedAddress(state)
|
const userAddress = getSelectedAddress(state)
|
||||||
const oldDai = getDaiV1Token(state)
|
const oldDai = getDaiV1Token(state)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
mkrMigrationReminderTimestamp,
|
||||||
userAddress,
|
userAddress,
|
||||||
token: oldDai,
|
token: oldDai,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const mapDispatchToProps = (dispatch) => {
|
||||||
|
return {
|
||||||
|
setMkrMigrationReminderTimestamp: (t) => dispatch(setMkrMigrationReminderTimestamp(t)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default compose(
|
export default compose(
|
||||||
connect(mapStateToProps),
|
connect(mapStateToProps, mapDispatchToProps),
|
||||||
withTokenTracker,
|
withTokenTracker,
|
||||||
)(DaiMigrationNotification)
|
)(DaiMigrationNotification)
|
||||||
|
@ -11,7 +11,7 @@ describe('Dropdown Menu Components', () => {
|
|||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(
|
wrapper = shallow(
|
||||||
<Menu className="Test Class" isShowing={true}/>
|
<Menu className="Test Class" isShowing/>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -26,9 +26,9 @@ describe('AdvancedTabContent Component', function () {
|
|||||||
timeRemaining="21500"
|
timeRemaining="21500"
|
||||||
transactionFee="$0.25"
|
transactionFee="$0.25"
|
||||||
insufficientBalance={false}
|
insufficientBalance={false}
|
||||||
customPriceIsSafe={true}
|
customPriceIsSafe
|
||||||
isSpeedUp={false}
|
isSpeedUp={false}
|
||||||
isEthereumNetwork={true}
|
isEthereumNetwork
|
||||||
/>)
|
/>)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ export default class BasicTabContent extends Component {
|
|||||||
{!gasPriceButtonGroupProps.loading
|
{!gasPriceButtonGroupProps.loading
|
||||||
? <GasPriceButtonGroup
|
? <GasPriceButtonGroup
|
||||||
className="gas-price-button-group--alt"
|
className="gas-price-button-group--alt"
|
||||||
showCheck={true}
|
showCheck
|
||||||
{...gasPriceButtonGroupProps}
|
{...gasPriceButtonGroupProps}
|
||||||
/>
|
/>
|
||||||
: <Loading />
|
: <Loading />
|
||||||
|
@ -204,7 +204,7 @@ export default class GasModalPageContainer extends Component {
|
|||||||
}}
|
}}
|
||||||
submitText={this.context.t('save')}
|
submitText={this.context.t('save')}
|
||||||
headerCloseText={this.context.t('close')}
|
headerCloseText={this.context.t('close')}
|
||||||
hideCancel={true}
|
hideCancel
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
@ -200,7 +200,7 @@ describe('GasModalPageContainer Component', function () {
|
|||||||
customGasLimitInHex="mockCustomGasLimitInHex"
|
customGasLimitInHex="mockCustomGasLimitInHex"
|
||||||
insufficientBalance={false}
|
insufficientBalance={false}
|
||||||
disableSave={false}
|
disableSave={false}
|
||||||
hideBasic={true}
|
hideBasic
|
||||||
/>)
|
/>)
|
||||||
const renderTabsResult = wrapper.instance().renderTabs()
|
const renderTabsResult = wrapper.instance().renderTabs()
|
||||||
|
|
||||||
|
@ -17,12 +17,12 @@ export default class HomeNotification extends PureComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
acceptText: PropTypes.string.isRequired,
|
acceptText: PropTypes.node.isRequired,
|
||||||
onAccept: PropTypes.func,
|
onAccept: PropTypes.func,
|
||||||
ignoreText: PropTypes.string,
|
ignoreText: PropTypes.node,
|
||||||
onIgnore: PropTypes.func,
|
onIgnore: PropTypes.func,
|
||||||
descriptionText: PropTypes.string.isRequired,
|
descriptionText: PropTypes.node.isRequired,
|
||||||
infoText: PropTypes.string,
|
infoText: PropTypes.node,
|
||||||
classNames: PropTypes.array,
|
classNames: PropTypes.array,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ describe('Modal Component', () => {
|
|||||||
cancelText="Cancel"
|
cancelText="Cancel"
|
||||||
onSubmit={handleSubmit}
|
onSubmit={handleSubmit}
|
||||||
submitText="Submit"
|
submitText="Submit"
|
||||||
submitDisabled={true}
|
submitDisabled
|
||||||
headerText="My Header"
|
headerText="My Header"
|
||||||
onClose={handleCancel}
|
onClose={handleCancel}
|
||||||
/>
|
/>
|
||||||
|
@ -90,7 +90,7 @@ describe('TransactionActivityLog Component', () => {
|
|||||||
onCancel={() => {}}
|
onCancel={() => {}}
|
||||||
onRetry={() => {}}
|
onRetry={() => {}}
|
||||||
primaryTransactionStatus="pending"
|
primaryTransactionStatus="pending"
|
||||||
isEarliestNonce={true}
|
isEarliestNonce
|
||||||
/>,
|
/>,
|
||||||
{ context: { t: (str1, str2) => str2 ? str1 + str2 : str1 } }
|
{ context: { t: (str1, str2) => str2 ? str1 + str2 : str1 } }
|
||||||
)
|
)
|
||||||
|
@ -70,7 +70,7 @@ describe('TransactionListItemDetails Component', () => {
|
|||||||
const wrapper = shallow(
|
const wrapper = shallow(
|
||||||
<TransactionListItemDetails
|
<TransactionListItemDetails
|
||||||
transactionGroup={transactionGroup}
|
transactionGroup={transactionGroup}
|
||||||
showSpeedUp={true}
|
showSpeedUp
|
||||||
/>,
|
/>,
|
||||||
{ context: { t: (str1, str2) => str2 ? str1 + str2 : str1 } }
|
{ context: { t: (str1, str2) => str2 ? str1 + str2 : str1 } }
|
||||||
)
|
)
|
||||||
|
@ -53,7 +53,7 @@ export default class TransactionViewBalance extends PureComponent {
|
|||||||
value={balance}
|
value={balance}
|
||||||
type={PRIMARY}
|
type={PRIMARY}
|
||||||
ethNumberOfDecimals={4}
|
ethNumberOfDecimals={4}
|
||||||
hideTitle={true}
|
hideTitle
|
||||||
/>
|
/>
|
||||||
{
|
{
|
||||||
balanceIsCached ? <span className="transaction-view-balance__cached-star">*</span> : null
|
balanceIsCached ? <span className="transaction-view-balance__cached-star">*</span> : null
|
||||||
@ -69,7 +69,7 @@ export default class TransactionViewBalance extends PureComponent {
|
|||||||
value={balance}
|
value={balance}
|
||||||
type={SECONDARY}
|
type={SECONDARY}
|
||||||
ethNumberOfDecimals={4}
|
ethNumberOfDecimals={4}
|
||||||
hideTitle={true}
|
hideTitle
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ describe('UserPreferencedCurrencyDisplay Component', () => {
|
|||||||
it('should pass all props to the CurrencyDisplay child component', () => {
|
it('should pass all props to the CurrencyDisplay child component', () => {
|
||||||
const wrapper = shallow(
|
const wrapper = shallow(
|
||||||
<UserPreferencedCurrencyDisplay
|
<UserPreferencedCurrencyDisplay
|
||||||
prop1={true}
|
prop1
|
||||||
prop2="test"
|
prop2="test"
|
||||||
prop3={1}
|
prop3={1}
|
||||||
/>
|
/>
|
||||||
|
@ -130,7 +130,7 @@ describe('CurrencyInput Component', () => {
|
|||||||
fiatSuffix="USD"
|
fiatSuffix="USD"
|
||||||
nativeSuffix="ETH"
|
nativeSuffix="ETH"
|
||||||
useFiat
|
useFiat
|
||||||
hideFiat={true}
|
hideFiat
|
||||||
nativeCurrency="ETH"
|
nativeCurrency="ETH"
|
||||||
currentCurrency="usd"
|
currentCurrency="usd"
|
||||||
conversionRate={231.06}
|
conversionRate={231.06}
|
||||||
|
@ -16,7 +16,7 @@ describe('MetaFoxLogo', () => {
|
|||||||
|
|
||||||
it('does not set icon height and width when unsetIconHeight is true', () => {
|
it('does not set icon height and width when unsetIconHeight is true', () => {
|
||||||
const wrapper = mount(
|
const wrapper = mount(
|
||||||
<MetaFoxLogo unsetIconHeight={true} />
|
<MetaFoxLogo unsetIconHeight />
|
||||||
)
|
)
|
||||||
|
|
||||||
assert.equal(wrapper.find('img.app-header__metafox-logo--icon').prop('width'), null)
|
assert.equal(wrapper.find('img.app-header__metafox-logo--icon').prop('width'), null)
|
||||||
|
@ -13,7 +13,7 @@ describe('Page Container Header', () => {
|
|||||||
onClose = sinon.spy()
|
onClose = sinon.spy()
|
||||||
|
|
||||||
wrapper = shallow(<PageContainerHeader
|
wrapper = shallow(<PageContainerHeader
|
||||||
showBackButton={true}
|
showBackButton
|
||||||
onBackButtonClick={onBackButtonClick}
|
onBackButtonClick={onBackButtonClick}
|
||||||
backButtonStyles={style}
|
backButtonStyles={style}
|
||||||
title="Test Title"
|
title="Test Title"
|
||||||
|
@ -5,6 +5,7 @@ import Identicon from '../../../components/ui/identicon'
|
|||||||
import {
|
import {
|
||||||
addressSummary,
|
addressSummary,
|
||||||
} from '../../../helpers/utils/util'
|
} from '../../../helpers/utils/util'
|
||||||
|
import { formatCurrency } from '../../../helpers/utils/confirm-tx.util'
|
||||||
|
|
||||||
export default class ConfirmApproveContent extends Component {
|
export default class ConfirmApproveContent extends Component {
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
@ -26,6 +27,7 @@ export default class ConfirmApproveContent extends Component {
|
|||||||
tokenBalance: PropTypes.string,
|
tokenBalance: PropTypes.string,
|
||||||
data: PropTypes.string,
|
data: PropTypes.string,
|
||||||
toAddress: PropTypes.string,
|
toAddress: PropTypes.string,
|
||||||
|
currentCurrency: PropTypes.string,
|
||||||
fiatTransactionTotal: PropTypes.string,
|
fiatTransactionTotal: PropTypes.string,
|
||||||
ethTransactionTotal: PropTypes.string,
|
ethTransactionTotal: PropTypes.string,
|
||||||
}
|
}
|
||||||
@ -68,6 +70,7 @@ export default class ConfirmApproveContent extends Component {
|
|||||||
renderTransactionDetailsContent () {
|
renderTransactionDetailsContent () {
|
||||||
const { t } = this.context
|
const { t } = this.context
|
||||||
const {
|
const {
|
||||||
|
currentCurrency,
|
||||||
ethTransactionTotal,
|
ethTransactionTotal,
|
||||||
fiatTransactionTotal,
|
fiatTransactionTotal,
|
||||||
} = this.props
|
} = this.props
|
||||||
@ -78,10 +81,10 @@ export default class ConfirmApproveContent extends Component {
|
|||||||
</div>
|
</div>
|
||||||
<div className="confirm-approve-content__transaction-details-content__fee">
|
<div className="confirm-approve-content__transaction-details-content__fee">
|
||||||
<div className="confirm-approve-content__transaction-details-content__primary-fee">
|
<div className="confirm-approve-content__transaction-details-content__primary-fee">
|
||||||
{ fiatTransactionTotal }
|
{ formatCurrency(fiatTransactionTotal, currentCurrency) }
|
||||||
</div>
|
</div>
|
||||||
<div className="confirm-approve-content__transaction-details-content__secondary-fee">
|
<div className="confirm-approve-content__transaction-details-content__secondary-fee">
|
||||||
{ ethTransactionTotal }
|
{ `${ethTransactionTotal} ETH` }
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -62,6 +62,7 @@ export default class ConfirmApprove extends Component {
|
|||||||
data,
|
data,
|
||||||
decimals,
|
decimals,
|
||||||
txData,
|
txData,
|
||||||
|
currentCurrency,
|
||||||
ethTransactionTotal,
|
ethTransactionTotal,
|
||||||
fiatTransactionTotal,
|
fiatTransactionTotal,
|
||||||
...restProps
|
...restProps
|
||||||
@ -78,7 +79,7 @@ export default class ConfirmApprove extends Component {
|
|||||||
<ConfirmTransactionBase
|
<ConfirmTransactionBase
|
||||||
toAddress={toAddress}
|
toAddress={toAddress}
|
||||||
identiconAddress={tokenAddress}
|
identiconAddress={tokenAddress}
|
||||||
showAccountInHeader={true}
|
showAccountInHeader
|
||||||
title={tokensText}
|
title={tokensText}
|
||||||
contentComponent={<ConfirmApproveContent
|
contentComponent={<ConfirmApproveContent
|
||||||
siteImage={siteImage}
|
siteImage={siteImage}
|
||||||
@ -95,10 +96,11 @@ export default class ConfirmApprove extends Component {
|
|||||||
showEditApprovalPermissionModal={showEditApprovalPermissionModal}
|
showEditApprovalPermissionModal={showEditApprovalPermissionModal}
|
||||||
data={data}
|
data={data}
|
||||||
toAddress={toAddress}
|
toAddress={toAddress}
|
||||||
|
currentCurrency={currentCurrency}
|
||||||
ethTransactionTotal={ethTransactionTotal}
|
ethTransactionTotal={ethTransactionTotal}
|
||||||
fiatTransactionTotal={fiatTransactionTotal}
|
fiatTransactionTotal={fiatTransactionTotal}
|
||||||
/>}
|
/>}
|
||||||
hideSenderToRecipient={true}
|
hideSenderToRecipient
|
||||||
customTxParamsData={customPermissionAmount
|
customTxParamsData={customPermissionAmount
|
||||||
? getCustomTxParamsData(data, { customPermissionAmount, tokenAmount, decimals })
|
? getCustomTxParamsData(data, { customPermissionAmount, tokenAmount, decimals })
|
||||||
: null
|
: null
|
||||||
|
@ -261,7 +261,7 @@ export default class ConfirmTransactionBase extends Component {
|
|||||||
customGasPrice={customGas.gasPrice}
|
customGasPrice={customGas.gasPrice}
|
||||||
customGasLimit={customGas.gasLimit}
|
customGasLimit={customGas.gasLimit}
|
||||||
insufficientBalance={insufficientBalance}
|
insufficientBalance={insufficientBalance}
|
||||||
customPriceIsSafe={true}
|
customPriceIsSafe
|
||||||
isSpeedUp={false}
|
isSpeedUp={false}
|
||||||
/>
|
/>
|
||||||
: null
|
: null
|
||||||
|
@ -47,17 +47,17 @@ export default class CreateAccountPage extends Component {
|
|||||||
<div className="new-account__form">
|
<div className="new-account__form">
|
||||||
<Switch>
|
<Switch>
|
||||||
<Route
|
<Route
|
||||||
exact={true}
|
exact
|
||||||
path={NEW_ACCOUNT_ROUTE}
|
path={NEW_ACCOUNT_ROUTE}
|
||||||
component={NewAccountCreateForm}
|
component={NewAccountCreateForm}
|
||||||
/>
|
/>
|
||||||
<Route
|
<Route
|
||||||
exact={true}
|
exact
|
||||||
path={IMPORT_ACCOUNT_ROUTE}
|
path={IMPORT_ACCOUNT_ROUTE}
|
||||||
component={NewAccountImportForm}
|
component={NewAccountImportForm}
|
||||||
/>
|
/>
|
||||||
<Route
|
<Route
|
||||||
exact={true}
|
exact
|
||||||
path={CONNECT_HARDWARE_ROUTE}
|
path={CONNECT_HARDWARE_ROUTE}
|
||||||
component={ConnectHardwareForm}
|
component={ConnectHardwareForm}
|
||||||
/>
|
/>
|
||||||
|
@ -58,13 +58,13 @@ export default class NewAccountCreateForm extends Component {
|
|||||||
<div className="new-account-create-form__buttons">
|
<div className="new-account-create-form__buttons">
|
||||||
<Button
|
<Button
|
||||||
type="default"
|
type="default"
|
||||||
large={true}
|
large
|
||||||
className="new-account-create-form__button"
|
className="new-account-create-form__button"
|
||||||
onClick={() => history.push(DEFAULT_ROUTE)}
|
onClick={() => history.push(DEFAULT_ROUTE)}
|
||||||
>{this.context.t('cancel')}</Button>
|
>{this.context.t('cancel')}</Button>
|
||||||
<Button
|
<Button
|
||||||
type="secondary"
|
type="secondary"
|
||||||
large={true}
|
large
|
||||||
className="new-account-create-form__button"
|
className="new-account-create-form__button"
|
||||||
onClick={createClick}
|
onClick={createClick}
|
||||||
>{this.context.t('create')}</Button>
|
>{this.context.t('create')}</Button>
|
||||||
|
@ -83,7 +83,7 @@ export default class AccountListItem extends Component {
|
|||||||
<UserPreferencedCurrencyDisplay
|
<UserPreferencedCurrencyDisplay
|
||||||
type={PRIMARY}
|
type={PRIMARY}
|
||||||
value={balance}
|
value={balance}
|
||||||
hideTitle={true}
|
hideTitle
|
||||||
/>
|
/>
|
||||||
{
|
{
|
||||||
balanceIsCached ? <span className="account-list-item__cached-star">*</span> : null
|
balanceIsCached ? <span className="account-list-item__cached-star">*</span> : null
|
||||||
@ -94,7 +94,7 @@ export default class AccountListItem extends Component {
|
|||||||
<UserPreferencedCurrencyDisplay
|
<UserPreferencedCurrencyDisplay
|
||||||
type={SECONDARY}
|
type={SECONDARY}
|
||||||
value={balance}
|
value={balance}
|
||||||
hideTitle={true}
|
hideTitle
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ export default class SendGasRow extends Component {
|
|||||||
customGasPrice={gasPrice}
|
customGasPrice={gasPrice}
|
||||||
customGasLimit={gasLimit}
|
customGasLimit={gasLimit}
|
||||||
insufficientBalance={insufficientBalance}
|
insufficientBalance={insufficientBalance}
|
||||||
customPriceIsSafe={true}
|
customPriceIsSafe
|
||||||
isSpeedUp={false}
|
isSpeedUp={false}
|
||||||
/>
|
/>
|
||||||
{ this.renderAdvancedOptionsButton() }
|
{ this.renderAdvancedOptionsButton() }
|
||||||
|
@ -16,7 +16,7 @@ describe('SendContent Component', function () {
|
|||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(
|
wrapper = shallow(
|
||||||
<SendContent
|
<SendContent
|
||||||
showHexData={true}
|
showHexData
|
||||||
/>,
|
/>,
|
||||||
{ context: { t: str => str + '_t' } }
|
{ context: { t: str => str + '_t' } }
|
||||||
)
|
)
|
||||||
|
@ -29,7 +29,7 @@ describe('SendFooter Component', function () {
|
|||||||
addToAddressBookIfNew={propsMethodSpies.addToAddressBookIfNew}
|
addToAddressBookIfNew={propsMethodSpies.addToAddressBookIfNew}
|
||||||
amount="mockAmount"
|
amount="mockAmount"
|
||||||
clearSend={propsMethodSpies.clearSend}
|
clearSend={propsMethodSpies.clearSend}
|
||||||
disabled={true}
|
disabled
|
||||||
editingTransactionId="mockEditingTransactionId"
|
editingTransactionId="mockEditingTransactionId"
|
||||||
errors={{}}
|
errors={{}}
|
||||||
from={ { address: 'mockAddress', balance: 'mockBalance' } }
|
from={ { address: 'mockAddress', balance: 'mockBalance' } }
|
||||||
@ -186,7 +186,7 @@ describe('SendFooter Component', function () {
|
|||||||
addToAddressBookIfNew={propsMethodSpies.addToAddressBookIfNew}
|
addToAddressBookIfNew={propsMethodSpies.addToAddressBookIfNew}
|
||||||
amount="mockAmount"
|
amount="mockAmount"
|
||||||
clearSend={propsMethodSpies.clearSend}
|
clearSend={propsMethodSpies.clearSend}
|
||||||
disabled={true}
|
disabled
|
||||||
editingTransactionId="mockEditingTransactionId"
|
editingTransactionId="mockEditingTransactionId"
|
||||||
errors={{}}
|
errors={{}}
|
||||||
from={ { address: 'mockAddress', balance: 'mockBalance' } }
|
from={ { address: 'mockAddress', balance: 'mockBalance' } }
|
||||||
|
@ -58,7 +58,7 @@ describe('Send Component', function () {
|
|||||||
recentBlocks={['mockBlock']}
|
recentBlocks={['mockBlock']}
|
||||||
selectedAddress="mockSelectedAddress"
|
selectedAddress="mockSelectedAddress"
|
||||||
selectedToken="mockSelectedToken"
|
selectedToken="mockSelectedToken"
|
||||||
showHexData={true}
|
showHexData
|
||||||
tokenBalance="mockTokenBalance"
|
tokenBalance="mockTokenBalance"
|
||||||
tokenContract="mockTokenContract"
|
tokenContract="mockTokenContract"
|
||||||
updateAndSetGasLimit={propsMethodSpies.updateAndSetGasLimit}
|
updateAndSetGasLimit={propsMethodSpies.updateAndSetGasLimit}
|
||||||
|
@ -61,7 +61,7 @@ export default class ToAutoComplete extends Component {
|
|||||||
}}
|
}}
|
||||||
icon={this.getListItemIcon(account.address, to)}
|
icon={this.getListItemIcon(account.address, to)}
|
||||||
displayBalance={false}
|
displayBalance={false}
|
||||||
displayAddress={true}
|
displayAddress
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
@ -100,7 +100,7 @@ export default class EditContact extends PureComponent {
|
|||||||
onChange={e => this.setState({ newMemo: e.target.value })}
|
onChange={e => this.setState({ newMemo: e.target.value })}
|
||||||
fullWidth
|
fullWidth
|
||||||
margin="dense"
|
margin="dense"
|
||||||
multiline={true}
|
multiline
|
||||||
rows={3}
|
rows={3}
|
||||||
classes={{
|
classes={{
|
||||||
inputMultiline: 'address-book__view-contact__text-area',
|
inputMultiline: 'address-book__view-contact__text-area',
|
||||||
|
@ -24,6 +24,7 @@ export default class NetworkForm extends PureComponent {
|
|||||||
isCurrentRpcTarget: PropTypes.bool,
|
isCurrentRpcTarget: PropTypes.bool,
|
||||||
blockExplorerUrl: PropTypes.string,
|
blockExplorerUrl: PropTypes.string,
|
||||||
rpcPrefs: PropTypes.object,
|
rpcPrefs: PropTypes.object,
|
||||||
|
rpcUrls: PropTypes.array,
|
||||||
}
|
}
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
@ -211,16 +212,28 @@ export default class NetworkForm extends PureComponent {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
validateUrl = (url, stateKey) => {
|
isValidWhenAppended = url => {
|
||||||
const invalidUrlErrorMsg = stateKey === 'rpcUrl' ? 'invalidRPC' : 'invalidBlockExplorerURL'
|
const appendedRpc = `http://${url}`
|
||||||
|
return validUrl.isWebUri(appendedRpc) && !url.match(/^https?:\/\/$/)
|
||||||
|
}
|
||||||
|
|
||||||
if (validUrl.isWebUri(url) || (stateKey === 'blockExplorerUrl' && url === '')) {
|
validateBlockExplorerURL = (url, stateKey) => {
|
||||||
this.setErrorTo(stateKey, '')
|
if (!validUrl.isWebUri(url) && url !== '') {
|
||||||
|
this.setErrorTo(stateKey, this.context.t(this.isValidWhenAppended(url) ? 'urlErrorMsg' : 'invalidBlockExplorerURL'))
|
||||||
} else {
|
} else {
|
||||||
const appendedRpc = `http://${url}`
|
this.setErrorTo(stateKey, '')
|
||||||
const validWhenAppended = validUrl.isWebUri(appendedRpc) && !url.match(/^https?:\/\/$/)
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.setErrorTo(stateKey, this.context.t(validWhenAppended ? 'uriErrorMsg' : invalidUrlErrorMsg))
|
validateUrlRpcUrl = (url, stateKey) => {
|
||||||
|
const { rpcUrls } = this.props
|
||||||
|
|
||||||
|
if (!validUrl.isWebUri(url) && url !== '') {
|
||||||
|
this.setErrorTo(stateKey, this.context.t(this.isValidWhenAppended(url) ? 'urlErrorMsg' : 'invalidRPC'))
|
||||||
|
} else if (rpcUrls.includes(url)) {
|
||||||
|
this.setErrorTo(stateKey, this.context.t('urlExistsErrorMsg'))
|
||||||
|
} else {
|
||||||
|
this.setErrorTo(stateKey, '')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +267,7 @@ export default class NetworkForm extends PureComponent {
|
|||||||
{this.renderFormTextField(
|
{this.renderFormTextField(
|
||||||
'rpcUrl',
|
'rpcUrl',
|
||||||
'rpc-url',
|
'rpc-url',
|
||||||
this.setStateWithValue('rpcUrl', this.validateUrl),
|
this.setStateWithValue('rpcUrl', this.validateUrlRpcUrl),
|
||||||
rpcUrl,
|
rpcUrl,
|
||||||
)}
|
)}
|
||||||
{this.renderFormTextField(
|
{this.renderFormTextField(
|
||||||
@ -274,7 +287,7 @@ export default class NetworkForm extends PureComponent {
|
|||||||
{this.renderFormTextField(
|
{this.renderFormTextField(
|
||||||
'blockExplorerUrl',
|
'blockExplorerUrl',
|
||||||
'block-explorer-url',
|
'block-explorer-url',
|
||||||
this.setStateWithValue('blockExplorerUrl', this.validateUrl),
|
this.setStateWithValue('blockExplorerUrl', this.validateBlockExplorerURL),
|
||||||
blockExplorerUrl,
|
blockExplorerUrl,
|
||||||
'optionalBlockExplorerUrl',
|
'optionalBlockExplorerUrl',
|
||||||
)}
|
)}
|
||||||
|
@ -20,7 +20,7 @@ export default class NetworksTab extends PureComponent {
|
|||||||
location: PropTypes.object.isRequired,
|
location: PropTypes.object.isRequired,
|
||||||
networkIsSelected: PropTypes.bool,
|
networkIsSelected: PropTypes.bool,
|
||||||
networksTabIsInAddMode: PropTypes.bool,
|
networksTabIsInAddMode: PropTypes.bool,
|
||||||
networksToRender: PropTypes.array.isRequired,
|
networksToRender: PropTypes.arrayOf(PropTypes.object).isRequired,
|
||||||
selectedNetwork: PropTypes.object,
|
selectedNetwork: PropTypes.object,
|
||||||
setNetworksTabAddMode: PropTypes.func.isRequired,
|
setNetworksTabAddMode: PropTypes.func.isRequired,
|
||||||
setRpcTarget: PropTypes.func.isRequired,
|
setRpcTarget: PropTypes.func.isRequired,
|
||||||
@ -177,6 +177,7 @@ export default class NetworksTab extends PureComponent {
|
|||||||
editRpc,
|
editRpc,
|
||||||
networkDefaultedToProvider,
|
networkDefaultedToProvider,
|
||||||
providerUrl,
|
providerUrl,
|
||||||
|
networksToRender,
|
||||||
} = this.props
|
} = this.props
|
||||||
|
|
||||||
const envIsPopup = getEnvironmentType() === ENVIRONMENT_TYPE_POPUP
|
const envIsPopup = getEnvironmentType() === ENVIRONMENT_TYPE_POPUP
|
||||||
@ -189,6 +190,7 @@ export default class NetworksTab extends PureComponent {
|
|||||||
shouldRenderNetworkForm
|
shouldRenderNetworkForm
|
||||||
? (
|
? (
|
||||||
<NetworkForm
|
<NetworkForm
|
||||||
|
rpcUrls={networksToRender.map(network => network.rpcUrl)}
|
||||||
setRpcTarget={setRpcTarget}
|
setRpcTarget={setRpcTarget}
|
||||||
editRpc={editRpc}
|
editRpc={editRpc}
|
||||||
networkName={label || labelKey && t(labelKey) || ''}
|
networkName={label || labelKey && t(labelKey) || ''}
|
||||||
|
@ -367,6 +367,7 @@ var actions = {
|
|||||||
// AppStateController-related actions
|
// AppStateController-related actions
|
||||||
SET_LAST_ACTIVE_TIME: 'SET_LAST_ACTIVE_TIME',
|
SET_LAST_ACTIVE_TIME: 'SET_LAST_ACTIVE_TIME',
|
||||||
setLastActiveTime,
|
setLastActiveTime,
|
||||||
|
setMkrMigrationReminderTimestamp,
|
||||||
|
|
||||||
getContractMethodData,
|
getContractMethodData,
|
||||||
loadingMethoDataStarted,
|
loadingMethoDataStarted,
|
||||||
@ -2755,6 +2756,16 @@ function setLastActiveTime () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setMkrMigrationReminderTimestamp (timestamp) {
|
||||||
|
return (dispatch) => {
|
||||||
|
background.setMkrMigrationReminderTimestamp(timestamp, (err) => {
|
||||||
|
if (err) {
|
||||||
|
return dispatch(actions.displayWarning(err.message))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function loadingMethoDataStarted () {
|
function loadingMethoDataStarted () {
|
||||||
return {
|
return {
|
||||||
type: actions.LOADING_METHOD_DATA_STARTED,
|
type: actions.LOADING_METHOD_DATA_STARTED,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user