From eea30fae6702ad5490fb0992c5eb9b651885dd2c Mon Sep 17 00:00:00 2001 From: Ian Lapham Date: Mon, 22 Jul 2019 15:19:15 -0400 Subject: [PATCH 1/6] Fix i18n bug (#365) * fix i18n bug * fix styles * update with prettier and include env file --- .env.local.example | 2 +- src/i18n.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.env.local.example b/.env.local.example index f2103acece..d623d46c40 100644 --- a/.env.local.example +++ b/.env.local.example @@ -1,2 +1,2 @@ REACT_APP_NETWORK_ID="1" -REACT_APP_NETWORK_URL="" +REACT_APP_NETWORK_URL="" \ No newline at end of file diff --git a/src/i18n.js b/src/i18n.js index 5166f9967d..95f0636424 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -14,7 +14,6 @@ i18next react: { useSuspense: true }, - lng: 'en', fallbackLng: 'en', preload: ['en'], keySeparator: false, From 2431e2659946ed07d6187251608bb6d389a66d4b Mon Sep 17 00:00:00 2001 From: Noah Zinsmeister Date: Tue, 23 Jul 2019 13:50:31 -0400 Subject: [PATCH 2/6] add tokens, do some summer cleaning (#368) * fix suppressClassNameWarning * remove .md * update dependencies * add MLN closes #367 * add DIP closes #359 --- LICENSE.md => LICENSE | 0 src/components/Modal/index.js | 3 +- src/contexts/Tokens.js | 14 + yarn.lock | 825 ++++++++++++++-------------------- 4 files changed, 354 insertions(+), 488 deletions(-) rename LICENSE.md => LICENSE (100%) diff --git a/LICENSE.md b/LICENSE similarity index 100% rename from LICENSE.md rename to LICENSE diff --git a/src/components/Modal/index.js b/src/components/Modal/index.js index dd392fe912..c819da6c62 100644 --- a/src/components/Modal/index.js +++ b/src/components/Modal/index.js @@ -5,7 +5,8 @@ import { DialogOverlay, DialogContent } from '@reach/dialog' import '@reach/dialog/styles.css' const AnimatedDialogOverlay = animated(DialogOverlay) -const StyledDialogOverlay = styled(AnimatedDialogOverlay).attrs({ +const WrappedDialogOverlay = ({ suppressClassNameWarning, ...rest }) => +const StyledDialogOverlay = styled(WrappedDialogOverlay).attrs({ suppressClassNameWarning: true })` &[data-reach-dialog-overlay] { diff --git a/src/contexts/Tokens.js b/src/contexts/Tokens.js index 39c0ab6d4b..695233bef6 100644 --- a/src/contexts/Tokens.js +++ b/src/contexts/Tokens.js @@ -89,6 +89,14 @@ const INITIAL_TOKENS_CONTEXT = { [DECIMALS]: 9, [EXCHANGE_ADDRESS]: '0xb92dE8B30584392Af27726D5ce04Ef3c4e5c9924' }, + + '0xc719d010B63E5bbF2C0551872CD5316ED26AcD83': { + [NAME]: 'Decentralized Insurance Protocol', + [SYMBOL]: 'DIP', + [DECIMALS]: 18, + [EXCHANGE_ADDRESS]: '0x61792F290e5100FBBcBb2309F03A1Bab869fb850' + }, + '0x4946Fcea7C692606e8908002e55A582af44AC121': { [NAME]: 'FOAM Token', [SYMBOL]: 'FOAM', @@ -191,6 +199,12 @@ const INITIAL_TOKENS_CONTEXT = { [DECIMALS]: 18, [EXCHANGE_ADDRESS]: '0x2C4Bd064b998838076fa341A83d007FC2FA50957' }, + '0xec67005c4E498Ec7f55E092bd1d35cbC47C91892': { + [NAME]: 'Melon Token', + [SYMBOL]: 'MLN', + [DECIMALS]: 18, + [EXCHANGE_ADDRESS]: '0xA931F4eB165AC307fD7431b5EC6eADde53E14b0C' + }, '0x957c30aB0426e0C93CD8241E2c60392d08c6aC8e': { [NAME]: 'Modum Token', [SYMBOL]: 'MOD', diff --git a/yarn.lock b/yarn.lock index 8628c715cd..a8e5c59729 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@0x/assert@^2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@0x/assert/-/assert-2.0.10.tgz#e1cfc7142b5dd7ee6510a676703935cf8ffd432e" - integrity sha512-tM3j5aZnJGTMr+7OAF61gmflrgEpUkp1LHNsnIx5VnVG+X7JzwV87O44PU9bALVQI1ufYvAUwhIkmK8jbR5Agw== +"@0x/assert@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@0x/assert/-/assert-2.1.0.tgz#9a129fd6cd697b4332cdf517048aad14d4af7c16" + integrity sha512-hSCzzNokQJ6Or55XuxBFFy6V9n+DmO2ijHESmQld/hH+wYuEMqVEHVaLf0+0GTt1txwljrBRTpxyhkVujh5bjw== dependencies: - "@0x/json-schemas" "^3.0.10" - "@0x/typescript-typings" "^4.2.2" - "@0x/utils" "^4.3.3" + "@0x/json-schemas" "^3.0.11" + "@0x/typescript-typings" "^4.2.3" + "@0x/utils" "^4.4.0" lodash "^4.17.11" valid-url "^1.0.9" -"@0x/json-schemas@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@0x/json-schemas/-/json-schemas-3.0.10.tgz#e15ea419ffb5af81f7eff7f6b3ac7602ca0b6957" - integrity sha512-RHYIaxf8C7GO/6VViD8zzRfs1B/i7P5vpCgPk8VR+aVDJXtceF9Nn72KiHeiHU9REUxMWgI3fzhYqTp5/CSbjA== +"@0x/json-schemas@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@0x/json-schemas/-/json-schemas-3.0.11.tgz#895e2eeab3a9c5ce3cac796a2bdf1a9733a8b79b" + integrity sha512-mQTNJcRJwGIAJhbFOwPhEnh/8O2bSWwTxr0oMOzwJQt3RCUetvu/YJdY4V657mfQ5svu1ifH3yqOG39gFrKrEQ== dependencies: - "@0x/typescript-typings" "^4.2.2" + "@0x/typescript-typings" "^4.2.3" "@types/node" "*" jsonschema "^1.2.0" lodash.values "^4.3.0" "@0x/subproviders@^4.0.5": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@0x/subproviders/-/subproviders-4.1.0.tgz#15fc94793c20d9c9c05f9c965e613db8ceaff79a" - integrity sha512-l1CLMoLwLI5OZplExoNhcEPp5QGdiuet4xR2hZxB/+ZnpDTHwQQ6k6dNyoUvmQWud47Q9jTq57YSsj6HpyX3Pw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/@0x/subproviders/-/subproviders-4.1.1.tgz#de861396aa3adc34a821b0ab28c0fd8bdf3961e2" + integrity sha512-VfZK1y67GlVI4+KPq23iKnrsDtRN+YfeK+ytgM7LamytmbhkcVRL0m55/B8uPurOp+Y23498/ZQIBahf5lGajA== dependencies: - "@0x/assert" "^2.0.10" - "@0x/types" "^2.2.2" - "@0x/typescript-typings" "^4.2.2" - "@0x/utils" "^4.3.3" - "@0x/web3-wrapper" "^6.0.6" + "@0x/assert" "^2.1.0" + "@0x/types" "^2.4.0" + "@0x/typescript-typings" "^4.2.3" + "@0x/utils" "^4.4.0" + "@0x/web3-wrapper" "^6.0.7" "@ledgerhq/hw-app-eth" "^4.3.0" "@ledgerhq/hw-transport-u2f" "4.24.0" "@types/eth-lightwallet" "^3.0.0" @@ -41,7 +41,7 @@ bip39 "^2.5.0" bn.js "^4.11.8" eth-lightwallet "^3.0.1" - ethereum-types "^2.1.2" + ethereum-types "^2.1.3" ethereumjs-tx "^1.3.5" ethereumjs-util "^5.1.1" ganache-core "^2.5.3" @@ -53,66 +53,73 @@ optionalDependencies: "@ledgerhq/hw-transport-node-hid" "^4.3.0" -"@0x/types@^2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@0x/types/-/types-2.2.2.tgz#ac54c810384795e200384cb4a261152c0aea5040" - integrity sha512-25F3yjvdWGwiQ99CtFcvyL83PTR2fGQk7J1RzuGbqhu9LTdktjhbQl2/FUzPqbAnGXH47zh1ZZrrMSUVIW9SEA== +"@0x/types@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@0x/types/-/types-2.4.0.tgz#4924ab3b1e8cb7b99bf01713265ce54bbcc16790" + integrity sha512-F+yA9EAeUHH9JltaWH5ffi0CTQ0uVEMvgYduKLpWDcWxsQm6yJhi0waOZu2i0ISUvaWbKpmt5blXXO6KxeDN2w== dependencies: "@types/node" "*" bignumber.js "~8.0.2" - ethereum-types "^2.1.2" + ethereum-types "^2.1.3" -"@0x/typescript-typings@^4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@0x/typescript-typings/-/typescript-typings-4.2.2.tgz#6c3e51e479c1ecf9e9b3eeae95a51a91be11570a" - integrity sha512-KKioCi4rLOiC62DF8mqBgN639DdGcJllW7OSPi6gWG4w2JI0mvH6KpRA7wGS9fyIpupjpKTIvz6ktZBaG+DrWg== +"@0x/typescript-typings@^4.2.3": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@0x/typescript-typings/-/typescript-typings-4.2.3.tgz#eabf54053307ac505ef0013c189b9747425825d0" + integrity sha512-tXby3eQjvZBVYNl4St1p3gNSjs1vMx7aqXeoixIJtaSijiQc5aogDYdOy0bus/xaz1yOyzvmRnYHfWKIOYkTRA== dependencies: "@types/bn.js" "^4.11.0" "@types/react" "*" bignumber.js "~8.0.2" - ethereum-types "^2.1.2" + ethereum-types "^2.1.3" popper.js "1.14.3" -"@0x/utils@^4.3.3": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@0x/utils/-/utils-4.3.3.tgz#56ab7b42a2a938057bf191e83054aa75a25a18f5" - integrity sha512-gAFKM8kV5I4A6mpn4+nl9pkstyDiFfQBGz4JBI6ES7s/HRetenVurFN8v1EpEF4N/SOtTzqhGerDUVVtrM3YSQ== +"@0x/utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@0x/utils/-/utils-4.4.0.tgz#2bbd1eed6abbcfcbe79ca3da411b794e055007be" + integrity sha512-WnAxmOFPwJHVycja/r0FzXwKazI9y8olVwRuEHN51xvDKA/WYVQ6VpegN9eIF3xo7ytLkeDY0ihU9dEAN9tJvg== dependencies: - "@0x/types" "^2.2.2" - "@0x/typescript-typings" "^4.2.2" + "@0x/types" "^2.4.0" + "@0x/typescript-typings" "^4.2.3" "@types/node" "*" abortcontroller-polyfill "^1.1.9" bignumber.js "~8.0.2" chalk "^2.3.0" detect-node "2.0.3" - ethereum-types "^2.1.2" + ethereum-types "^2.1.3" ethereumjs-util "^5.1.1" ethers "~4.0.4" isomorphic-fetch "2.2.1" js-sha3 "^0.7.0" lodash "^4.17.11" -"@0x/web3-wrapper@^6.0.6": - version "6.0.6" - resolved "https://registry.yarnpkg.com/@0x/web3-wrapper/-/web3-wrapper-6.0.6.tgz#bf2b07ba9f309e4c7a25dd1b25b2e9de67d0afc9" - integrity sha512-cmDHgYnPGNs6ItMw5h+hLe3Cvqaj6V1RY14ZMCc87L7PrwUFQLnrmSfKcsjaqsNDEmbjLf2dNL25DVu6FN/uyw== +"@0x/web3-wrapper@^6.0.7": + version "6.0.7" + resolved "https://registry.yarnpkg.com/@0x/web3-wrapper/-/web3-wrapper-6.0.7.tgz#dc8c11e7e68f58be059656349c0f3cc203ed7188" + integrity sha512-yMt6yfXUDr3XRyxWeiDv84KiMDQ1hCyQ2MdlSxwiITAeu37HpD+44iCHdQge/p/PVASd2lsc0TexeFsOIQ+0Og== dependencies: - "@0x/assert" "^2.0.10" - "@0x/json-schemas" "^3.0.10" - "@0x/typescript-typings" "^4.2.2" - "@0x/utils" "^4.3.3" - ethereum-types "^2.1.2" + "@0x/assert" "^2.1.0" + "@0x/json-schemas" "^3.0.11" + "@0x/typescript-typings" "^4.2.3" + "@0x/utils" "^4.4.0" + ethereum-types "^2.1.3" ethereumjs-util "^5.1.1" ethers "~4.0.4" lodash "^4.17.11" -"@babel/code-frame@7.0.0", "@babel/code-frame@^7.0.0": +"@babel/code-frame@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + "@babel/core@7.4.3": version "7.4.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f" @@ -134,33 +141,33 @@ source-map "^0.5.0" "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.4.5": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.4.tgz#4c32df7ad5a58e9ea27ad025c11276324e0b4ddd" - integrity sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" + integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.5.0" - "@babel/helpers" "^7.5.4" - "@babel/parser" "^7.5.0" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" + "@babel/helpers" "^7.5.5" + "@babel/parser" "^7.5.5" "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.0" - "@babel/types" "^7.5.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" - lodash "^4.17.11" + lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.0.tgz#f20e4b7a91750ee8b63656073d843d2a736dca4a" - integrity sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA== +"@babel/generator@^7.4.0", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== dependencies: - "@babel/types" "^7.5.0" + "@babel/types" "^7.5.5" jsesc "^2.5.1" - lodash "^4.17.11" + lodash "^4.17.13" source-map "^0.5.0" trim-right "^1.0.1" @@ -196,26 +203,26 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.4.0", "@babel/helper-create-class-features-plugin@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.0.tgz#02edb97f512d44ba23b3227f1bf2ed43454edac5" - integrity sha512-EAoMc3hE5vE5LNhMqDOwB1usHvmRjCDAnH8CD4PVkX9/Yr3W/tcz8xE8QvdZxfsFBDICwZnF2UTHIqslRpvxmA== +"@babel/helper-create-class-features-plugin@^7.4.0", "@babel/helper-create-class-features-plugin@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" + integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-replace-supers" "^7.5.5" "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-define-map@^7.4.0", "@babel/helper-define-map@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" - integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== +"@babel/helper-define-map@^7.4.0", "@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.4.4" - lodash "^4.17.11" + "@babel/types" "^7.5.5" + lodash "^4.17.13" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" @@ -248,12 +255,12 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" - integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.5.5" "@babel/helper-module-imports@^7.0.0": version "7.0.0" @@ -263,16 +270,16 @@ "@babel/types" "^7.0.0" "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" - integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" "@babel/template" "^7.4.4" - "@babel/types" "^7.4.4" - lodash "^4.17.11" + "@babel/types" "^7.5.5" + lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" @@ -287,11 +294,11 @@ integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" - integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== dependencies: - lodash "^4.17.11" + lodash "^4.17.13" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" @@ -304,15 +311,15 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.0", "@babel/helper-replace-supers@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" - integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== +"@babel/helper-replace-supers@^7.4.0", "@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -339,14 +346,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.4.3", "@babel/helpers@^7.5.4": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.4.tgz#2f00608aa10d460bde0ccf665d6dcf8477357cf0" - integrity sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow== +"@babel/helpers@^7.4.3", "@babel/helpers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" + integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== dependencies: "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.0" - "@babel/types" "^7.5.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" "@babel/highlight@^7.0.0": version "7.5.0" @@ -357,10 +364,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.0.tgz#3e0713dff89ad6ae37faec3b29dcfc5c979770b7" - integrity sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -412,10 +419,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.4.3", "@babel/plugin-proposal-object-rest-spread@^7.5.4": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.4.tgz#250de35d867ce8260a31b1fdac6c4fc1baa99331" - integrity sha512-KCx0z3y7y8ipZUMAEEJOyNi11lMb/FOPUjjB113tfowgw0c16EGYos7worCKBcUAh2oG+OBnoUhsnTSoLpV9uA== +"@babel/plugin-proposal-object-rest-spread@^7.4.3", "@babel/plugin-proposal-object-rest-spread@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" + integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -523,13 +530,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.4.0", "@babel/plugin-transform-block-scoping@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" - integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== +"@babel/plugin-transform-block-scoping@^7.4.0", "@babel/plugin-transform-block-scoping@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" + integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.11" + lodash "^4.17.13" "@babel/plugin-transform-classes@7.4.3": version "7.4.3" @@ -545,17 +552,17 @@ "@babel/helper-split-export-declaration" "^7.4.0" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.4.3", "@babel/plugin-transform-classes@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" - integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== +"@babel/plugin-transform-classes@^7.4.3", "@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.4.4" + "@babel/helper-define-map" "^7.5.5" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-replace-supers" "^7.5.5" "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" @@ -691,13 +698,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-object-super@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" - integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== +"@babel/plugin-transform-object-super@^7.2.0", "@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-replace-supers" "^7.5.5" "@babel/plugin-transform-parameters@^7.4.3", "@babel/plugin-transform-parameters@^7.4.4": version "7.4.4" @@ -825,11 +832,11 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript@^7.3.2": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.2.tgz#ea7da440d29b8ccdb1bd02e18f6cfdc7ce6c16f5" - integrity sha512-r4zJOMbKY5puETm8+cIpaa0RQZG/sSASW1u0pj8qYklcERgVIbxVbP2wyJA7zI1//h7lEagQmXi9IL9iI5rfsA== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz#6d862766f09b2da1cb1f7d505fe2aedab6b7d4b8" + integrity sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.0" + "@babel/helper-create-class-features-plugin" "^7.5.5" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-typescript" "^7.2.0" @@ -897,16 +904,16 @@ semver "^5.5.0" "@babel/preset-env@^7.1.6": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.4.tgz#64bc15041a3cbb0798930319917e70fcca57713d" - integrity sha512-hFnFnouyRNiH1rL8YkX1ANCNAUVC8Djwdqfev8i1415tnAG+7hlA5zhZ0Q/3Q5gkop4HioIPbCEWAalqcbxRoQ== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" + integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-dynamic-import" "^7.5.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.5.4" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-syntax-async-generators" "^7.2.0" @@ -917,8 +924,8 @@ "@babel/plugin-transform-arrow-functions" "^7.2.0" "@babel/plugin-transform-async-to-generator" "^7.5.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.4.4" - "@babel/plugin-transform-classes" "^7.4.4" + "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-classes" "^7.5.5" "@babel/plugin-transform-computed-properties" "^7.2.0" "@babel/plugin-transform-destructuring" "^7.5.0" "@babel/plugin-transform-dotall-regex" "^7.4.4" @@ -934,7 +941,7 @@ "@babel/plugin-transform-modules-umd" "^7.2.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" "@babel/plugin-transform-regenerator" "^7.4.5" @@ -945,7 +952,7 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.0" + "@babel/types" "^7.5.5" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" @@ -979,9 +986,9 @@ regenerator-runtime "^0.13.2" "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.4.tgz#cb7d1ad7c6d65676e66b47186577930465b5271b" - integrity sha512-Na84uwyImZZc3FKf4aUF1tysApzwf3p2yuFBIyBfbzT5glzKTdvYI4KVW4kcgjrzoGUjC7w3YyCHcJKaRxsr2Q== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" + integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== dependencies: regenerator-runtime "^0.13.2" @@ -994,28 +1001,28 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.0.tgz#4216d6586854ef5c3c4592dab56ec7eb78485485" - integrity sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.5.0" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.0" - "@babel/types" "^7.5.0" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.11" + lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.0.tgz#e47d43840c2e7f9105bc4d3a2c371b4d0c7832ab" - integrity sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== dependencies: esutils "^2.0.2" - lodash "^4.17.11" + lodash "^4.17.13" to-fast-properties "^2.0.0" "@cnakazawa/watch@^1.0.3": @@ -1236,50 +1243,50 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" -"@ledgerhq/devices@^4.66.0": - version "4.66.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-4.66.0.tgz#46ab4c437c4f96a95d0f5473ac7f37fbbc2f1c6c" - integrity sha512-yes5W8LWrXb1y1ELjoa6bMLZnAh0d1Ap/fX/2Ni0xodnPKwltFCatbw++X0HeJB3E5OL0/nTjosn9a4r1vfrtw== +"@ledgerhq/devices@^4.68.2": + version "4.68.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-4.68.2.tgz#73206d526ec3cd34eec49eddb31d8c0086bde518" + integrity sha512-vqdJ4nOjB3Q9O8SMtzbqn843mbqf+fOC3iYXdA88SNUujR70joGMZlyKE8LSQbLWhFnCm3SSjxWuHkgDpHOC+w== dependencies: - "@ledgerhq/errors" "^4.66.0" - "@ledgerhq/logs" "^4.64.0" + "@ledgerhq/errors" "^4.68.2" + "@ledgerhq/logs" "^4.68.2" rxjs "^6.5.2" -"@ledgerhq/errors@^4.66.0": - version "4.66.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-4.66.0.tgz#a8d9cc6e2ceff340e528455aee8a2632979821f9" - integrity sha512-TVgt6VDPaJCLKGx3qhGf4KQ5TEsGOMwUTUnZYy68IpqgUmPxbxevZ+OeF5G2Ns8D3/FZvKx9uQFWjA40B0R5qQ== +"@ledgerhq/errors@^4.68.2": + version "4.68.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-4.68.2.tgz#634f132c9c95935668ac2af90991ce57ebc44d63" + integrity sha512-JxMr4wj/9d7EQuTQ9khhJxQSzv5B6ZoLUm4spOY+FDfQo0ywx9qvD1NyBHHVzyn7uRtWvz/hOSfTSrlw2joM3w== "@ledgerhq/hw-app-eth@^4.3.0": - version "4.66.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-4.66.0.tgz#6609fe28e7a4d7c4a8d82f2d334da809eb7173d9" - integrity sha512-bztRxzuJ+yqnTRZxxtxIWzWOFwizcEGJjrrHXdDpcrg4in9NUGgPCbeAuMaHtB8rMzjxiSKK06Gi5KENhjCCEg== + version "4.68.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-4.68.2.tgz#f8c0f19788b690261a8e42bcfb8d9057896e42b3" + integrity sha512-tmctn9t4x8ReKd03IxM/YSdZpVN9/UnnvNo8Kfqe5udlL9dqckC/4KnOENF0Ho896VkoN+CygH6PUqnV7TdNcA== dependencies: - "@ledgerhq/errors" "^4.66.0" - "@ledgerhq/hw-transport" "^4.66.0" + "@ledgerhq/errors" "^4.68.2" + "@ledgerhq/hw-transport" "^4.68.2" -"@ledgerhq/hw-transport-node-hid-noevents@^4.66.0": - version "4.66.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-4.66.0.tgz#125c7e8abcdfd515b15d6b662d07e8700b72b081" - integrity sha512-dtn8ODFXjLXrEac2NR9aqhVyDcdpt0VyJPGGdw9FWzKZ2qHTSFOB+FEgtFlfMzPGVSz7Jx7ZAFEpNIx0fvpzBA== +"@ledgerhq/hw-transport-node-hid-noevents@^4.68.2": + version "4.68.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-4.68.2.tgz#6d2a6c1a5a86869f40e279c3a09d85be1a7e7a25" + integrity sha512-Oo8uJ8SPNnG3QMlNBiM1ZJ9GN2IKf/obbcYAO49a4IrYnvgXPmnBqlFBm5/dl7uf6zEAz1vozjQwG8l18rmUfg== dependencies: - "@ledgerhq/devices" "^4.66.0" - "@ledgerhq/errors" "^4.66.0" - "@ledgerhq/hw-transport" "^4.66.0" - "@ledgerhq/logs" "^4.64.0" + "@ledgerhq/devices" "^4.68.2" + "@ledgerhq/errors" "^4.68.2" + "@ledgerhq/hw-transport" "^4.68.2" + "@ledgerhq/logs" "^4.68.2" node-hid "^0.7.9" "@ledgerhq/hw-transport-node-hid@^4.3.0": - version "4.66.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-4.66.0.tgz#0acd11c2983d97e616e0ade59f4d709e92438cbf" - integrity sha512-0IrbDHomygOiUlryZURe2xYhGPo10uE1VAkWmCuD8dlzR6ROVZAw0rdAbrFQqxMGiKoxMm1BgL5CTSyGV55ZLw== + version "4.68.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-4.68.2.tgz#6cc560fcf1a5f2764a8c817e29dfe5d0f6f99a2b" + integrity sha512-jXXNfLdxyRoEA6mEAaRur2y8h7zQSKof5N6/z2hY45X4kNWC/c98A87YXjthNAeHddkkTQPD3ecXENc8bWLpCQ== dependencies: - "@ledgerhq/devices" "^4.66.0" - "@ledgerhq/errors" "^4.66.0" - "@ledgerhq/hw-transport" "^4.66.0" - "@ledgerhq/hw-transport-node-hid-noevents" "^4.66.0" - "@ledgerhq/logs" "^4.64.0" - lodash "^4.17.11" + "@ledgerhq/devices" "^4.68.2" + "@ledgerhq/errors" "^4.68.2" + "@ledgerhq/hw-transport" "^4.68.2" + "@ledgerhq/hw-transport-node-hid-noevents" "^4.68.2" + "@ledgerhq/logs" "^4.68.2" + lodash "^4.17.15" node-hid "^0.7.9" usb "^1.6.0" @@ -1291,19 +1298,19 @@ "@ledgerhq/hw-transport" "^4.24.0" u2f-api "0.2.7" -"@ledgerhq/hw-transport@^4.24.0", "@ledgerhq/hw-transport@^4.66.0": - version "4.66.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-4.66.0.tgz#b49fd461ec09bd554cae0fb94ab31da1aeca01ad" - integrity sha512-qiO1K5QrhBJfNCXkgON/dsHib4ex+tmliyXOqOqFra4ZftOWQiLQiFsh7MLWTUqhs182kI/MP1ETez5wZB4g6g== +"@ledgerhq/hw-transport@^4.24.0", "@ledgerhq/hw-transport@^4.68.2": + version "4.68.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-4.68.2.tgz#822f3f03e22372b7656451eb73e809d208cca119" + integrity sha512-erGPXBXavw4V5CP2aG/04guPKJKJl50+Z3kl3PbI4RwUijVeWsCw3UwEyEor01AANJ480CwfGB8vhcRt4hkGeQ== dependencies: - "@ledgerhq/devices" "^4.66.0" - "@ledgerhq/errors" "^4.66.0" + "@ledgerhq/devices" "^4.68.2" + "@ledgerhq/errors" "^4.68.2" events "^3.0.0" -"@ledgerhq/logs@^4.64.0": - version "4.64.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-4.64.0.tgz#19a335e3f2d9188188437f8dabb06e0fd45b0052" - integrity sha512-NwgA7q1CXWMkqxoHVaSTk0gJUGbiBbWTM7Uod/Zz8EWNa1Ns0yHthCcSS279htP6oQplEaSppzsie5bcbwNApg== +"@ledgerhq/logs@^4.68.2": + version "4.68.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-4.68.2.tgz#3ba74680927807f83d9f0bfd7da45f192d2c0893" + integrity sha512-iFwGIzPmAMDvxVLtTvBUo0DCWz8vVaD0C4IsprNaXbxu+AsDmlc9kO9CKLB5YFEZblKNNKqJMJDfKvg5brIpTw== "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -1436,32 +1443,30 @@ "@svgr/babel-plugin-transform-svg-component" "^4.2.0" "@svgr/core@^4.1.0": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.3.1.tgz#58c44d0ccc3fe41718c50433758b549dabd4d197" - integrity sha512-TXFcvzp6QjxKP5Oy7qoQY08w/nAix9TMOc4jSi3wjIJBBMUqypVwQJFMxtHrViGMQGmFdaN1y2diQrhvA+xNNQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.3.2.tgz#939c89be670ad79b762f4c063f213f0e02535f2e" + integrity sha512-N+tP5CLFd1hP9RpO83QJPZY3NL8AtrdqNbuhRgBkjE/49RnMrrRsFm1wY8pueUfAGvzn6tSXUq29o6ah8RuR5w== dependencies: - "@svgr/plugin-jsx" "^4.3.1" + "@svgr/plugin-jsx" "^4.3.2" camelcase "^5.3.1" cosmiconfig "^5.2.1" -"@svgr/hast-util-to-babel-ast@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.1.tgz#b3ea5b2228b50ff335a5d3cf3855f4b1f9fbc70e" - integrity sha512-MZbRccEpsro70mE6mhiv5QUXjBwHGDQZ7XrVcrDs44inaNvYUtIcheX0d9eColcnNgJmsfU3tEFfoGRnJ9E5pA== +"@svgr/hast-util-to-babel-ast@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz#1d5a082f7b929ef8f1f578950238f630e14532b8" + integrity sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg== dependencies: "@babel/types" "^7.4.4" -"@svgr/plugin-jsx@^4.1.0", "@svgr/plugin-jsx@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.3.1.tgz#5b7f849213d1411886e1cec9b6c287faec69143e" - integrity sha512-v9sgsn/VpDM9G1U0ZDCair7ZmYqNrVC5LiSyIQli03DAm34bYLM12xVOOrl3dg8NGNY1k4C3A6YgBL3VKjA6Og== +"@svgr/plugin-jsx@^4.1.0", "@svgr/plugin-jsx@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.3.2.tgz#ce9ddafc8cdd74da884c9f7af014afcf37f93d3c" + integrity sha512-+1GW32RvmNmCsOkMoclA/TppNjHPLMnNZG3/Ecscxawp051XJ2MkO09Hn11VcotdC2EPrDfT8pELGRo+kbZ1Eg== dependencies: "@babel/core" "^7.4.5" "@svgr/babel-preset" "^4.3.1" - "@svgr/hast-util-to-babel-ast" "^4.3.1" - rehype-parse "^6.0.0" - unified "^7.1.0" - vfile "^4.0.1" + "@svgr/hast-util-to-babel-ast" "^4.3.2" + svg-parser "^2.0.0" "@svgr/plugin-svgo@^4.0.3": version "4.3.1" @@ -1568,14 +1573,14 @@ "@types/istanbul-lib-report" "*" "@types/node@*": - version "12.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.2.tgz#a5ccec6abb6060d5f20d256fb03ed743e9774999" - integrity sha512-gojym4tX0FWeV2gsW4Xmzo5wxGjXGm550oVUII7f7G5o4BV6c7DBdiG1RRQd+y1bvqRyYtPfMK85UM95vsapqQ== + version "12.6.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c" + integrity sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg== "@types/node@^10.3.2": - version "10.14.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.12.tgz#0eec3155a46e6c4db1f27c3e588a205f767d622f" - integrity sha512-QcAKpaO6nhHLlxWBvpc4WeLrTvPqlHOvaj0s5GriKkA1zq+bsFBPpfYCvQhLqLgYlIko8A9YrPdaMHCo5mBcpg== + version "10.14.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.13.tgz#ac786d623860adf39a3f51d629480aacd6a6eec7" + integrity sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ== "@types/prop-types@*": version "15.7.1" @@ -1600,28 +1605,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" - integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== - -"@types/vfile-message@*": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz#e1e9895cc6b36c462d4244e64e6d0b6eaf65355a" - integrity sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA== - dependencies: - "@types/node" "*" - "@types/unist" "*" - -"@types/vfile@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9" - integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw== - dependencies: - "@types/node" "*" - "@types/unist" "*" - "@types/vfile-message" "*" - "@types/web3-provider-engine@^14.0.0": version "14.0.0" resolved "https://registry.yarnpkg.com/@types/web3-provider-engine/-/web3-provider-engine-14.0.0.tgz#43adc3b39dc9812b82aef8cd2d66577665ad59b0" @@ -1897,9 +1880,9 @@ acorn@^5.5.3: integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.5, acorn@^6.0.7: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.0.tgz#67f0da2fc339d6cfb5d6fb244fd449f33cd8bbe3" - integrity sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw== + version "6.2.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" + integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q== address@1.0.3: version "1.0.3" @@ -1931,10 +1914,10 @@ ajv-keywords@^3.1.0: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.5.5, ajv@^6.9.1: - version "6.10.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.1.tgz#ebf8d3af22552df9dd049bfbe50cc2390e823593" - integrity sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -2183,11 +2166,11 @@ async@^1.4.2, async@^1.5.2: integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: - lodash "^4.17.11" + lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" @@ -2461,10 +2444,11 @@ babel-plugin-dynamic-import-node@^2.3.0: object.assign "^4.1.0" babel-plugin-istanbul@^5.1.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz#841d16b9a58eeb407a0ddce622ba02fe87a752ba" - integrity sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== dependencies: + "@babel/helper-plugin-utils" "^7.0.0" find-up "^3.0.0" istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" @@ -2906,11 +2890,6 @@ backoff@^2.5.0: dependencies: precond "0.2" -bail@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" - integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -3244,12 +3223,12 @@ browserslist@^3.2.6: electron-to-chromium "^1.3.47" browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.4.2, browserslist@^4.5.2, browserslist@^4.6.0, browserslist@^4.6.2, browserslist@^4.6.3: - version "4.6.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.4.tgz#fd0638b3f8867fec2c604ed0ed9300379f8ec7c2" - integrity sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low== + version "4.6.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" + integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== dependencies: - caniuse-lite "^1.0.30000981" - electron-to-chromium "^1.3.188" + caniuse-lite "^1.0.30000984" + electron-to-chromium "^1.3.191" node-releases "^1.1.25" bs58@=4.0.1, bs58@^4.0.0: @@ -3480,10 +3459,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000955, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981: - version "1.0.30000983" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000983.tgz#ab3c70061ca2a3467182a10ac75109b199b647f8" - integrity sha512-/llD1bZ6qwNkt41AsvjsmwNOoA4ZB+8iqmf5LVyeSXuBODT/hAMFNVOh84NdUzoiYiSKqo5vQ3ZzeYHSi/olDQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000955, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000984: + version "1.0.30000985" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000985.tgz#0eb40f6c8a8c219155cbe43c4975c0efb4a0f77f" + integrity sha512-1ngiwkgqAYPG0JSSUp3PUDGPKKY59EK7NrGGX+VOxaKCNzRbNc7uXMny+c3VJfZxtoK3wSImTvG9T9sXiTw2+w== capture-exit@^2.0.0: version "2.0.0" @@ -3502,11 +3481,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -ccount@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" - integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== - chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -3743,11 +3717,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -comma-separated-tokens@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59" - integrity sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ== - commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -4120,14 +4089,6 @@ css-to-react-native@^2.2.2: css-color-keywords "^1.0.0" postcss-value-parser "^3.3.0" -css-tree@1.0.0-alpha.28: - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" - integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - css-tree@1.0.0-alpha.29: version "1.0.0-alpha.29" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" @@ -4136,16 +4097,19 @@ css-tree@1.0.0-alpha.29: mdn-data "~1.1.0" source-map "^0.5.3" +css-tree@1.0.0-alpha.33: + version "1.0.0-alpha.33" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" + integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== + dependencies: + mdn-data "2.0.4" + source-map "^0.5.3" + css-unit-converter@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= -css-url-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" - integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w= - css-what@2.1, css-what@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" @@ -4241,17 +4205,17 @@ csso@^3.5.1: dependencies: css-tree "1.0.0-alpha.29" -"cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4, cssom@~0.3.6: +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== cssstyle@^1.0.0, cssstyle@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.3.0.tgz#c36c466f7037fd30f03baa271b65f0f17b50585c" - integrity sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg== + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== dependencies: - cssom "~0.3.6" + cssom "0.3.x" csstype@^2.2.0: version "2.6.6" @@ -4724,10 +4688,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.122, electron-to-chromium@^1.3.188, electron-to-chromium@^1.3.47: - version "1.3.189" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.189.tgz#aa84055eb36d364a68852ad2d25e1315a1d06196" - integrity sha512-C26Kv6/rLNmGDaPR5HORMtTQat9aWBBKjQk9aFtN1Bk6cQBSw8cYdsel/mcrQlNlMMjt1sAKsTYqf77+sK2uTw== +electron-to-chromium@^1.3.122, electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.47: + version "1.3.199" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.199.tgz#f9a62a74cda77854310a2abffde8b75591ea09a1" + integrity sha512-gachlDdHSK47s0N2e58GH9HMC6Z4ip0SfmYUa5iEbE50AKaOUXysaJnXMfKj0xB245jWbYcyFSH+th3rqsF8hA== elliptic@6.3.3: version "6.3.3" @@ -4918,9 +4882,9 @@ eslint-loader@2.1.2: rimraf "^2.6.1" eslint-module-utils@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" - integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== + version "2.4.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" + integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== dependencies: debug "^2.6.8" pkg-dir "^2.0.0" @@ -4997,9 +4961,11 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3: estraverse "^4.1.1" eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== + version "1.4.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" + integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ== + dependencies: + eslint-visitor-keys "^1.0.0" eslint-visitor-keys@^1.0.0: version "1.0.0" @@ -5232,10 +5198,10 @@ ethereum-common@^0.0.18: resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= -ethereum-types@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereum-types/-/ethereum-types-2.1.2.tgz#7398873e0eede1dd0956a134e1037032f6ed3c14" - integrity sha512-JsQnroPOsZ81yN75HVzvobosSxjr/59oEdYnydTgnV13Fg9PwS078CtPyBzARXequBl2Hnz4h7f3VF64u8P01A== +ethereum-types@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ethereum-types/-/ethereum-types-2.1.3.tgz#766a483f1beedd195e9e1665ba38979fc3b81a47" + integrity sha512-m+PLWGl9eyOEApIoubLQ0e/OFUEm1KUUmnJjAlV3Jcs9LgJD+jEfJOtTIdnRsKgNzRojwfErriqKjlvqjjkODw== dependencies: "@types/node" "*" bignumber.js "~8.0.2" @@ -5555,7 +5521,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@~3.0.2: +extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -5997,9 +5963,9 @@ functional-red-black-tree@^1.0.1: integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= ganache-core@^2.5.3: - version "2.5.7" - resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.5.7.tgz#03c74c8cb20dc1266990d0f7fb4ed3f71f55f6b3" - integrity sha512-/v5ak4QiJzOCVhyXtx/2QeDXjDdZovAhX6EIiqnH2ng9aKzG5h59Y5ZyS1xzX2pkLKDY0uRA1WIBdScsEJyi9A== + version "2.6.0" + resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.6.0.tgz#19001547893ff9f6d494fcaed66c52edd808f3c0" + integrity sha512-TAT8XCjORmRpWko9QWKWGbdZ8/3nblKgralUWdySHXZyGBVRoHyEzjygMYZoblSXXCWuYEmx+T1u73Di1tE0mA== dependencies: abstract-leveldown "3.0.0" async "2.6.1" @@ -6353,32 +6319,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hast-util-from-parse5@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.1.tgz#7da8841d707dcf7be73715f7f3b14e021c4e469a" - integrity sha512-UfPzdl6fbxGAxqGYNThRUhRlDYY7sXu6XU9nQeX4fFZtV+IHbyEJtd+DUuwOqNV4z3K05E/1rIkoVr/JHmeWWA== - dependencies: - ccount "^1.0.3" - hastscript "^5.0.0" - property-information "^5.0.0" - web-namespaces "^1.1.2" - xtend "^4.0.1" - -hast-util-parse-selector@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.2.tgz#66aabccb252c47d94975f50a281446955160380b" - integrity sha512-jIMtnzrLTjzqgVEQqPEmwEZV+ea4zHRFTP8Z2Utw0I5HuBOXHzUPPQWr6ouJdJqDKLbFU/OEiYwZ79LalZkmmw== - -hastscript@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.0.tgz#a19b3cca6a26a2bcd0f1b1eac574af9427c1c7df" - integrity sha512-7mOQX5VfVs/gmrOGlN8/EDfp1GqV6P3gTNVt+KnX4gbYhpASTM8bklFdFQCbFRAadURXAmw0R1QQdBdqp7jswQ== - dependencies: - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.2.0" - property-information "^5.0.1" - space-separated-tokens "^1.0.0" - hdkey@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-0.7.1.tgz#caee4be81aa77921e909b8d228dd0f29acaee632" @@ -6837,11 +6777,16 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.0, ipaddr.js@^1.9.0: +ipaddr.js@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== +ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -6883,11 +6828,6 @@ is-buffer@^1.0.2, is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== - is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -7133,10 +7073,10 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-what@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.2.3.tgz#50f76f1bd8e56967e15765d1d34302513701997b" - integrity sha512-c4syLgFnjXTH5qd82Fp/qtUIeM0wA69xbI0KH1QpurMIvDaZFrS8UtAa4U52Dc2qSznaMxHit0gErMp6A/Qk1w== +is-what@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.2.4.tgz#da528659017bdd4b07892dfe4fd60da6ac500e98" + integrity sha512-0awkPsfVd85bYStP99EqLxKvhc5SiE70hSZCPxJN2SYZ5d+IkX+r1Ri0qnPWPnuRVFrqrEnI3JgFN3yrGtjXaw== is-windows@^1.0.2: version "1.0.2" @@ -8211,10 +8151,10 @@ lodash@=4.17.4: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= -"lodash@>=3.5 <5", lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.4, lodash@^4.17.5: - version "4.17.14" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" - integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== +"lodash@>=3.5 <5", lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== loglevel@^1.4.1: version "1.6.3" @@ -8327,6 +8267,11 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + mdn-data@~1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" @@ -8372,11 +8317,11 @@ memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: readable-stream "^2.0.1" merge-anything@^2.2.4: - version "2.2.5" - resolved "https://registry.yarnpkg.com/merge-anything/-/merge-anything-2.2.5.tgz#37ef13f36359ee64f09c657d2cef45f7e29493f9" - integrity sha512-WgZGR7EQ1D8pyh57uKBbkPhUCJZLGdMzbDaxL4MDTJSGsvtpGdm8myr6DDtgJwT46xiFBlHqxbveDRpFBWlKWQ== + version "2.4.0" + resolved "https://registry.yarnpkg.com/merge-anything/-/merge-anything-2.4.0.tgz#86959caf02bb8969d1ae5e1b652862bc5fe54e44" + integrity sha512-MhJcPOEcDUIbwU0LnEfx5S9s9dfQ/KPu4g2UA5T5G1LRKS0XmpDvJ9+UUfTkfhge+nA1gStE4tJAvx6lXLs+rg== dependencies: - is-what "^3.2.3" + is-what "^3.2.4" merge-deep@^3.0.2: version "3.0.2" @@ -9338,7 +9283,7 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== -parse5@5.1.0, parse5@^5.0.0: +parse5@5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== @@ -9529,9 +9474,9 @@ popper.js@1.14.3: integrity sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU= portfinder@^1.0.9: - version "1.0.20" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" - integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== + version "1.0.21" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.21.tgz#60e1397b95ac170749db70034ece306b9a27e324" + integrity sha512-ESabpDCzmBS3ekHbmpAIiESq3udRsCBGiBZLsC+HgBKv2ezb0R4oG+7RnYEVZ/ZCfhel5Tx3UzdNWA0Lox2QCA== dependencies: async "^1.5.2" debug "^2.2.0" @@ -10320,13 +10265,6 @@ prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" -property-information@^5.0.0, property-information@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.1.0.tgz#e4755eee5319f03f7f6f5a9bc1a6a7fea6609e2c" - integrity sha512-tODH6R3+SwTkAQckSp2S9xyYX8dEKYkeXw+4TmJzTxnNzd6mQPu1OD4f9zPrvw/Rm4wpPgI+Zp63mNSGNzUgHg== - dependencies: - xtend "^4.0.1" - proxy-addr@~2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" @@ -10607,9 +10545,9 @@ react-dev-utils@^9.0.1: text-table "0.2.0" react-device-detect@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/react-device-detect/-/react-device-detect-1.6.2.tgz#2587e4d1dc15bdfce7a1bf5417624ecd2a2fc31f" - integrity sha512-XIBgwIfpGAknm7tXe/YNbx4ieIR7IyFI3KNfSQk4UjHVy97UHe/nB7iJj8R/dDsI+I/ZzPR4HJ39Gh5tI4nhxw== + version "1.6.5" + resolved "https://registry.yarnpkg.com/react-device-detect/-/react-device-detect-1.6.5.tgz#a613e5bbf70ff381de94891bb32551f201296a24" + integrity sha512-ZQR6BR3/x78gz7M8QB7qfqYUo//XOElX59iPblPpO/N63zpLhQbzfHYXx+zyGDSUICGrSqJU9T8xdEChbU9pMg== react-dom@^16.8.6: version "16.8.6" @@ -10901,7 +10839,7 @@ regenerate@^1.2.1, regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -regenerator-runtime@0.13.2, regenerator-runtime@^0.13.2: +regenerator-runtime@0.13.2: version "0.13.2" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== @@ -10911,6 +10849,11 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -10921,9 +10864,9 @@ regenerator-transform@^0.10.0: private "^0.1.6" regenerator-transform@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf" - integrity sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== dependencies: private "^0.1.6" @@ -10990,15 +10933,6 @@ regjsparser@^0.6.0: dependencies: jsesc "~0.5.0" -rehype-parse@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.1.tgz#a5401d7f4144d5e17cbb69be11f05a2a7ba87e27" - integrity sha512-FrGSbOzcGxIvWty1qHjKTvHT4WBTt7C6JLs65EkvFPa7ZKraSmsoDDj6al1eBxaXS1t/kiGdPYazUe58Mgflgw== - dependencies: - hast-util-from-parse5 "^5.0.0" - parse5 "^5.0.0" - xtend "^4.0.1" - relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -11037,11 +10971,6 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - request-promise-core@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" @@ -11758,11 +11687,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -space-separated-tokens@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz#27910835ae00d0adfcdbd0ad7e611fb9544351fa" - integrity sha512-UyhMSmeIqZrQn2UdjYpxEkwY9JUrn8pP+7L4f91zRzOQuI8MF1FGLfYU9DKCYeLdo7LXMxwrX5zKFy7eeeVHuA== - spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" @@ -12113,17 +12037,21 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +svg-parser@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.1.tgz#2379e84748b31fad7bf80913e173492f3bcc9f20" + integrity sha512-8eUnCsU2sc2hyfvjK++zi5u24a2UQIB2DK9GY/cprGlaDr7SIhm9F0m9CkGYOnOgrK3iTUSnJ7M1DTLqqZt96g== + svgo@^1.0.0, svgo@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316" - integrity sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" + integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== dependencies: chalk "^2.4.1" coa "^2.0.2" css-select "^2.0.0" css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.28" - css-url-regex "^1.1.0" + css-tree "1.0.0-alpha.33" csso "^3.5.1" js-yaml "^3.13.1" mkdirp "~0.5.1" @@ -12158,12 +12086,12 @@ symbol-tree@^3.2.2: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^5.2.3: - version "5.4.1" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8" - integrity sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w== + version "5.4.4" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz#6e0f88fdae3692793d1077fd172a4667afe986a6" + integrity sha512-IIfEAUx5QlODLblLrGTTLJA7Tk0iLSGBvgY8essPRVNGHAzThujww1YqHLs6h3HfTg55h++RzLHH5Xw/rfv+mg== dependencies: - ajv "^6.9.1" - lodash "^4.17.11" + ajv "^6.10.2" + lodash "^4.17.14" slice-ansi "^2.1.0" string-width "^3.0.0" @@ -12365,9 +12293,9 @@ timsort@^0.3.0: integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-invariant@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.5.tgz#0d198cf4f50ba34b28a16d8b28dcc4b02b813c44" - integrity sha512-BziszNEQNwtyMS9OVJia2LK9N9b6VJ35kBrvhDDDpr4hreLYqhCie15dB35uZMdqv9ZTQ55GHQtkz2FnleTHIA== + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== tiny-warning@^1.0.0, tiny-warning@^1.0.2: version "1.0.3" @@ -12469,11 +12397,6 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -trough@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" - integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== - ts-pnp@1.1.2, ts-pnp@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.2.tgz#be8e4bfce5d00f0f58e0666a82260c34a57af552" @@ -12629,20 +12552,6 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== -unified@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" - integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw== - dependencies: - "@types/unist" "^2.0.0" - "@types/vfile" "^3.0.0" - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^3.0.0" - x-is-string "^0.1.0" - union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -12677,18 +12586,6 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== - -unist-util-stringify-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz#de2a2bc8d3febfa606652673a91455b6a36fb9f3" - integrity sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA== - dependencies: - "@types/unist" "^2.0.2" - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -12894,42 +12791,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-message@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" - integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile-message@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.1.tgz#951881861c22fc1eb39f873c0b93e336a64e8f6d" - integrity sha512-KtasSV+uVU7RWhUn4Lw+wW1Zl/nW8JWx7JCPps10Y9JRRIDeDXf8wfBLoOSsJLyo27DqMyAi54C6Jf/d6Kr2Bw== - dependencies: - "@types/unist" "^2.0.2" - unist-util-stringify-position "^2.0.0" - -vfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" - integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ== - dependencies: - is-buffer "^2.0.0" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vfile@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.1.tgz#fc3d43a1c71916034216bf65926d5ee3c64ed60c" - integrity sha512-lRHFCuC4SQBFr7Uq91oJDJxlnftoTLQ7eKIpMdubhYcVMho4781a8MWXLy3qZrZ0/STD1kRiKc0cQOHm4OkPeA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - replace-ext "1.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - vm-browserify@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" @@ -12979,11 +12840,6 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web-namespaces@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.3.tgz#9bbf5c99ff0908d2da031f1d732492a96571a83f" - integrity sha512-r8sAtNmgR0WKOKOxzuSgk09JsHlpKlB+uHi937qypOu3PZ17UxPrierFKDye/uNHjNTTEshu5PId8rojIPj/tA== - web3-bzz@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.35.tgz#9d5e1362b3db2afd77d65619b7cd46dd5845c192" @@ -13684,11 +13540,6 @@ ws@^6.1.2: dependencies: async-limiter "~1.0.0" -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= - xhr-request-promise@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz#343c44d1ee7726b8648069682d0f840c83b4261d" From 12ab73d6c9024c77fa7f6957cc73ae555cd2040a Mon Sep 17 00:00:00 2001 From: Mounir Benchemled Date: Wed, 24 Jul 2019 16:26:17 +0200 Subject: [PATCH 3/6] Feature/ropsten (#370) * Refactoring AddLiquidity to make gasLimit computation more clear --- src/pages/Pool/AddLiquidity.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/Pool/AddLiquidity.js b/src/pages/Pool/AddLiquidity.js index f616f40122..41b2821ad6 100644 --- a/src/pages/Pool/AddLiquidity.js +++ b/src/pages/Pool/AddLiquidity.js @@ -362,6 +362,7 @@ export default function AddLiquidity() { }) const deadline = Math.ceil(Date.now() / 1000) + DEADLINE_FROM_NOW + const estimatedGasLimit = await exchangeContract.estimate.addLiquidity( isNewExchange ? ethers.constants.Zero : liquidityTokensMin, isNewExchange ? outputValueParsed : outputValueMax, @@ -371,6 +372,8 @@ export default function AddLiquidity() { } ) + const gasLimit = calculateGasMargin(estimatedGasLimit, GAS_MARGIN) + exchangeContract .addLiquidity( isNewExchange ? ethers.constants.Zero : liquidityTokensMin, @@ -378,7 +381,7 @@ export default function AddLiquidity() { deadline, { value: inputValueParsed, - gasLimit: calculateGasMargin(estimatedGasLimit, GAS_MARGIN) + gasLimit } ) .then(response => { From 12344f74ef9cb0a06e7533eaddf5fa133eb7ccf1 Mon Sep 17 00:00:00 2001 From: Noah Zinsmeister Date: Fri, 26 Jul 2019 18:02:48 -0400 Subject: [PATCH 4/6] add localstorage support (#374) * add localstorage support * remove connect arrow * invert rates to start --- src/components/NavigationTabs/index.js | 2 +- src/components/Web3Status/index.js | 10 +-- src/contexts/Application.js | 26 +------- src/contexts/LocalStorage.js | 90 ++++++++++++++++++++++++++ src/index.js | 22 ++++--- src/pages/Send/index.js | 4 +- src/pages/Swap/index.js | 4 +- 7 files changed, 110 insertions(+), 48 deletions(-) create mode 100644 src/contexts/LocalStorage.js diff --git a/src/components/NavigationTabs/index.js b/src/components/NavigationTabs/index.js index c5f755a50d..cf129ccee0 100644 --- a/src/components/NavigationTabs/index.js +++ b/src/components/NavigationTabs/index.js @@ -5,7 +5,7 @@ import styled from 'styled-components' import { transparentize, darken } from 'polished' import { useBodyKeyDown } from '../../hooks' -import { useBetaMessageManager } from '../../contexts/Application' +import { useBetaMessageManager } from '../../contexts/LocalStorage' const tabOrder = [ { diff --git a/src/components/Web3Status/index.js b/src/components/Web3Status/index.js index 0b3461fe1b..9b8a9c00ea 100644 --- a/src/components/Web3Status/index.js +++ b/src/components/Web3Status/index.js @@ -5,7 +5,7 @@ import { useWeb3Context, Connectors } from 'web3-react' import { darken, transparentize } from 'polished' import Jazzicon from 'jazzicon' import { ethers } from 'ethers' -import { Activity, ArrowRight } from 'react-feather' +import { Activity } from 'react-feather' import { shortenAddress } from '../../utils' import { useENSName } from '../../hooks' @@ -91,13 +91,6 @@ const NetworkIcon = styled(Activity)` height: 16px; ` -const ArrowIcon = styled(ArrowRight)` - margin-left: 0.25rem; - margin-right: 0.5rem; - width: 16px; - height: 16px; -` - const SpinnerWrapper = styled(Spinner)` margin: 0 0.25rem 0 0.25rem; ` @@ -251,7 +244,6 @@ export default function Web3Status() { return ( {t('Connect')} - ) } else { diff --git a/src/contexts/Application.js b/src/contexts/Application.js index 0edfa3eec6..9a38932ee3 100644 --- a/src/contexts/Application.js +++ b/src/contexts/Application.js @@ -2,10 +2,8 @@ import React, { createContext, useContext, useReducer, useMemo, useCallback, use import { useWeb3Context } from 'web3-react' import { safeAccess } from '../utils' -const SHOW_BETA_MESSAGE = 'SHOW_BETA_MESSAGE' const BLOCK_NUMBERS = 'BLOCK_NUMBERS' -const DISMISS_BETA_MESSAGE = 'DISMISS_BETA_MESSAGE' const UPDATE_BLOCK_NUMBER = 'UPDATE_BLOCK_NUMBER' const ApplicationContext = createContext() @@ -16,12 +14,6 @@ function useApplicationContext() { function reducer(state, { type, payload }) { switch (type) { - case DISMISS_BETA_MESSAGE: { - return { - ...state, - [SHOW_BETA_MESSAGE]: false - } - } case UPDATE_BLOCK_NUMBER: { const { networkId, blockNumber } = payload return { @@ -40,25 +32,15 @@ function reducer(state, { type, payload }) { export default function Provider({ children }) { const [state, dispatch] = useReducer(reducer, { - [SHOW_BETA_MESSAGE]: true, [BLOCK_NUMBERS]: {} }) - const dismissBetaMessage = useCallback(() => { - dispatch({ type: DISMISS_BETA_MESSAGE }) - }, []) const updateBlockNumber = useCallback((networkId, blockNumber) => { dispatch({ type: UPDATE_BLOCK_NUMBER, payload: { networkId, blockNumber } }) }, []) return ( - [state, { dismissBetaMessage, updateBlockNumber }], [ - state, - dismissBetaMessage, - updateBlockNumber - ])} - > + [state, { updateBlockNumber }], [state, updateBlockNumber])}> {children} ) @@ -101,12 +83,6 @@ export function Updater() { return null } -export function useBetaMessageManager() { - const [state, { dismissBetaMessage }] = useApplicationContext() - - return [safeAccess(state, [SHOW_BETA_MESSAGE]), dismissBetaMessage] -} - export function useBlockNumber() { const { networkId } = useWeb3Context() diff --git a/src/contexts/LocalStorage.js b/src/contexts/LocalStorage.js new file mode 100644 index 0000000000..cc5a3e1e3d --- /dev/null +++ b/src/contexts/LocalStorage.js @@ -0,0 +1,90 @@ +import React, { createContext, useContext, useReducer, useMemo, useCallback, useEffect } from 'react' + +const UNISWAP = 'UNISWAP' + +const VERSION = 'VERSION' +const CURRENT_VERSION = 0 +const LAST_SAVED = 'LAST_SAVED' + +const BETA_MESSAGE_DISMISSED = 'BETA_MESSAGE_DISMISSED' +const UPDATABLE_KEYS = [BETA_MESSAGE_DISMISSED] + +const UPDATE_KEY = 'UPDATE_KEY' + +const LocalStorageContext = createContext() + +function useLocalStorageContext() { + return useContext(LocalStorageContext) +} + +function reducer(state, { type, payload }) { + switch (type) { + case UPDATE_KEY: { + const { key, value } = payload + if (!UPDATABLE_KEYS.some(k => k === key)) { + throw Error(`Unexpected key in LocalStorageContext reducer: '${key}'.`) + } else { + return { + ...state, + [key]: value + } + } + } + default: { + throw Error(`Unexpected action type in LocalStorageContext reducer: '${type}'.`) + } + } +} + +function init() { + const defaultLocalStorage = { + [VERSION]: CURRENT_VERSION, + [BETA_MESSAGE_DISMISSED]: false + } + + try { + const parsed = JSON.parse(window.localStorage.getItem(UNISWAP)) + if (parsed[VERSION] !== CURRENT_VERSION) { + // this is where we could run migration logic + return defaultLocalStorage + } else { + return parsed + } + } catch { + return defaultLocalStorage + } +} + +export default function Provider({ children }) { + const [state, dispatch] = useReducer(reducer, undefined, init) + + const updateKey = useCallback((key, value) => { + dispatch({ type: UPDATE_KEY, payload: { key, value } }) + }, []) + + return ( + [state, { updateKey }], [state, updateKey])}> + {children} + + ) +} + +export function Updater() { + const [state] = useLocalStorageContext() + + useEffect(() => { + window.localStorage.setItem(UNISWAP, JSON.stringify({ ...state, [LAST_SAVED]: Math.floor(Date.now() / 1000) })) + }) + + return null +} + +export function useBetaMessageManager() { + const [state, { updateKey }] = useLocalStorageContext() + + const dismissBetaMessage = useCallback(() => { + updateKey(BETA_MESSAGE_DISMISSED, true) + }, [updateKey]) + + return [!state[BETA_MESSAGE_DISMISSED], dismissBetaMessage] +} diff --git a/src/index.js b/src/index.js index 04b4a122a2..62bb4beec7 100644 --- a/src/index.js +++ b/src/index.js @@ -4,6 +4,7 @@ import ReactGA from 'react-ga' import Web3Provider, { Connectors } from 'web3-react' import ThemeProvider, { GlobalStyle } from './theme' +import LocalStorageContextProvider, { Updater as LocalStorageContextUpdater } from './contexts/LocalStorage' import ApplicationContextProvider, { Updater as ApplicationContextUpdater } from './contexts/Application' import TransactionContextProvider, { Updater as TransactionContextUpdater } from './contexts/Transactions' import TokensContextProvider from './contexts/Tokens' @@ -29,21 +30,24 @@ const connectors = { Injected, Network } function ContextProviders({ children }) { return ( - - - - - {children} - - - - + + + + + + {children} + + + + + ) } function Updaters() { return ( <> + diff --git a/src/pages/Send/index.js b/src/pages/Send/index.js index 420bcf87b5..a4aff69e5a 100644 --- a/src/pages/Send/index.js +++ b/src/pages/Send/index.js @@ -760,13 +760,13 @@ export default function Swap({ initialCurrency }) { {inverted ? ( {exchangeRate - ? `1 ${outputSymbol} = ${amountFormatter(exchangeRateInverted, 18, 4, false)} ${inputSymbol}` + ? `1 ${inputSymbol} = ${amountFormatter(exchangeRate, 18, 4, false)} ${outputSymbol}` : ' - '} ) : ( {exchangeRate - ? `1 ${inputSymbol} = ${amountFormatter(exchangeRate, 18, 4, false)} ${outputSymbol}` + ? `1 ${outputSymbol} = ${amountFormatter(exchangeRateInverted, 18, 4, false)} ${inputSymbol}` : ' - '} )} diff --git a/src/pages/Swap/index.js b/src/pages/Swap/index.js index da34645ebf..bc777de69b 100644 --- a/src/pages/Swap/index.js +++ b/src/pages/Swap/index.js @@ -731,13 +731,13 @@ export default function Swap({ initialCurrency }) { {inverted ? ( {exchangeRate - ? `1 ${outputSymbol} = ${amountFormatter(exchangeRateInverted, 18, 4, false)} ${inputSymbol}` + ? `1 ${inputSymbol} = ${amountFormatter(exchangeRate, 18, 4, false)} ${outputSymbol}` : ' - '} ) : ( {exchangeRate - ? `1 ${inputSymbol} = ${amountFormatter(exchangeRate, 18, 4, false)} ${outputSymbol}` + ? `1 ${outputSymbol} = ${amountFormatter(exchangeRateInverted, 18, 4, false)} ${inputSymbol}` : ' - '} )} From 30887ef1fcc2dc8977a1c38ff3fd1f5374d18ea8 Mon Sep 17 00:00:00 2001 From: Ian Lapham Date: Fri, 26 Jul 2019 18:11:35 -0400 Subject: [PATCH 5/6] Add slippage option (#369) * add custom slippage to /swap --- public/locales/en.json | 3 +- src/assets/images/question-mark.svg | 4 + src/assets/images/question.svg | 4 + src/components/AddressInputPanel/index.js | 2 +- src/components/ContextualInfoNew/index.js | 11 +- src/components/CurrencyInputPanel/index.js | 6 +- src/components/NavigationTabs/index.js | 4 +- src/components/TransactionDetails/index.js | 571 +++++++++++++++++++++ src/pages/Pool/ModeSelector.js | 2 +- src/pages/Send/index.js | 2 +- src/pages/Swap/index.js | 179 ++----- src/theme/index.js | 4 + 12 files changed, 647 insertions(+), 145 deletions(-) create mode 100644 src/assets/images/question-mark.svg create mode 100644 src/assets/images/question.svg create mode 100644 src/components/TransactionDetails/index.js diff --git a/public/locales/en.json b/public/locales/en.json index 81d36251ee..61de6b81d2 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -80,5 +80,6 @@ "symbol": "Symbol", "decimals": "Decimals", "enterTokenCont": "Enter a token address to continue", - "priceChange": "This trade will cause the price to change by" + "priceChange": "Expected price slippage", + "forAtLeast" : "for at least " } diff --git a/src/assets/images/question-mark.svg b/src/assets/images/question-mark.svg new file mode 100644 index 0000000000..29d163bfdb --- /dev/null +++ b/src/assets/images/question-mark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/question.svg b/src/assets/images/question.svg new file mode 100644 index 0000000000..ae879eddad --- /dev/null +++ b/src/assets/images/question.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/AddressInputPanel/index.js b/src/components/AddressInputPanel/index.js index 530187f93d..85016d308c 100644 --- a/src/components/AddressInputPanel/index.js +++ b/src/components/AddressInputPanel/index.js @@ -21,7 +21,7 @@ const ContainerRow = styled.div` justify-content: center; align-items: center; border-radius: 1.25rem; - box-shadow: 0 0 0 0.5px ${({ error, theme }) => (error ? theme.salmonRed : theme.mercuryGray)}; + box-shadow: 0 0 0 1px ${({ error, theme }) => (error ? theme.salmonRed : theme.mercuryGray)}; background-color: ${({ theme }) => theme.white}; transition: box-shadow 200ms ease-in-out; ` diff --git a/src/components/ContextualInfoNew/index.js b/src/components/ContextualInfoNew/index.js index 75888f0cd4..44c30d13e2 100644 --- a/src/components/ContextualInfoNew/index.js +++ b/src/components/ContextualInfoNew/index.js @@ -32,10 +32,10 @@ const SummaryWrapperContainer = styled.div` const Details = styled.div` background-color: ${({ theme }) => theme.concreteGray}; - padding: 1.5rem; + /* padding: 1.25rem 1.25rem 1rem 1.25rem; */ border-radius: 1rem; font-size: 0.75rem; - margin-top: 1rem; + margin: 1rem 0.5rem 0 0.5rem; ` const ErrorSpan = styled.span` @@ -89,13 +89,12 @@ export default function ContextualInfo({ closeDetailsText = 'Hide Details', contextualInfo = '', allowExpand = false, - renderTransactionDetails = () => {}, isError = false, slippageWarning, - highSlippageWarning + highSlippageWarning, + dropDownContent }) { const [showDetails, setShowDetails] = useState(false) - return !allowExpand ? ( {contextualInfo} ) : ( @@ -117,7 +116,7 @@ export default function ContextualInfo({ )} - {showDetails &&
{renderTransactionDetails()}
} + {showDetails &&
{dropDownContent()}
} ) } diff --git a/src/components/CurrencyInputPanel/index.js b/src/components/CurrencyInputPanel/index.js index b3147869a5..17211a7bd7 100644 --- a/src/components/CurrencyInputPanel/index.js +++ b/src/components/CurrencyInputPanel/index.js @@ -70,7 +70,7 @@ const CurrencySelect = styled.button` } :focus { - box-shadow: 0 0 0.5px 0.5px ${({ theme }) => theme.malibuBlue}; + box-shadow: 0 0 1px 1px ${({ theme }) => theme.malibuBlue}; } :active { @@ -104,12 +104,12 @@ const InputPanel = styled.div` const Container = styled.div` border-radius: 1.25rem; - box-shadow: 0 0 0 0.5px ${({ error, theme }) => (error ? theme.salmonRed : theme.mercuryGray)}; + box-shadow: 0 0 0 1px ${({ error, theme }) => (error ? theme.salmonRed : theme.mercuryGray)}; background-color: ${({ theme }) => theme.white}; transition: box-shadow 200ms ease-in-out; :focus-within { - box-shadow: 0 0 0.5px 0.5px ${({ theme }) => theme.malibuBlue}; + box-shadow: 0 0 1px 1px ${({ theme }) => theme.malibuBlue}; } ` diff --git a/src/components/NavigationTabs/index.js b/src/components/NavigationTabs/index.js index cf129ccee0..b9e16677a7 100644 --- a/src/components/NavigationTabs/index.js +++ b/src/components/NavigationTabs/index.js @@ -84,11 +84,11 @@ const StyledNavLink = styled(NavLink).attrs({ &.${activeClassName} { background-color: ${({ theme }) => theme.white}; border-radius: 3rem; - box-shadow: 0 0 0.5px 1px ${({ theme }) => theme.mercuryGray}; + box-shadow: 0 0 1px 1px ${({ theme }) => theme.mercuryGray}; font-weight: 500; color: ${({ theme }) => theme.royalBlue}; :hover { - box-shadow: 0 0 0.5px 1px ${({ theme }) => darken(0.1, theme.mercuryGray)}; + box-shadow: 0 0 1px 1px ${({ theme }) => darken(0.1, theme.mercuryGray)}; } } diff --git a/src/components/TransactionDetails/index.js b/src/components/TransactionDetails/index.js new file mode 100644 index 0000000000..ebafec539b --- /dev/null +++ b/src/components/TransactionDetails/index.js @@ -0,0 +1,571 @@ +import React, { useState, useEffect, useRef } from 'react' +import { useTranslation } from 'react-i18next' +import styled, { css, keyframes } from 'styled-components' +import { transparentize, darken } from 'polished' +import { amountFormatter } from '../../utils' +import { useDebounce } from '../../hooks' + +import question from '../../assets/images/question.svg' + +import NewContextualInfo from '../../components/ContextualInfoNew' + +const WARNING_TYPE = Object.freeze({ + none: 'none', + emptyInput: 'emptyInput', + invalidEntryBound: 'invalidEntryBound', + riskyEntryHigh: 'riskyEntryHigh', + riskyEntryLow: 'riskyEntryLow' +}) + +const b = text => {text} + +const Flex = styled.div` + display: flex; + justify-content: center; +` + +const FlexBetween = styled.div` + display: flex; + justify-content: space-between; + align-items: center; + height: 100%; +` + +const WrappedSlippageRow = ({ wrap, ...rest }) => +const SlippageRow = styled(WrappedSlippageRow)` + position: relative; + flex-wrap: ${({ wrap }) => wrap && 'wrap'}; + flex-direction: row; + justify-content: flex-start; + align-items: center; + width: 100%; + padding: 0; + padding-top: ${({ wrap }) => wrap && '0.25rem'}; +` + +const QuestionWrapper = styled.button` + display: flex; + align-items: center; + justify-content: center; + margin: 0; + padding: 0; + margin-left: 0.4rem; + padding: 0.2rem; + border: none; + background: none; + outline: none; + cursor: default; + border-radius: 36px; + + :hover, + :focus { + opacity: 0.7; + } +` + +const HelpCircleStyled = styled.img` + height: 18px; + width: 18px; +` + +const fadeIn = keyframes` + from { + opacity : 0; + } + + to { + opacity : 1; + } +` + +const Popup = styled(Flex)` + position: absolute; + width: 228px; + left: -78px; + top: -124px; + flex-direction: column; + align-items: center; + padding: 0.6rem 1rem; + line-height: 150%; + background: ${({ theme }) => theme.charcoalBlack}; + border-radius: 8px; + + animation: ${fadeIn} 0.15s linear; + + color: white; + font-style: italic; + + ${({ theme }) => theme.mediaWidth.upToSmall` + left: -20px; + `} +` + +const FancyButton = styled.button` + align-items: center; + min-width: 55px; + height: 2rem; + border-radius: 36px; + border: 1px solid ${({ theme }) => theme.mercuryGray}; + outline: none; + background: ${({ theme }) => theme.white}; + + :hover { + cursor: inherit; + border: 1px solid ${({ theme }) => theme.royalBlue}; + box-shadow: ${({ theme }) => transparentize(0.6, theme.royalBlue)} 0px 0px 0px 2px; + } + :focus { + box-shadow: ${({ theme }) => transparentize(0.6, theme.royalBlue)} 0px 0px 0px 2px; + } +` + +const Option = styled(FancyButton)` + margin-right: 8px; + margin-top: 6px; + + ${({ active, theme }) => + active && + css` + background-color: ${({ theme }) => theme.royalBlue}; + color: ${({ theme }) => theme.white}; + border: none; + `} +` + +const OptionLarge = styled(Option)` + width: 120px; +` + +const Input = styled.input` + background: ${({ theme }) => theme.white}; + flex-grow: 1; + + outline: none; + box-sizing: border-box; + + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + -webkit-appearance: none; + } + + cursor: inherit; + + color: ${({ theme }) => theme.doveGray}; + text-align: left; + ${({ active }) => + active && + css` + color: initial; + cursor: initial; + text-align: right; + `} + + ${({ placeholder }) => + placeholder !== 'Custom' && + css` + text-align: right; + `} + + ${({ color }) => + color === 'red' && + css` + color: ${({ theme }) => theme.salmonRed}; + `} +` + +const BottomError = styled.div` + ${({ show }) => + show && + css` + padding-top: 12px; + `} + color: ${({ theme }) => theme.doveGray}; + ${({ color }) => + color === 'red' && + css` + color: ${({ theme }) => theme.salmonRed}; + `} +` + +const OptionCustom = styled(FancyButton)` + height: 2rem; + position: relative; + width: 120px; + margin-top: 6px; + padding: 0 0.75rem; + + ${({ active }) => + active && + css` + border: 1px solid ${({ theme }) => theme.royalBlue}; + `} + + ${({ color }) => + color === 'red' && + css` + border: 1px solid ${({ theme }) => theme.salmonRed}; + `} + + input { + width: 100%; + height: 100%; + border: 0px; + border-radius: 2rem; + } +` + +const Bold = styled.span` + font-weight: 500; +` + +const LastSummaryText = styled.div` + margin-top: 0.6rem; +` + +const SlippageSelector = styled.div` + background-color: ${({ theme }) => darken(0.04, theme.concreteGray)}; + padding: 1rem 1.25rem 1rem 1.25rem; + border-radius: 12px; +` + +const Percent = styled.div` + color: inherit; + font-size: 0, 8rem; + flex-grow: 0; + + ${({ color, theme }) => + (color === 'faded' && + css` + color: ${theme.doveGray}; + `) || + (color === 'red' && + css` + color: ${theme.salmonRed}; + `)}; +` + +const Faded = styled.span` + opacity: 0.7; +` + +const TransactionInfo = styled.div` + padding: 1.25rem 1.25rem 1rem 1.25rem; +` + +export default function TransactionDetails(props) { + const { t } = useTranslation() + + const [activeIndex, setActiveIndex] = useState(3) + + const [warningType, setWarningType] = useState(WARNING_TYPE.none) + + const inputRef = useRef() + + const [showPopup, setPopup] = useState(false) + + const [userInput, setUserInput] = useState('') + const debouncedInput = useDebounce(userInput, 150) + + useEffect(() => { + if (activeIndex === 4) { + checkBounds(debouncedInput) + } + }) + + function renderSummary() { + let contextualInfo = '' + let isError = false + + if (props.inputError || props.independentError) { + contextualInfo = props.inputError || props.independentError + isError = true + } else if (!props.inputCurrency || !props.outputCurrency) { + contextualInfo = t('selectTokenCont') + } else if (!props.independentValue) { + contextualInfo = t('enterValueCont') + } else if (!props.account) { + contextualInfo = t('noWallet') + isError = true + } + + const slippageWarningText = props.highSlippageWarning + ? t('highSlippageWarning') + : props.slippageWarning + ? t('slippageWarning') + : '' + + return ( + + ) + } + + const dropDownContent = () => { + return ( + <> + {renderTransactionDetails()} + + + Limit additional price slippage + { + setPopup(!showPopup) + }} + onMouseEnter={() => { + setPopup(true) + }} + onMouseLeave={() => { + setPopup(false) + }} + > + + + {showPopup ? ( + + Lowering this limit decreases your risk of frontrunning. However, this makes it more likely that your + transaction will fail due to normal price movements. + + ) : ( + '' + )} + + + + + { + setFromFixed(3, 1) + }} + active={activeIndex === 3} + > + 1% (suggested) + + { + setFromCustom() + }} + > + + {!(warningType === WARNING_TYPE.none || warningType === WARNING_TYPE.emptyInput) && ( + + ⚠️ + + )} + + + % + + + + + + + {activeIndex === 4 && warningType.toString() === 'none' && 'Custom slippage value entered'} + {warningType === WARNING_TYPE.emptyInput && 'Enter a slippage percentage.'} + {warningType === WARNING_TYPE.invalidEntryBound && 'Please select value less than 50%'} + {warningType === WARNING_TYPE.riskyEntryHigh && 'Your transaction may be frontrun.'} + {warningType === WARNING_TYPE.riskyEntryLow && 'Your transaction may fail.'} + + + + + ) + } + + const setFromCustom = () => { + setActiveIndex(4) + inputRef.current.focus() + // if there's a value, evaluate the bounds + checkBounds(userInput) + } + + // used for slippage presets + const setFromFixed = (index, slippage) => { + // update slippage in parent, reset errors and input state + updateSlippage(slippage) + setWarningType(WARNING_TYPE.none) + setActiveIndex(index) + props.setcustomSlippageError('valid`') + } + + const checkBounds = slippageValue => { + setWarningType(WARNING_TYPE.none) + props.setcustomSlippageError('valid') + + if (slippageValue === '') { + props.setcustomSlippageError('invalid') + return setWarningType(WARNING_TYPE.emptyInput) + } + + // check bounds and set errors + if (slippageValue < 0 || slippageValue > 50) { + props.setcustomSlippageError('invalid') + return setWarningType(WARNING_TYPE.invalidEntryBound) + } + if (slippageValue >= 0 && slippageValue < 0.1) { + props.setcustomSlippageError('valid') + setWarningType(WARNING_TYPE.riskyEntryLow) + } + if (slippageValue > 5) { + props.setcustomSlippageError('warning') + setWarningType(WARNING_TYPE.riskyEntryHigh) + } + //update the actual slippage value in parent + updateSlippage(slippageValue) + } + + // check that the theyve entered number and correct decimal + const parseInput = e => { + let input = e.target.value + + // restrict to 2 decimal places + let acceptableValues = [/^$/, /^\d{1,2}$/, /^\d{0,2}\.\d{0,2}$/] + // if its within accepted decimal limit, update the input state + if (acceptableValues.some(a => a.test(input))) { + setUserInput(input) + } + } + + const updateSlippage = newSlippage => { + // round to 2 decimals to prevent ethers error + let numParsed = parseFloat((newSlippage * 100).toFixed(2)) + + // set both slippage values in parents + props.setRawSlippage(numParsed) + props.setRawTokenSlippage(numParsed) + } + + const renderTransactionDetails = () => { + if (props.independentField === props.INPUT) { + return ( + +
+ {t('youAreSelling')}{' '} + {b( + `${amountFormatter( + props.independentValueParsed, + props.independentDecimals, + Math.min(4, props.independentDecimals) + )} ${props.inputSymbol}` + )}{' '} + {t('forAtLeast')} + {b( + `${amountFormatter( + props.dependentValueMinumum, + props.dependentDecimals, + Math.min(4, props.dependentDecimals) + )} ${props.outputSymbol}` + )} + . +
+ + {t('priceChange')} {b(`${props.percentSlippageFormatted}%`)}. + +
+ ) + } else { + return ( + +
+ {t('youAreBuying')}{' '} + {b( + `${amountFormatter( + props.independentValueParsed, + props.independentDecimals, + Math.min(4, props.independentDecimals) + )} ${props.outputSymbol}` + )} + . +
+ + {t('itWillCost')}{' '} + {b( + `${amountFormatter( + props.dependentValueMaximum, + props.dependentDecimals, + Math.min(4, props.dependentDecimals) + )} ${props.inputSymbol}` + )}{' '} + {t('orTransFail')} + + + {t('priceChange')} {b(`${props.percentSlippageFormatted}%`)}. + +
+ ) + } + } + return <>{renderSummary()} +} diff --git a/src/pages/Pool/ModeSelector.js b/src/pages/Pool/ModeSelector.js index 03c313b640..20f12567d4 100644 --- a/src/pages/Pool/ModeSelector.js +++ b/src/pages/Pool/ModeSelector.js @@ -64,7 +64,7 @@ const StyledNavLink = styled(NavLink).attrs({ &.${activeClassName} { background-color: ${({ theme }) => theme.white}; border-radius: 3rem; - box-shadow: 0 0 0.5px 0.5px ${({ theme }) => theme.mercuryGray}; + box-shadow: 0 0 1px 1px ${({ theme }) => theme.mercuryGray}; font-weight: 500; color: ${({ theme }) => theme.royalBlue}; } diff --git a/src/pages/Send/index.js b/src/pages/Send/index.js index a4aff69e5a..4f1bd7e433 100644 --- a/src/pages/Send/index.js +++ b/src/pages/Send/index.js @@ -612,7 +612,7 @@ export default function Swap({ initialCurrency }) { isError={isError} slippageWarning={slippageWarning && slippageWarningText} highSlippageWarning={highSlippageWarning && slippageWarningText} - renderTransactionDetails={renderTransactionDetails} + dropDownContent={renderTransactionDetails} /> ) } diff --git a/src/pages/Swap/index.js b/src/pages/Swap/index.js index bc777de69b..3a44cbe652 100644 --- a/src/pages/Swap/index.js +++ b/src/pages/Swap/index.js @@ -7,8 +7,8 @@ import styled from 'styled-components' import { Button } from '../../theme' import CurrencyInputPanel from '../../components/CurrencyInputPanel' -import NewContextualInfo from '../../components/ContextualInfoNew' import OversizedPanel from '../../components/OversizedPanel' +import TransactionDetails from '../../components/TransactionDetails' import ArrowDownBlue from '../../assets/images/arrow-down-blue.svg' import ArrowDownGrey from '../../assets/images/arrow-down-grey.svg' import { amountFormatter, calculateGasMargin } from '../../utils' @@ -26,8 +26,8 @@ const TOKEN_TO_ETH = 1 const TOKEN_TO_TOKEN = 2 // denominated in bips -const ALLOWED_SLIPPAGE = ethers.utils.bigNumberify(200) -const TOKEN_ALLOWED_SLIPPAGE = ethers.utils.bigNumberify(400) +const ALLOWED_SLIPPAGE_DEFAULT = 100 +const TOKEN_ALLOWED_SLIPPAGE_DEFAULT = 100 // denominated in seconds const DEADLINE_FROM_NOW = 60 * 15 @@ -35,14 +35,6 @@ const DEADLINE_FROM_NOW = 60 * 15 // denominated in bips const GAS_MARGIN = ethers.utils.bigNumberify(1000) -const BlueSpan = styled.span` - color: ${({ theme }) => theme.royalBlue}; -` - -const LastSummaryText = styled.div` - margin-top: 1rem; -` - const DownArrowBackground = styled.div` ${({ theme }) => theme.flexRowNoWrap} justify-content: center; @@ -81,9 +73,9 @@ const Flex = styled.div` } ` -function calculateSlippageBounds(value, token = false) { +function calculateSlippageBounds(value, token = false, tokenAllowedSlippage, allowedSlippage) { if (value) { - const offset = value.mul(token ? TOKEN_ALLOWED_SLIPPAGE : ALLOWED_SLIPPAGE).div(ethers.utils.bigNumberify(10000)) + const offset = value.mul(token ? tokenAllowedSlippage : allowedSlippage).div(ethers.utils.bigNumberify(10000)) const minimum = value.sub(offset) const maximum = value.add(offset) return { @@ -244,12 +236,18 @@ export default function Swap({ initialCurrency }) { const addTransaction = useTransactionAdder() + const [rawSlippage, setRawSlippage] = useState(ALLOWED_SLIPPAGE_DEFAULT) + const [rawTokenSlippage, setRawTokenSlippage] = useState(TOKEN_ALLOWED_SLIPPAGE_DEFAULT) + + let allowedSlippageBig = ethers.utils.bigNumberify(rawSlippage) + let tokenAllowedSlippageBig = ethers.utils.bigNumberify(rawTokenSlippage) + // analytics useEffect(() => { ReactGA.pageview(window.location.pathname + window.location.search) }, []) - // core swap state + // core swap state- const [swapState, dispatchSwapState] = useReducer(swapStateReducer, initialCurrency, getInitialSwapState) const { independentValue, dependentValue, independentField, inputCurrency, outputCurrency } = swapState @@ -326,7 +324,9 @@ export default function Swap({ initialCurrency }) { // calculate slippage from target rate const { minimum: dependentValueMinumum, maximum: dependentValueMaximum } = calculateSlippageBounds( dependentValue, - swapType === TOKEN_TO_TOKEN + swapType === TOKEN_TO_TOKEN, + tokenAllowedSlippageBig, + allowedSlippageBig ) // validate input allowance + balance @@ -496,118 +496,6 @@ export default function Swap({ initialCurrency }) { return `Balance: ${value}` } - function renderTransactionDetails() { - ReactGA.event({ - category: 'TransactionDetail', - action: 'Open' - }) - - const b = text => {text} - - if (independentField === INPUT) { - return ( -
-
- {t('youAreSelling')}{' '} - {b( - `${amountFormatter( - independentValueParsed, - independentDecimals, - Math.min(4, independentDecimals) - )} ${inputSymbol}` - )} - . -
- - {t('youWillReceive')}{' '} - {b( - `${amountFormatter( - dependentValueMinumum, - dependentDecimals, - Math.min(4, dependentDecimals) - )} ${outputSymbol}` - )}{' '} - {t('orTransFail')} - - - {(slippageWarning || highSlippageWarning) && ( - - ⚠️ - - )} - {t('priceChange')} {b(`${percentSlippageFormatted}%`)}. - -
- ) - } else { - return ( -
-
- {t('youAreBuying')}{' '} - {b( - `${amountFormatter( - independentValueParsed, - independentDecimals, - Math.min(4, independentDecimals) - )} ${outputSymbol}` - )} - . -
- - {t('itWillCost')}{' '} - {b( - `${amountFormatter( - dependentValueMaximum, - dependentDecimals, - Math.min(4, dependentDecimals) - )} ${inputSymbol}` - )}{' '} - {t('orTransFail')} - - - {t('priceChange')} {b(`${percentSlippageFormatted}%`)}. - -
- ) - } - } - - function renderSummary() { - let contextualInfo = '' - let isError = false - - if (inputError || independentError) { - contextualInfo = inputError || independentError - isError = true - } else if (!inputCurrency || !outputCurrency) { - contextualInfo = t('selectTokenCont') - } else if (!independentValue) { - contextualInfo = t('enterValueCont') - } else if (!account) { - contextualInfo = t('noWallet') - isError = true - } - - const slippageWarningText = highSlippageWarning - ? t('highSlippageWarning') - : slippageWarning - ? t('slippageWarning') - : '' - - return ( - - ) - } - async function onSwap() { const deadline = Math.ceil(Date.now() / 1000) + DEADLINE_FROM_NOW @@ -664,6 +552,8 @@ export default function Swap({ initialCurrency }) { }) } + const [customSlippageError, setcustomSlippageError] = useState('') + return ( <> - {renderSummary()} + - diff --git a/src/theme/index.js b/src/theme/index.js index b2559a54c6..6045ba5cf0 100644 --- a/src/theme/index.js +++ b/src/theme/index.js @@ -38,6 +38,9 @@ const theme = { chaliceGray: '#AEAEAE', doveGray: '#737373', mineshaftGray: '#2B2B2B', + buttonOutlineGrey: '#f2f2f2', + //blacks + charcoalBlack: '#404040', // blues zumthorBlue: '#EBF4FF', malibuBlue: '#5CA2FF', @@ -53,6 +56,7 @@ const theme = { // pink uniswapPink: '#DC6BE5', connectedGreen: '#27AE60', + // media queries mediaWidth: mediaWidthTemplates, // css snippets From 66604cf47e377791394d55fe1d753ae613b1058f Mon Sep 17 00:00:00 2001 From: Callil Capuozzo Date: Mon, 29 Jul 2019 15:14:53 -0400 Subject: [PATCH 6/6] Add focus styles (#375) * Add focus styles * remove periods * Change copy and button hover state --- public/locales/en.json | 4 +- src/components/ContextualInfo/index.js | 4 +- src/components/ContextualInfoNew/index.js | 4 +- src/components/CurrencyInputPanel/index.js | 3 +- src/components/TransactionDetails/index.js | 119 ++++++++++++++------- src/theme/components.js | 6 +- 6 files changed, 94 insertions(+), 46 deletions(-) diff --git a/public/locales/en.json b/public/locales/en.json index 61de6b81d2..4b773b00a0 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -27,7 +27,7 @@ "noLiquidity": "No liquidity.", "insufficientLiquidity": "Insufficient liquidity.", "unlockTokenCont": "Please unlock token to continue.", - "transactionDetails": "Transaction Details", + "transactionDetails": "Advanced Details", "hideDetails": "Hide Details", "slippageWarning": "Slippage Warning", "highSlippageWarning": "High Slippage Warning", @@ -81,5 +81,5 @@ "decimals": "Decimals", "enterTokenCont": "Enter a token address to continue", "priceChange": "Expected price slippage", - "forAtLeast" : "for at least " + "forAtLeast": "for at least " } diff --git a/src/components/ContextualInfo/index.js b/src/components/ContextualInfo/index.js index 6daa6b6586..39abeba2e8 100644 --- a/src/components/ContextualInfo/index.js +++ b/src/components/ContextualInfo/index.js @@ -51,8 +51,8 @@ class ContextualInfo extends Component { } static defaultProps = { - openDetailsText: 'Transaction Details', - closeDetailsText: 'Hide Details', + openDetailsText: 'Advanced Details', + closeDetailsText: 'Hide Advanced', renderTransactionDetails() {}, contextualInfo: '', isError: false diff --git a/src/components/ContextualInfoNew/index.js b/src/components/ContextualInfoNew/index.js index 44c30d13e2..1373e5769a 100644 --- a/src/components/ContextualInfoNew/index.js +++ b/src/components/ContextualInfoNew/index.js @@ -85,8 +85,8 @@ const ColoredDropdown = styled(WrappedDropdown)` ` export default function ContextualInfo({ - openDetailsText = 'Transaction Details', - closeDetailsText = 'Hide Details', + openDetailsText = 'Advanced Details', + closeDetailsText = 'Hide Advanced', contextualInfo = '', allowExpand = false, isError = false, diff --git a/src/components/CurrencyInputPanel/index.js b/src/components/CurrencyInputPanel/index.js index 17211a7bd7..9178a3a41e 100644 --- a/src/components/CurrencyInputPanel/index.js +++ b/src/components/CurrencyInputPanel/index.js @@ -34,6 +34,7 @@ const SubCurrencySelect = styled.button` outline: none; cursor: pointer; user-select: none; + ` const InputRow = styled.div` @@ -70,7 +71,7 @@ const CurrencySelect = styled.button` } :focus { - box-shadow: 0 0 1px 1px ${({ theme }) => theme.malibuBlue}; + border: 1px solid ${({ theme }) => darken(0.1, theme.royalBlue)}; } :active { diff --git a/src/components/TransactionDetails/index.js b/src/components/TransactionDetails/index.js index ebafec539b..160eb65027 100644 --- a/src/components/TransactionDetails/index.js +++ b/src/components/TransactionDetails/index.js @@ -1,7 +1,7 @@ import React, { useState, useEffect, useRef } from 'react' import { useTranslation } from 'react-i18next' import styled, { css, keyframes } from 'styled-components' -import { transparentize, darken } from 'polished' +import { darken, lighten } from 'polished' import { amountFormatter } from '../../utils' import { useDebounce } from '../../hooks' @@ -105,17 +105,18 @@ const FancyButton = styled.button` min-width: 55px; height: 2rem; border-radius: 36px; + font-size: 12px; border: 1px solid ${({ theme }) => theme.mercuryGray}; outline: none; background: ${({ theme }) => theme.white}; :hover { cursor: inherit; - border: 1px solid ${({ theme }) => theme.royalBlue}; - box-shadow: ${({ theme }) => transparentize(0.6, theme.royalBlue)} 0px 0px 0px 2px; + border: 1px solid ${({ theme }) => theme.chaliceGray}; } :focus { - box-shadow: ${({ theme }) => transparentize(0.6, theme.royalBlue)} 0px 0px 0px 2px; + border: 1px solid ${({ theme }) => theme.royalBlue}; + /* box-shadow: 0 0 1px 1px #5CA2FF; */ } ` @@ -123,12 +124,39 @@ const Option = styled(FancyButton)` margin-right: 8px; margin-top: 6px; + :hover { + cursor: pointer; + } + ${({ active, theme }) => active && css` background-color: ${({ theme }) => theme.royalBlue}; color: ${({ theme }) => theme.white}; border: none; + + :hover { + border: none; + box-shadow: none; + background-color: ${({ theme }) => darken(0.05, theme.royalBlue)}; + } + + :focus { + border: none; + box-shadow: none; + background-color: ${({ theme }) => lighten(0.05, theme.royalBlue)}; + } + + :active { + background-color: ${({ theme }) => darken(0.05, theme.royalBlue)}; + } + + :hover:focus { + background-color: ${({ theme }) => theme.royalBlue}; + } + :hover:focus:active { + background-color: ${({ theme }) => darken(0.05, theme.royalBlue)}; + } `} ` @@ -198,6 +226,9 @@ const OptionCustom = styled(FancyButton)` active && css` border: 1px solid ${({ theme }) => theme.royalBlue}; + :hover { + border: 1px solid ${({ theme }) => darken(0.1, theme.royalBlue)}; + } `} ${({ color }) => @@ -219,7 +250,7 @@ const Bold = styled.span` ` const LastSummaryText = styled.div` - margin-top: 0.6rem; + padding-top: 0.5rem; ` const SlippageSelector = styled.div` @@ -252,6 +283,14 @@ const TransactionInfo = styled.div` padding: 1.25rem 1.25rem 1rem 1.25rem; ` +const ValueWrapper = styled.span` + padding: 0.125rem 0.3rem 0.1rem 0.3rem; + background-color: ${({ theme }) => darken(0.04, theme.concreteGray)}; + border-radius: 12px; + font-variant: tabular-nums; + vertical +` + export default function TransactionDetails(props) { const { t } = useTranslation() @@ -513,25 +552,29 @@ export default function TransactionDetails(props) {
{t('youAreSelling')}{' '} - {b( - `${amountFormatter( - props.independentValueParsed, - props.independentDecimals, - Math.min(4, props.independentDecimals) - )} ${props.inputSymbol}` - )}{' '} - {t('forAtLeast')} - {b( - `${amountFormatter( - props.dependentValueMinumum, - props.dependentDecimals, - Math.min(4, props.dependentDecimals) - )} ${props.outputSymbol}` - )} + + {b( + `${amountFormatter( + props.independentValueParsed, + props.independentDecimals, + Math.min(4, props.independentDecimals) + )} ${props.inputSymbol}` + )} + {' '} + {t('forAtLeast')}{' '} + + {b( + `${amountFormatter( + props.dependentValueMinumum, + props.dependentDecimals, + Math.min(4, props.dependentDecimals) + )} ${props.outputSymbol}` + )} + .
- {t('priceChange')} {b(`${props.percentSlippageFormatted}%`)}. + {t('priceChange')} {b(`${props.percentSlippageFormatted}%`)}
) @@ -540,28 +583,32 @@ export default function TransactionDetails(props) {
{t('youAreBuying')}{' '} - {b( - `${amountFormatter( - props.independentValueParsed, - props.independentDecimals, - Math.min(4, props.independentDecimals) - )} ${props.outputSymbol}` - )} + + {b( + `${amountFormatter( + props.independentValueParsed, + props.independentDecimals, + Math.min(4, props.independentDecimals) + )} ${props.outputSymbol}` + )} + .
{t('itWillCost')}{' '} - {b( - `${amountFormatter( - props.dependentValueMaximum, - props.dependentDecimals, - Math.min(4, props.dependentDecimals) - )} ${props.inputSymbol}` - )}{' '} + + {b( + `${amountFormatter( + props.dependentValueMaximum, + props.dependentDecimals, + Math.min(4, props.dependentDecimals) + )} ${props.inputSymbol}` + )} + {' '} {t('orTransFail')} - {t('priceChange')} {b(`${props.percentSlippageFormatted}%`)}. + {t('priceChange')} {b(`${props.percentSlippageFormatted}%`)}
) diff --git a/src/theme/components.js b/src/theme/components.js index 8f1d8a8e33..4dcb2ebb2d 100644 --- a/src/theme/components.js +++ b/src/theme/components.js @@ -1,5 +1,5 @@ import styled, { keyframes } from 'styled-components' -import { lighten, darken } from 'polished' +import { darken } from 'polished' export const Button = styled.button.attrs(({ warning, theme }) => ({ backgroundColor: warning ? theme.salmonRed : theme.royalBlue @@ -18,11 +18,11 @@ export const Button = styled.button.attrs(({ warning, theme }) => ({ :hover, :focus { - background-color: ${({ backgroundColor }) => lighten(0.05, backgroundColor)}; + background-color: ${({ backgroundColor }) => darken(0.05, backgroundColor)}; } :active { - background-color: ${({ backgroundColor }) => darken(0.05, backgroundColor)}; + background-color: ${({ backgroundColor }) => darken(0.1, backgroundColor)}; } :disabled {