mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
53feb20803
An alert is now shown when the user switches from an account that is connected to the active tab to an account that is not connected. The alert prompts the user to dismiss the alert or connect the account they're switching to. The "loading" state is handled by disabling the buttons, and the error state is handled by displaying a generic error message and disabling the connect button. The new reducer for this alert has been created with `createSlice` from the Redux Toolkit. This utility is recommended by the Redux team, and represents a new style of writing reducers that I hope we will use more in the future (or at least something similar). `createSlice` constructs a reducer, actions, and action creators automatically. The reducer is constructed using their `createReducer` helper, which uses Immer to allow directly mutating the state in the reducer but exposing these changes as immutable.
300 lines
12 KiB
JSON
300 lines
12 KiB
JSON
{
|
|
"name": "metamask-crx",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"start": "yarn build dev",
|
|
"dist": "yarn build prod",
|
|
"build": "node development/build/index.js",
|
|
"start:test": "yarn build testDev",
|
|
"benchmark:chrome": "SELENIUM_BROWSER=chrome node test/e2e/benchmark.js",
|
|
"benchmark:firefox": "SELENIUM_BROWSER=firefox node test/e2e/benchmark.js",
|
|
"build:test": "yarn build test",
|
|
"test": "yarn test:unit && yarn lint",
|
|
"dapp": "node development/static-server.js test/e2e/contract-test --port 8080",
|
|
"dapp-chain": "GANACHE_ARGS='-b 2' concurrently -k -n ganache,dapp -p '[{time}][{name}]' 'yarn ganache:start' 'sleep 5 && node development/static-server.js test/e2e/contract-test --port 8080'",
|
|
"forwarder": "node ./development/static-server.js ./node_modules/@metamask/forwarder/dist/ --port 9010",
|
|
"dapp-forwarder": "concurrently -k -n forwarder,dapp -p '[{time}][{name}]' 'yarn forwarder' 'yarn dapp'",
|
|
"watch:test:unit": "nodemon --exec \"yarn test:unit\" ./test ./app ./ui",
|
|
"sendwithprivatedapp": "node development/static-server.js test/e2e/send-eth-with-private-key-test --port 8080",
|
|
"test:unit": "mocha --exit --require test/env.js --require test/setup.js --recursive \"test/unit/**/*.js\" \"ui/app/**/*.test.js\"",
|
|
"test:unit:global": "mocha --exit --require test/env.js --require test/setup.js --recursive mocha test/unit-global/*",
|
|
"test:unit:lax": "mocha --exit --require test/env.js --require test/setup.js --recursive \"test/unit/{,**/!(permissions)}/*.js\" \"ui/app/**/*.test.js\"",
|
|
"test:unit:strict": "mocha --exit --require test/env.js --require test/setup.js --recursive \"test/unit/**/permissions/*.js\"",
|
|
"test:unit:path": "mocha --exit --require test/env.js --require test/setup.js --recursive",
|
|
"test:integration": "yarn test:integration:build && yarn test:flat",
|
|
"test:integration:build": "yarn build styles",
|
|
"test:e2e:chrome": "SELENIUM_BROWSER=chrome test/e2e/run-all.sh",
|
|
"test:web3:chrome": "SELENIUM_BROWSER=chrome test/e2e/run-web3.sh",
|
|
"test:web3:firefox": "SELENIUM_BROWSER=firefox test/e2e/run-web3.sh",
|
|
"test:e2e:firefox": "SELENIUM_BROWSER=firefox test/e2e/run-all.sh",
|
|
"test:coverage": "nyc --silent --check-coverage yarn test:unit:strict && nyc --silent --no-clean yarn test:unit:lax && nyc report --reporter=text --reporter=html",
|
|
"test:coverage:strict": "nyc --check-coverage yarn test:unit:strict",
|
|
"test:coveralls-upload": "if [ \"$COVERALLS_REPO_TOKEN\" ]; then nyc report --reporter=text-lcov | coveralls; fi",
|
|
"test:flat": "yarn test:flat:build && karma start test/flat.conf.js",
|
|
"test:flat:build": "yarn test:flat:build:ui && yarn test:flat:build:tests && yarn test:flat:build:locales",
|
|
"test:flat:build:tests": "node test/integration/index.js",
|
|
"test:flat:build:states": "node development/genStates.js",
|
|
"test:flat:build:locales": "mkdir -p dist/chrome && cp -R app/_locales dist/chrome/_locales",
|
|
"test:flat:build:ui": "yarn test:flat:build:states && browserify --transform babelify --transform brfs ./development/mock-dev.js -o ./development/bundle.js",
|
|
"ganache:start": "./development/run-ganache",
|
|
"sentry:publish": "node ./development/sentry-publish.js",
|
|
"lint": "eslint . --ext js,json",
|
|
"lint:fix": "eslint . --ext js,json --fix",
|
|
"lint:changed": "{ git ls-files --others --exclude-standard ; git diff-index --name-only --diff-filter=d HEAD ; } | grep --regexp='[.]js$' --regexp='[.]json$' | tr '\\n' '\\0' | xargs -0 eslint",
|
|
"lint:changed:fix": "{ git ls-files --others --exclude-standard ; git diff-index --name-only --diff-filter=d HEAD ; } | grep --regexp='[.]js$' --regexp='[.]json$' | tr '\\n' '\\0' | xargs -0 eslint --fix",
|
|
"lint:shellcheck": "./development/shellcheck.sh",
|
|
"lint:lockfile": "lockfile-lint --path yarn.lock --allowed-hosts npm yarn github.com codeload.github.com --empty-hostname false --allowed-schemes \"https:\" \"git+https:\"",
|
|
"verify-locales": "node ./development/verify-locale-strings.js",
|
|
"verify-locales:fix": "node ./development/verify-locale-strings.js --fix",
|
|
"mozilla-lint": "addons-linter dist/firefox",
|
|
"watch": "mocha --watch --require test/env.js --require test/setup.js --reporter min --recursive \"test/unit/**/*.js\" \"ui/app/**/*.test.js\"",
|
|
"devtools:react": "react-devtools",
|
|
"devtools:redux": "remotedev --hostname=localhost --port=8000",
|
|
"start:dev": "concurrently -k -n build,react,redux yarn:start yarn:devtools:react yarn:devtools:redux",
|
|
"announce": "node development/announcer.js",
|
|
"storybook": "start-storybook -p 6006 -c .storybook --static-dir ./app",
|
|
"storybook:build": "build-storybook -c .storybook -o .out --static-dir ./app",
|
|
"storybook:deploy": "storybook-to-ghpages --existing-output-dir .out --remote storybook --branch master",
|
|
"update-changelog": "./development/auto-changelog.sh",
|
|
"generate:migration": "./development/generate-migration.sh"
|
|
},
|
|
"resolutions": {
|
|
"**/gonzales-pe/minimist": "^1.2.5",
|
|
"**/knex/minimist": "^1.2.5",
|
|
"**/mkdirp/minimist": "^1.2.5",
|
|
"**/optimist/minimist": "^1.2.5",
|
|
"**/socketcluster/minimist": "^1.2.5",
|
|
"3box/ipfs/ipld-zcash/zcash-bitcore-lib/lodash": "^4.17.15"
|
|
},
|
|
"dependencies": {
|
|
"3box": "^1.10.2",
|
|
"@babel/runtime": "^7.5.5",
|
|
"@download/blockies": "^1.0.3",
|
|
"@fortawesome/fontawesome-free": "^5.13.0",
|
|
"@material-ui/core": "1.0.0",
|
|
"@metamask/eth-ledger-bridge-keyring": "^0.2.6",
|
|
"@metamask/eth-token-tracker": "^2.0.0",
|
|
"@metamask/etherscan-link": "^1.1.0",
|
|
"@metamask/inpage-provider": "^5.0.0",
|
|
"@reduxjs/toolkit": "^1.3.2",
|
|
"@sentry/browser": "^5.11.1",
|
|
"@sentry/integrations": "^5.11.1",
|
|
"@zxing/library": "^0.8.0",
|
|
"abi-decoder": "^1.2.0",
|
|
"abortcontroller-polyfill": "^1.3.0",
|
|
"await-semaphore": "^0.1.1",
|
|
"bignumber.js": "^4.1.0",
|
|
"bip39": "^2.2.0",
|
|
"bn.js": "^4.11.7",
|
|
"c3": "^0.7.10",
|
|
"classnames": "^2.2.6",
|
|
"content-hash": "^2.5.0",
|
|
"copy-to-clipboard": "^3.0.8",
|
|
"currency-formatter": "^1.4.2",
|
|
"d3": "^5.15.0",
|
|
"debounce-stream": "^2.0.0",
|
|
"deep-freeze-strict": "1.1.1",
|
|
"dnode": "^1.2.2",
|
|
"end-of-stream": "^1.4.4",
|
|
"eth-block-tracker": "^4.4.2",
|
|
"eth-contract-metadata": "^1.12.1",
|
|
"eth-ens-namehash": "^2.0.8",
|
|
"eth-json-rpc-errors": "^2.0.2",
|
|
"eth-json-rpc-filters": "^4.1.1",
|
|
"eth-json-rpc-infura": "^4.0.2",
|
|
"eth-json-rpc-middleware": "^4.4.1",
|
|
"eth-keyring-controller": "^5.6.1",
|
|
"eth-method-registry": "^1.2.0",
|
|
"eth-phishing-detect": "^1.1.4",
|
|
"eth-query": "^2.1.2",
|
|
"eth-sig-util": "^2.3.0",
|
|
"eth-trezor-keyring": "^0.4.0",
|
|
"ethereum-ens-network-map": "^1.0.2",
|
|
"ethereumjs-abi": "^0.6.4",
|
|
"ethereumjs-tx": "1.3.7",
|
|
"ethereumjs-util": "5.1.0",
|
|
"ethereumjs-wallet": "^0.6.0",
|
|
"ethjs": "^0.4.0",
|
|
"ethjs-contract": "^0.2.3",
|
|
"ethjs-ens": "^2.0.0",
|
|
"ethjs-query": "^0.3.4",
|
|
"extension-port-stream": "^1.0.0",
|
|
"extensionizer": "^1.0.1",
|
|
"fast-json-patch": "^2.0.4",
|
|
"fuse.js": "^3.2.0",
|
|
"gaba": "^1.9.3",
|
|
"human-standard-token-abi": "^2.0.0",
|
|
"jazzicon": "^2.0.0",
|
|
"json-rpc-engine": "^5.1.8",
|
|
"json-rpc-middleware-stream": "^2.1.1",
|
|
"jsonschema": "^1.2.4",
|
|
"lodash": "^4.17.15",
|
|
"loglevel": "^1.4.1",
|
|
"luxon": "^1.23.0",
|
|
"metamask-logo": "^2.1.4",
|
|
"multihashes": "^0.4.12",
|
|
"nanoid": "^2.1.6",
|
|
"nonce-tracker": "^1.0.0",
|
|
"obj-multiplex": "^1.0.0",
|
|
"obs-store": "^4.0.3",
|
|
"percentile": "^1.2.0",
|
|
"pify": "^5.0.0",
|
|
"post-message-stream": "^3.0.0",
|
|
"promise-to-callback": "^1.0.0",
|
|
"prop-types": "^15.6.1",
|
|
"pubnub": "4.27.3",
|
|
"pump": "^3.0.0",
|
|
"punycode": "^2.1.1",
|
|
"qrcode-generator": "1.4.1",
|
|
"ramda": "^0.24.1",
|
|
"react": "^16.12.0",
|
|
"react-dnd": "^3.0.2",
|
|
"react-dnd-html5-backend": "^7.4.4",
|
|
"react-dom": "^16.12.0",
|
|
"react-idle-timer": "^4.2.5",
|
|
"react-inspector": "^2.3.0",
|
|
"react-media": "^1.8.0",
|
|
"react-redux": "^7.2.0",
|
|
"react-router-dom": "^5.1.2",
|
|
"react-select": "^1.0.0",
|
|
"react-simple-file-input": "^2.0.0",
|
|
"react-tippy": "^1.2.2",
|
|
"react-toggle-button": "^2.2.0",
|
|
"react-transition-group": "^1.2.1",
|
|
"react-trigger-change": "^1.0.2",
|
|
"readable-stream": "^2.3.3",
|
|
"redux": "^4.0.5",
|
|
"redux-thunk": "^2.3.0",
|
|
"reselect": "^3.0.1",
|
|
"rpc-cap": "^2.0.0",
|
|
"safe-event-emitter": "^1.0.1",
|
|
"safe-json-stringify": "^1.2.0",
|
|
"single-call-balance-checker-abi": "^1.0.0",
|
|
"swappable-obj-proxy": "^1.1.0",
|
|
"textarea-caret": "^3.0.1",
|
|
"valid-url": "^1.0.9",
|
|
"web3": "^0.20.7",
|
|
"web3-stream-provider": "^4.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.5.5",
|
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
|
|
"@babel/plugin-proposal-optional-chaining": "^7.8.3",
|
|
"@babel/plugin-transform-runtime": "^7.5.5",
|
|
"@babel/preset-env": "^7.5.5",
|
|
"@babel/preset-react": "^7.0.0",
|
|
"@babel/register": "^7.5.5",
|
|
"@metamask/eslint-config": "^1.1.0",
|
|
"@metamask/forwarder": "^1.1.0",
|
|
"@metamask/onboarding": "^0.2.0",
|
|
"@sentry/cli": "^1.49.0",
|
|
"@storybook/addon-actions": "^5.3.14",
|
|
"@storybook/addon-backgrounds": "^5.3.14",
|
|
"@storybook/addon-knobs": "^5.3.14",
|
|
"@storybook/core": "^5.3.14",
|
|
"@storybook/react": "^5.3.14",
|
|
"@storybook/storybook-deployer": "^2.8.1",
|
|
"addons-linter": "1.14.0",
|
|
"babel-eslint": "^10.0.2",
|
|
"babel-loader": "^8.0.6",
|
|
"babelify": "^10.0.0",
|
|
"brfs": "^1.6.1",
|
|
"browserify": "^16.2.3",
|
|
"browserify-derequire": "^1.0.1",
|
|
"browserify-transform-tools": "^1.7.0",
|
|
"chai": "^4.1.0",
|
|
"chalk": "^3.0.0",
|
|
"chromedriver": "^79.0.0",
|
|
"concurrently": "^5.1.0",
|
|
"copy-webpack-plugin": "^5.1.1",
|
|
"coveralls": "^3.0.0",
|
|
"css-loader": "^2.1.1",
|
|
"del": "^3.0.0",
|
|
"deps-dump": "^1.1.0",
|
|
"envify": "^4.1.0",
|
|
"enzyme": "^3.10.0",
|
|
"enzyme-adapter-react-16": "^1.15.1",
|
|
"eslint": "^6.0.1",
|
|
"eslint-plugin-babel": "^5.3.0",
|
|
"eslint-plugin-import": "^2.19.1",
|
|
"eslint-plugin-json": "^1.2.0",
|
|
"eslint-plugin-mocha": "^6.2.2",
|
|
"eslint-plugin-react": "^7.18.3",
|
|
"fancy-log": "^1.3.3",
|
|
"fast-glob": "^3.2.2",
|
|
"file-loader": "^1.1.11",
|
|
"fs-extra": "^8.1.0",
|
|
"ganache-cli": "^6.4.4",
|
|
"ganache-core": "2.8.0",
|
|
"geckodriver": "^1.19.1",
|
|
"get-port": "^5.1.0",
|
|
"gulp": "^4.0.2",
|
|
"gulp-autoprefixer": "^5.0.0",
|
|
"gulp-babel": "^8.0.0",
|
|
"gulp-debug": "^3.2.0",
|
|
"gulp-imagemin": "^6.1.0",
|
|
"gulp-livereload": "4.0.0",
|
|
"gulp-multi-process": "^1.3.1",
|
|
"gulp-rename": "^1.4.0",
|
|
"gulp-replace": "^1.0.0",
|
|
"gulp-rtlcss": "^1.4.0",
|
|
"gulp-sass": "^4.0.0",
|
|
"gulp-sourcemaps": "^2.6.0",
|
|
"gulp-stylelint": "^7.0.0",
|
|
"gulp-terser-js": "^5.0.0",
|
|
"gulp-watch": "^5.0.1",
|
|
"gulp-zip": "^4.0.0",
|
|
"jsdom": "^11.2.0",
|
|
"karma": "^4.1.0",
|
|
"karma-chrome-launcher": "^2.2.0",
|
|
"karma-cli": "^1.0.1",
|
|
"karma-firefox-launcher": "^1.0.1",
|
|
"karma-qunit": "^1.2.1",
|
|
"koa": "^2.7.0",
|
|
"lockfile-lint": "^4.0.0",
|
|
"mocha": "^7.0.1",
|
|
"nock": "^9.0.14",
|
|
"node-fetch": "^2.6.0",
|
|
"node-sass": "^4.12.0",
|
|
"nyc": "^15.0.0",
|
|
"polyfill-crypto.getrandomvalues": "^1.0.0",
|
|
"proxyquire": "^2.1.3",
|
|
"qs": "^6.2.0",
|
|
"qunitjs": "^2.4.1",
|
|
"randomcolor": "^0.5.4",
|
|
"react-devtools": "^4.4.0",
|
|
"react-test-renderer": "^16.12.0",
|
|
"read-installed": "^4.0.3",
|
|
"redux-mock-store": "^1.5.4",
|
|
"regenerator-runtime": "^0.13.3",
|
|
"remote-redux-devtools": "^0.5.16",
|
|
"remotedev-server": "^0.3.1",
|
|
"resolve-url-loader": "^2.3.0",
|
|
"sass-loader": "^7.0.1",
|
|
"selenium-webdriver": "^4.0.0-alpha.5",
|
|
"serve-handler": "^6.1.2",
|
|
"sesify": "^4.2.1",
|
|
"sesify-viz": "^3.0.5",
|
|
"sinon": "^9.0.0",
|
|
"source-map": "^0.7.2",
|
|
"source-map-explorer": "^2.0.1",
|
|
"string.prototype.matchall": "^4.0.2",
|
|
"style-loader": "^0.21.0",
|
|
"stylelint": "^9.10.1",
|
|
"stylelint-config-standard": "^18.2.0",
|
|
"testem": "^2.16.0",
|
|
"through2": "^2.0.3",
|
|
"ttest": "^2.1.1",
|
|
"vinyl-buffer": "^1.0.1",
|
|
"vinyl-source-stream": "^2.0.0",
|
|
"watchify": "^3.11.1",
|
|
"webpack": "^4.41.6"
|
|
},
|
|
"engines": {
|
|
"node": "^10.16.0",
|
|
"yarn": "^1.16.0"
|
|
}
|
|
}
|