{
  "name": "metamask",
  "version": "5.4.0",
  "private": true,
  "scripts": {
    "audit:ci": "./scripts/yarn-audit.sh",
    "watch": "./scripts/build.sh watcher watch",
    "watch:clean": "./scripts/build.sh watcher clean",
    "clean:ios": "rm -rf ios/build",
    "pod:install": "command -v pod && (cd ios/ && pod install && cd ..) || echo \"Skipping pod install\"",
    "clean:android": "rm -rf android/app/build",
    "clean:node": "rm -rf node_modules && yarn --frozen-lockfile",
    "clean": "yarn clean:ios && yarn clean:android && yarn clean:node && yarn pod:install",
    "clean-android": "yarn clean:android && yarn clean:node",
    "lint": "eslint '**/*.{js,ts,tsx}' --ignore-path=.prettierignore",
    "lint:fix": "eslint '**/*.{js,ts,tsx}' --fix --ignore-path=.prettierignore",
    "format": "prettier '**/*.{js,ts,tsx,json}' --write",
    "setup": "yarn clean && yarn allow-scripts && ./scripts/postinstall.sh",
    "start:ios": "./scripts/build.sh ios debug",
    "start:ios:e2e": "./scripts/build.sh ios debugE2E",
    "start:ios:device": "./scripts/build.sh ios debug --device",
    "start:android": "./scripts/build.sh android debug",
    "start:android:e2e": "./scripts/build.sh android debugE2E",
    "build:static-logos": "node ./scripts/metamask-bot-build-generate-static-assets",
    "build:announce": "node ./scripts/metamask-bot-build-announce-bitrise.js",
    "build:android:release": "./scripts/build.sh android release",
    "build:android:release:e2e": "./scripts/build.sh android releaseE2E",
    "build:android:checksum": "./scripts/checksum.sh",
    "build:android:checksum:verify": "shasum -a 512 -c sha512sums.txt",
    "build:android:pre-release": "./scripts/build.sh android release --pre",
    "build:android:pre-release:bundle": "GENERATE_BUNDLE=true ./scripts/build.sh android release --pre",
    "build:ios:release": "./scripts/build.sh ios release",
    "build:ios:release:e2e": "./scripts/build.sh ios releaseE2E",
    "build:ios:pre-release": "./scripts/build.sh ios release --pre",
    "build:attribution": "./scripts/generate-attributions.sh",
    "release:android": "./scripts/build.sh android release && open android/app/build/outputs/apk/release/",
    "release:ios": "./scripts/build.sh ios release",
    "test": "yarn test:unit && yarn test:e2e",
    "test:unit": "jest ./app/ ./locales/",
    "test:unit:update": "time jest -u ./app/",
    "test:e2e": "yarn test:e2e:ios && yarn test:e2e:android",
    "test:e2e:ios": "detox build -c ios.sim.release && detox test -c ios.sim.release --record-videos failing",
    "test:e2e:android": "detox build -c android.emu.release && detox test -c android.emu.release --record-videos failing",
    "test:tgz-check": "./scripts/tgz-check.sh",
    "test:attribution-check": "./scripts/attributions-check.sh",
    "sourcemaps:android": "node_modules/.bin/react-native bundle --platform android --entry-file index.js --dev false --reset-cache --bundle-output /tmp/bundle.android.js --assets-dest /tmp/ --sourcemap-output sourcemaps/android/index.js.map",
    "sourcemaps:ios": "node_modules/.bin/react-native bundle --platform ios --entry-file index.js --dev false --reset-cache --bundle-output /tmp/bundle.ios.js --assets-dest /tmp/ --sourcemap-output sourcemaps/ios/index.js.map",
    "stacktrace:android": "stack-beautifier sourcemaps/android/index.js.map -t sourcemaps/trace.txt",
    "stacktrace:ios": "stack-beautifier sourcemaps/ios/index.js.map -t sourcemaps/trace.txt",
    "update-changelog": "./scripts/auto-changelog.sh",
    "prestorybook": "rnstl",
    "create-release": "./scripts/set-versions.sh && yarn update-changelog"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "prettier --write",
      "eslint --ignore-path=.prettierignore"
    ],
    "*.json": [
      "prettier --write"
    ]
  },
  "resolutions": {
    "**/nanoid": "^3.1.31",
    "**/json-schema": "^0.4.0",
    "@sentry/react-native/**/xmldom": "^0.6.0",
    "@sentry/**/simple-plist": "^1.3.1",
    "react-native/**/simple-plist": "^1.3.1",
    "react-native-svg/**/nth-check": "^2.0.1",
    "**/set-value": "^4.0.1",
    "**/pac-resolver": "^5.0.0",
    "**/ansi-regex": "^5.0.1",
    "**/immer": "^9.0.6",
    "**/node-fetch": "^2.6.7",
    "**/node-notifier": "^8.0.1",
    "**/lodash": "^4.17.21",
    "**/ua-parser-js": "^0.7.24",
    "**/elliptic": "^6.5.4",
    "**/y18n": "^3.2.2",
    "pubnub/**/netmask": "^2.0.1",
    "**/optimist/minimist": "^1.2.5",
    "react-native-level-fs/**/bl": "^1.2.3",
    "react-native-level-fs/**/semver": "^4.3.2",
    "@metamask/contract-metadata": "^1.30.0",
    "@exodus/react-native-payments/validator": "^13.7.0",
    "react-devtools-core": "4.22.1",
    "**/got": "^11.8.5",
    "simple-get": "4.0.1",
    "shell-quote": "1.7.3",
    "oss-attribution-generator/**/underscore": "1.12.1",
    "oss-attribution-generator/**/deep-extend": "0.5.1",
    "**/plist": "3.0.5",
    "**/minimist": "1.2.6",
    "**/hermes-engine": "0.10.0",
    "@metamask/**/cross-fetch": "2.2.6",
    "react-native-gesture-handler/**/cross-fetch": "3.1.5",
    "@storybook/addon-actions/**/prismjs": "^1.27.0",
    "@storybook/addon-actions/**/highlight.js": "^10.4.1",
    "react-native-svg-asset-plugin/sharp": "^0.30.5",
    "detox/**/moment": "^2.29.4",
    "oss-attribution-generator/**/debug": "^2.6.9"
  },
  "dependencies": {
    "@consensys/on-ramp-sdk": "^1.0.9",
    "@exodus/react-native-payments": "git+https://github.com/MetaMask/react-native-payments.git#dbc8cbbed570892d2fea5e3d183bf243e062c1e5",
    "@keystonehq/bc-ur-registry-eth": "^0.7.7",
    "@keystonehq/metamask-airgapped-keyring": "^0.3.0",
    "@keystonehq/ur-decoder": "^0.3.0",
    "@metamask/controllers": "^30.0.2",
    "@metamask/contract-metadata": "^1.35.0",
    "@metamask/design-tokens": "^1.7.0",
    "@metamask/etherscan-link": "^2.0.0",
    "@metamask/swaps-controller": "^6.6.0",
    "@ngraveio/bc-ur": "^1.1.6",
    "@react-native-clipboard/clipboard": "^1.8.4",
    "@react-native-community/async-storage": "1.12.1",
    "@react-native-community/blur": "^3.6.0",
    "@react-native-community/checkbox": "^0.5.12",
    "@react-native-community/cookies": "^5.0.1",
    "@react-native-community/netinfo": "6.0.0",
    "@react-native-community/viewpager": "3.3.1",
    "@react-native-masked-view/masked-view": "^0.2.6",
    "@react-native-picker/picker": "^2.2.1",
    "@react-navigation/bottom-tabs": "^5.11.11",
    "@react-navigation/compat": "^5.3.20",
    "@react-navigation/native": "^5.9.4",
    "@react-navigation/stack": "^5.14.5",
    "@rnhooks/keyboard": "^0.0.3",
    "@sentry/integrations": "6.3.1",
    "@sentry/react-native": "2.4.2",
    "@tradle/react-native-http": "2.0.1",
    "@walletconnect/client": "^1.7.1",
    "@walletconnect/utils": "^1.7.1",
    "asyncstorage-down": "4.2.0",
    "axios": "^0.26.1",
    "babel-plugin-transform-inline-environment-variables": "0.4.3",
    "babel-plugin-transform-remove-console": "6.9.4",
    "base-64": "1.0.0",
    "bignumber.js": "^9.0.1",
    "buffer": "5.2.1",
    "compare-versions": "^3.6.0",
    "content-hash": "2.5.2",
    "dnode": "1.2.2",
    "eth-ens-namehash": "2.0.8",
    "eth-json-rpc-errors": "^2.0.2",
    "eth-json-rpc-filters": "4.2.2",
    "eth-json-rpc-infura": "5.1.0",
    "eth-json-rpc-middleware": "4.3.0",
    "eth-url-parser": "1.0.4",
    "ethereumjs-abi": "0.6.6",
    "ethereumjs-util": "6.1.0",
    "ethers": "^5.0.14",
    "ethjs-contract": "0.2.3",
    "ethjs-ens": "2.0.1",
    "ethjs-query": "0.3.8",
    "ethjs-unit": "0.1.6",
    "events": "3.0.0",
    "fuse.js": "3.4.4",
    "https-browserify": "0.0.1",
    "human-standard-token-abi": "^2.0.0",
    "humanize-duration": "^3.27.0",
    "improved-yarn-audit": "^3.0.0",
    "is-url": "^1.2.4",
    "json-rpc-engine": "^6.1.0",
    "json-rpc-middleware-stream": "3.0.0",
    "lottie-react-native": "git+https://github.com/MetaMask/lottie-react-native.git#7ce6a78ac4ac7b9891bc513cb3f12f8b9c9d9106",
    "metro-config": "^0.71.1",
    "multihashes": "0.4.14",
    "number-to-bn": "1.7.0",
    "obj-multiplex": "1.0.0",
    "obs-store": "4.0.3",
    "oss-attribution-generator": "^1.7.1",
    "path": "0.12.7",
    "pbkdf2": "3.1.2",
    "pify": "4.0.1",
    "prop-types": "15.7.2",
    "pubnub": "4.27.3",
    "pump": "3.0.0",
    "punycode": "^2.1.1",
    "qs": "6.7.0",
    "query-string": "^6.12.1",
    "react": "17.0.2",
    "react-native": "0.66.3",
    "react-native-actionsheet": "beefe/react-native-actionsheet#107/head",
    "react-native-aes-crypto": "1.3.9",
    "react-native-aes-crypto-forked": "git+https://github.com/MetaMask/react-native-aes-crypto-forked.git#397d5db5250e8e7408294807965b5b9fd4ca6a25",
    "react-native-animatable": "^1.3.3",
    "react-native-animated-fox": "git+https://github.com/MetaMask/react-native-animated-fox.git#16e38d54d829709e497f196e31fa8ff00cdf2aa9",
    "react-native-background-timer": "2.1.1",
    "react-native-branch": "5.4.0",
    "react-native-browser-polyfill": "0.1.2",
    "react-native-button": "git+https://github.com/MetaMask/react-native-button.git#fd79f4d6c8ced4086ba6e3021b6ed6d4a3e19cf7",
    "react-native-camera": "^3.36.0",
    "react-native-confetti": "^0.1.0",
    "react-native-confetti-cannon": "^1.5.0",
    "react-native-crypto": "2.1.2",
    "react-native-default-preference": "^1.4.3",
    "react-native-device-info": "^8.1.3",
    "react-native-elevated-view": "0.0.6",
    "react-native-emoji": "1.3.1",
    "react-native-fade-in-image": "1.4.1",
    "react-native-flash-message": "0.1.11",
    "react-native-fs": "^2.16.6",
    "react-native-gesture-handler": "^1.10.3",
    "react-native-i18n": "2.0.15",
    "react-native-in-app-review": "^3.2.3",
    "react-native-jazzicon": "^0.1.2",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-keychain": "^8.0.0",
    "react-native-level-fs": "3.0.1",
    "react-native-linear-gradient": "2.5.6",
    "react-native-material-textfield": "0.16.1",
    "react-native-minimizer": "^1.3.0",
    "react-native-modal": "^12.1.0",
    "react-native-os": "^1.2.6",
    "react-native-progress": "3.5.0",
    "react-native-push-notification": "git+https://github.com/MetaMask/react-native-push-notification.git#975e0e6757c40e3dce2d1b6dd3d66fc91127ac4c",
    "react-native-qrcode-svg": "5.1.2",
    "react-native-randombytes": "^3.5.3",
    "react-native-reanimated": "2.2.3",
    "react-native-redash": "16.2.2",
    "react-native-safe-area-context": "^3.1.9",
    "react-native-screens": "^3.3.0",
    "react-native-scrollable-tab-view": "^1.0.0",
    "react-native-search-api": "ombori/react-native-search-api#8/head",
    "react-native-sensors": "5.3.0",
    "react-native-share": "7.3.7",
    "react-native-skeleton-placeholder": "^5.0.0",
    "react-native-splash-screen": "git+https://github.com/MetaMask/react-native-splash-screen.git#1f45c08c0824cd94fdc6fb699529688a73614fee",
    "react-native-step-indicator": "^1.0.3",
    "react-native-svg": "12.1.1",
    "react-native-swipe-gestures": "1.0.3",
    "react-native-tcp": "aprock/react-native-tcp#11/head",
    "react-native-url-polyfill": "^1.3.0",
    "react-native-v8": "^0.62.2-patch.1",
    "react-native-vector-icons": "6.4.2",
    "react-native-video": "^5.1.1",
    "react-native-view-shot": "^3.1.2",
    "react-native-webview": "11.13.0",
    "react-redux": "7.2.4",
    "readable-stream": "1.0.33",
    "redux": "4.1.1",
    "redux-mock-store": "1.5.4",
    "redux-persist": "6.0.0",
    "redux-persist-filesystem-storage": "^3.0.0",
    "reselect": "^4.0.0",
    "rn-fetch-blob": "^0.12.0",
    "stream-browserify": "1.0.0",
    "swappable-obj-proxy": "^1.1.0",
    "through2": "3.0.1",
    "unicode-confusables": "^0.1.1",
    "url": "0.11.0",
    "url-parse": "1.5.9",
    "uuid": "^8.3.2",
    "valid-url": "1.0.9",
    "vm-browserify": "1.1.2",
    "zxcvbn": "4.4.2"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/runtime": "^7.12.5",
    "@lavamoat/allow-scripts": "^1.0.6",
    "@metamask/eslint-config": "^7.0.0",
    "@metamask/eslint-config-typescript": "^7.0.0",
    "@metamask/mobile-provider": "^2.1.0",
    "@react-native-community/eslint-config": "^2.0.0",
    "@storybook/addon-actions": "^5.3",
    "@storybook/addon-knobs": "^5.3",
    "@storybook/addon-links": "^5.3",
    "@storybook/addon-ondevice-actions": "^5.3.23",
    "@storybook/addon-ondevice-knobs": "^5.3.25",
    "@storybook/react-native": "^5.3.25",
    "@types/enzyme": "^3.10.9",
    "@types/jest": "^27.0.1",
    "@types/react": "^17.0.11",
    "@types/react-native": "^0.64.10",
    "@types/react-native-vector-icons": "^6.4.8",
    "@types/react-native-video": "^5.0.13",
    "@types/redux-mock-store": "^1.0.3",
    "@typescript-eslint/eslint-plugin": "^4.20.0",
    "@typescript-eslint/parser": "^4.20.0",
    "assert": "1.4.1",
    "babel-core": "7.0.0-bridge.0",
    "babel-eslint": "10.1.0",
    "babel-jest": "^26.6.3",
    "babel-loader": "^8.2.3",
    "concat-cli": "4.0.0",
    "detox": "19.6.5",
    "enzyme": "3.9.0",
    "enzyme-adapter-react-16": "1.10.0",
    "enzyme-to-json": "3.3.5",
    "eslint": "7.14.0",
    "eslint-config-react-native": "4.0.0",
    "eslint-import-resolver-typescript": "^2.4.0",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-prettier": "^3.3.1",
    "eslint-plugin-react": "7.16.0",
    "eslint-plugin-react-native": "3.7.0",
    "fbjs-scripts": "^3.0.1",
    "husky": "1.3.1",
    "jest": "^26.6.3",
    "jest-serializer": "26.6.2",
    "jetifier": "2.0.0",
    "lint-staged": "10.5.4",
    "metro": "^0.66.2",
    "metro-react-native-babel-preset": "^0.66.2",
    "octonode": "0.9.5",
    "patch-package": "^6.2.2",
    "prettier": "^2.2.1",
    "react-dom": "16.8.4",
    "react-native-cli": "2.0.1",
    "react-native-storybook-loader": "^2.0.4",
    "react-native-svg-asset-plugin": "^0.5.0",
    "react-native-svg-transformer": "^1.0.0",
    "react-redux-test": "npm:react-redux@5.1.1",
    "react-test-renderer": "17.0.2",
    "regenerator-runtime": "0.13.9",
    "rn-nodeify": "10.0.1",
    "stack-beautifier": "1.0.2",
    "typescript": "^4.4.2"
  },
  "config": {
    "react-native-storybook-loader": {
      "searchDir": [
        "./app/components",
        "./app/component-library"
      ],
      "pattern": "**/*.stories.@(js|tsx)",
      "outputFile": "./storybook/storyLoader.js"
    }
  },
  "detox": {
    "configurations": {
      "ios.sim.debug": {
        "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/MetaMask.app",
        "build": "yarn start:ios:e2e",
        "type": "ios.simulator",
        "device": {
          "type": "iPhone 11 Pro"
        }
      },
      "ios.sim.release": {
        "binaryPath": "ios/build/Build/Products/Release-iphonesimulator/MetaMask.app",
        "build": "METAMASK_ENVIRONMENT='production' yarn build:ios:release:e2e",
        "type": "ios.simulator",
        "device": {
          "type": "iPhone 11 Pro"
        }
      },
      "android.emu.debug": {
        "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
        "build": "yarn start:android:e2e",
        "type": "android.emulator",
        "device": {
          "avdName": "Pixel_3_API_29"
        }
      },
      "android.emu.release": {
        "binaryPath": "android/app/build/outputs/apk/release/app-release.apk",
        "build": "METAMASK_ENVIRONMENT='production' yarn build:android:release:e2e",
        "type": "android.emulator",
        "device": {
          "avdName": "emulator"
        }
      }
    },
    "runner-config": "e2e/config.json",
    "test-runner": "jest"
  },
  "react-native": {
    "crypto": "react-native-crypto",
    "_stream_transform": "readable-stream/transform",
    "_stream_readable": "readable-stream/readable",
    "_stream_writable": "readable-stream/writable",
    "_stream_duplex": "readable-stream/duplex",
    "_stream_passthrough": "readable-stream/passthrough",
    "stream": "stream-browserify",
    "http": "@tradle/react-native-http",
    "https": "https-browserify",
    "vm": "vm-browserify",
    "os": "react-native-os",
    "net": "react-native-tcp",
    "fs": "react-native-level-fs"
  },
  "browser": {
    "crypto": "react-native-crypto",
    "_stream_transform": "readable-stream/transform",
    "_stream_readable": "readable-stream/readable",
    "_stream_writable": "readable-stream/writable",
    "_stream_duplex": "readable-stream/duplex",
    "_stream_passthrough": "readable-stream/passthrough",
    "stream": "stream-browserify",
    "http": "@tradle/react-native-http",
    "https": "https-browserify",
    "vm": "vm-browserify",
    "os": "react-native-os",
    "net": "react-native-tcp",
    "fs": "react-native-level-fs"
  },
  "engines": {
    "node": "^14.0.0",
    "yarn": "^1.22.0"
  },
  "lavamoat": {
    "allowScripts": {
      "@sentry/cli": true,
      "detox": true,
      "husky": false,
      "secp256k1": true,
      "keccak": true,
      "@lavamoat/preinstall-always-fail": false,
      "dtrace-provider": false,
      "core-js": false,
      "sharp": true,
      "highlight.js": false,
      "es5-ext": false
    }
  }
}
