From c04d982928cdeaad24a1bea8219a2554e11bddd7 Mon Sep 17 00:00:00 2001 From: ricky Date: Fri, 9 Apr 2021 02:27:29 -0400 Subject: [PATCH 01/11] Add scripts for generating and verifying SHA 512 checksums (#2168) * Add scripts for generating and verifying SHA 512 checksums * Update checksum scripts * Rename to NON_EMPTY since that's what it actually is :sweat_smile: * Add checksum to prerelease * Address feedback * only gen checksum if apk exists * add shellscript * fix .sh file --- app/core/Engine.js | 4 ++-- package.json | 2 ++ scripts/build.sh | 2 ++ scripts/checksum.sh | 7 +++++++ 4 files changed, 13 insertions(+), 2 deletions(-) create mode 100755 scripts/checksum.sh diff --git a/app/core/Engine.js b/app/core/Engine.js index c0f46a229ab..d1ba8c936ed 100644 --- a/app/core/Engine.js +++ b/app/core/Engine.js @@ -33,7 +33,7 @@ import contractMap from '@metamask/contract-metadata'; import Logger from '../util/Logger'; import { LAST_INCOMING_TX_BLOCK_INFO } from '../constants/storage'; -const EMPTY = 'EMPTY'; +const NON_EMPTY = 'NON_EMPTY'; const encryptor = new Encryptor(); let currentChainId; @@ -79,7 +79,7 @@ class Engine { new PersonalMessageManager(), new MessageManager(), new NetworkController({ - infuraProjectId: process.env.MM_INFURA_PROJECT_ID || EMPTY, + infuraProjectId: process.env.MM_INFURA_PROJECT_ID || NON_EMPTY, providerConfig: { static: { eth_sendTransaction: async (payload, next, end) => { diff --git a/package.json b/package.json index c6693548d73..61b3faa24c6 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,8 @@ "build:announce": "node ./scripts/metamask-bot-build-announce.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", diff --git a/scripts/build.sh b/scripts/build.sh index 371c9d243b3..67797024d0e 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -235,6 +235,8 @@ buildAndroidRelease(){ if [ "$PRE_RELEASE" = true ] ; then # Generate sourcemaps yarn sourcemaps:android + # Generate checksum + yarn build:android:checksum fi if [ "$PRE_RELEASE" = false ] ; then diff --git a/scripts/checksum.sh b/scripts/checksum.sh new file mode 100755 index 00000000000..e5d27b93510 --- /dev/null +++ b/scripts/checksum.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +FILE=./android/app/build/outputs/apk/release/app-release.apk + +if test -f "$FILE"; then + shasum -a 512 "$FILE" > ./android/app/build/outputs/apk/release/sha512sums.txt +fi; From cba89a2852365719fc7be65e8f573876f9b1102f Mon Sep 17 00:00:00 2001 From: Andre Pimenta Date: Fri, 9 Apr 2021 16:52:08 +0100 Subject: [PATCH 02/11] Fix/analytics v1 priority1 (#2487) * Fix anonymous properties * Added try catch to all analytics * Spanish translation * Bump version and changelog * Removed collectible address --- CHANGELOG.md | 1 + app/components/Nav/Main/index.js | 2 +- app/components/UI/AccountApproval/index.js | 20 +++++---- .../UI/AddCustomCollectible/index.js | 18 ++++---- app/components/UI/AddCustomToken/index.js | 24 +++++----- .../UI/ApproveTransactionReview/index.js | 44 ++++++++++--------- app/components/UI/CustomGas/index.js | 24 +++++----- app/components/UI/MessageSign/index.js | 30 +++++++------ app/components/UI/PersonalSign/index.js | 31 +++++++------ .../UI/SearchTokenAutocomplete/index.js | 24 +++++----- app/components/UI/TransactionEditor/index.js | 18 +++++--- app/components/UI/TypedSign/index.js | 32 ++++++++------ app/components/UI/WatchAssetRequest/index.js | 36 ++++++++------- app/components/Views/Approval/index.js | 24 +++++----- .../Views/ApproveView/Approve/index.js | 16 ++++--- .../Views/SendFlow/Confirm/index.js | 32 +++++++++----- .../RPCMethods/wallet_addEthereumChain.js | 6 +-- app/util/analyticsV2.js | 11 +++-- ios/MetaMask.xcodeproj/project.pbxproj | 4 +- locales/languages/es.json | 1 + 20 files changed, 229 insertions(+), 169 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0122d10dfa..a1735eb3e1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Current Develop Branch ## v2.1.0 - Apr 12 2021 +- [#2487](https://github.com/MetaMask/metamask-mobile/pull/2487): Fix/analytics v1 priority1 - [#2456](https://github.com/MetaMask/metamask-mobile/pull/2456): Analytics v2 (priority 1) - [#2408](https://github.com/MetaMask/metamask-mobile/pull/2408): Fix/gas estimations - [#2479](https://github.com/MetaMask/metamask-mobile/pull/2479): remove controllers tgz diff --git a/app/components/Nav/Main/index.js b/app/components/Nav/Main/index.js index ff7a77f8bde..86af6b065cc 100644 --- a/app/components/Nav/Main/index.js +++ b/app/components/Nav/Main/index.js @@ -128,11 +128,11 @@ const Main = props => { const onUnapprovedMessage = (messageParams, type) => { const { title: currentPageTitle, url: currentPageUrl } = messageParams.meta; delete messageParams.meta; - setSignMessage(true); setSignMessageParams(messageParams); setSignType(type); setCurrentPageTitle(currentPageTitle); setCurrentPageUrl(currentPageUrl); + setSignMessage(true); }; const connectionChangeHandler = useCallback( diff --git a/app/components/UI/AccountApproval/index.js b/app/components/UI/AccountApproval/index.js index 38842d930c3..a53493d3daf 100644 --- a/app/components/UI/AccountApproval/index.js +++ b/app/components/UI/AccountApproval/index.js @@ -101,14 +101,18 @@ class AccountApproval extends PureComponent { }; getAnalyticsParams = () => { - const { currentPageInformation, chainId, networkType } = this.props; - const url = new URL(currentPageInformation.url); - return { - dapp_host_name: url?.host, - dapp_url: currentPageInformation?.url, - network_name: networkType, - chain_id: chainId - }; + try { + const { currentPageInformation, chainId, networkType } = this.props; + const url = new URL(currentPageInformation?.url); + return { + dapp_host_name: url?.host, + dapp_url: currentPageInformation?.url, + network_name: networkType, + chain_id: chainId + }; + } catch (error) { + return {}; + } }; componentDidMount = () => { diff --git a/app/components/UI/AddCustomCollectible/index.js b/app/components/UI/AddCustomCollectible/index.js index a86952e6b8d..5983e6fd1e8 100644 --- a/app/components/UI/AddCustomCollectible/index.js +++ b/app/components/UI/AddCustomCollectible/index.js @@ -74,14 +74,16 @@ class AddCustomCollectible extends PureComponent { }; getAnalyticsParams = () => { - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - const { address } = this.state; - return { - collectible_address: { value: address, anonymous: true }, - network_name: type, - chain_id: chainId - }; + try { + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + return { + network_name: type, + chain_id: chainId + }; + } catch (error) { + return {}; + } }; addCollectible = async () => { diff --git a/app/components/UI/AddCustomToken/index.js b/app/components/UI/AddCustomToken/index.js index f84627b02d1..1e6a08cd346 100644 --- a/app/components/UI/AddCustomToken/index.js +++ b/app/components/UI/AddCustomToken/index.js @@ -52,16 +52,20 @@ export default class AddCustomToken extends PureComponent { }; getAnalyticsParams = () => { - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - const { address, symbol } = this.state; - return { - token_address: { value: address, anonymous: true }, - token_symbol: { value: symbol, anonymous: true }, - network_name: type, - chain_id: chainId, - source: 'Custom token' - }; + try { + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + const { address, symbol } = this.state; + return { + token_address: address, + token_symbol: symbol, + network_name: type, + chain_id: chainId, + source: 'Custom token' + }; + } catch (error) { + return {}; + } }; addToken = async () => { diff --git a/app/components/UI/ApproveTransactionReview/index.js b/app/components/UI/ApproveTransactionReview/index.js index 7ae908d45d4..9c38c20684e 100644 --- a/app/components/UI/ApproveTransactionReview/index.js +++ b/app/components/UI/ApproveTransactionReview/index.js @@ -318,26 +318,30 @@ class ApproveTransactionReview extends PureComponent { } getAnalyticsParams = () => { - const { activeTabUrl, transaction, onSetAnalyticsParams } = this.props; - const { tokenSymbol, originalApproveAmount, encodedAmount } = this.state; - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - const isDapp = !Object.values(AppConstants.DEEPLINKS).includes(transaction.origin); - const unlimited = encodedAmount === 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'; - const params = { - dapp_host_name: transaction?.origin, - dapp_url: isDapp ? activeTabUrl : undefined, - network_name: type, - chain_id: chainId, - active_currency: { value: tokenSymbol, anonymous: true }, - number_tokens_requested: { value: originalApproveAmount, anonymous: true }, - unlimited_permission_requested: unlimited, - referral_type: isDapp ? 'dapp' : transaction?.origin - }; - // Send analytics params to parent component so it's available when cancelling and confirming - onSetAnalyticsParams && onSetAnalyticsParams(params); - - return params; + try { + const { activeTabUrl, transaction, onSetAnalyticsParams } = this.props; + const { tokenSymbol, originalApproveAmount, encodedAmount } = this.state; + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + const isDapp = !Object.values(AppConstants.DEEPLINKS).includes(transaction?.origin); + const unlimited = encodedAmount === 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'; + const params = { + dapp_host_name: transaction?.origin, + dapp_url: isDapp ? activeTabUrl : undefined, + network_name: type, + chain_id: chainId, + active_currency: { value: tokenSymbol, anonymous: true }, + number_tokens_requested: { value: originalApproveAmount, anonymous: true }, + unlimited_permission_requested: unlimited, + referral_type: isDapp ? 'dapp' : transaction?.origin + }; + // Send analytics params to parent component so it's available when cancelling and confirming + onSetAnalyticsParams && onSetAnalyticsParams(params); + + return params; + } catch (error) { + return {}; + } }; trackApproveEvent = event => { diff --git a/app/components/UI/CustomGas/index.js b/app/components/UI/CustomGas/index.js index ffd905440c4..781df3efc1c 100644 --- a/app/components/UI/CustomGas/index.js +++ b/app/components/UI/CustomGas/index.js @@ -512,16 +512,20 @@ class CustomGas extends PureComponent { }; getAnalyticsParams = () => { - const { advancedCustomGas, chainId, networkType, view, analyticsParams } = this.props; - const { gasSpeedSelected } = this.state; - return { - ...(analyticsParams || {}), - network_name: networkType, - chain_id: chainId, - function_type: { value: view, anonymous: true }, - gas_mode: { value: advancedCustomGas ? 'Advanced' : 'Basic', anonymous: true }, - speed_set: { value: advancedCustomGas ? undefined : gasSpeedSelected, anonymous: true } - }; + try { + const { advancedCustomGas, chainId, networkType, view, analyticsParams } = this.props; + const { gasSpeedSelected } = this.state; + return { + ...(analyticsParams || {}), + network_name: networkType, + chain_id: chainId, + function_type: view, + gas_mode: advancedCustomGas ? 'Advanced' : 'Basic', + speed_set: advancedCustomGas ? undefined : gasSpeedSelected + }; + } catch (error) { + return {}; + } }; //Handle gas fee selection when save button is pressed instead of everytime a change is made, otherwise cannot switch back to review mode if there is an error diff --git a/app/components/UI/MessageSign/index.js b/app/components/UI/MessageSign/index.js index 0d5ed009e10..09e15d7c66d 100644 --- a/app/components/UI/MessageSign/index.js +++ b/app/components/UI/MessageSign/index.js @@ -62,17 +62,21 @@ export default class MessageSign extends PureComponent { }; getAnalyticsParams = () => { - const { currentPageInformation } = this.props; - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - const url = new URL(currentPageInformation.url); - return { - dapp_host_name: url?.host, - dapp_url: currentPageInformation?.url, - network_name: type, - chain_id: chainId, - sign_type: 'eth' - }; + try { + const { currentPageInformation } = this.props; + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + const url = new URL(currentPageInformation?.url); + return { + dapp_host_name: url?.host, + dapp_url: currentPageInformation?.url, + network_name: type, + chain_id: chainId, + sign_type: 'eth' + }; + } catch (error) { + return {}; + } }; componentDidMount = () => { @@ -113,14 +117,14 @@ export default class MessageSign extends PureComponent { }; cancelSignature = () => { - AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_CANCELLED, this.getAnalyticsParams()); this.rejectMessage(); + AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_CANCELLED, this.getAnalyticsParams()); this.props.onCancel(); }; confirmSignature = () => { - AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_COMPLETED, this.getAnalyticsParams()); this.signMessage(); + AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_COMPLETED, this.getAnalyticsParams()); this.props.onConfirm(); }; diff --git a/app/components/UI/PersonalSign/index.js b/app/components/UI/PersonalSign/index.js index 3be8fd7a319..91e21679a4b 100644 --- a/app/components/UI/PersonalSign/index.js +++ b/app/components/UI/PersonalSign/index.js @@ -67,17 +67,22 @@ export default class PersonalSign extends PureComponent { }; getAnalyticsParams = () => { - const { currentPageInformation } = this.props; - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - const url = new URL(currentPageInformation.url); - return { - dapp_host_name: url?.host, - dapp_url: currentPageInformation?.url, - network_name: type, - chain_id: chainId, - sign_type: 'personal' - }; + try { + const { currentPageInformation } = this.props; + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + const url = new URL(currentPageInformation?.url); + + return { + dapp_host_name: url?.host, + dapp_url: currentPageInformation?.url, + network_name: type, + chain_id: chainId, + sign_type: 'personal' + }; + } catch (error) { + return {}; + } }; componentDidMount = () => { @@ -118,14 +123,14 @@ export default class PersonalSign extends PureComponent { }; cancelSignature = () => { - AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_CANCELLED, this.getAnalyticsParams()); this.rejectMessage(); + AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_CANCELLED, this.getAnalyticsParams()); this.props.onCancel(); }; confirmSignature = () => { - AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_COMPLETED, this.getAnalyticsParams()); this.signMessage(); + AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_COMPLETED, this.getAnalyticsParams()); this.props.onConfirm(); }; diff --git a/app/components/UI/SearchTokenAutocomplete/index.js b/app/components/UI/SearchTokenAutocomplete/index.js index 3955e0901b3..83dd3a6caba 100644 --- a/app/components/UI/SearchTokenAutocomplete/index.js +++ b/app/components/UI/SearchTokenAutocomplete/index.js @@ -50,16 +50,20 @@ export default class SearchTokenAutocomplete extends PureComponent { }; getAnalyticsParams = () => { - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - const { address, symbol } = this.state.selectedAsset; - return { - token_address: { value: address, anonymous: true }, - token_symbol: { value: symbol, anonymous: true }, - network_name: type, - chain_id: chainId, - source: 'Add token dropdown' - }; + try { + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + const { address, symbol } = this.state.selectedAsset || {}; + return { + token_address: address, + token_symbol: symbol, + network_name: type, + chain_id: chainId, + source: 'Add token dropdown' + }; + } catch (error) { + return {}; + } }; addToken = async () => { diff --git a/app/components/UI/TransactionEditor/index.js b/app/components/UI/TransactionEditor/index.js index d0b7aa3c761..dfdb3fa2a1c 100644 --- a/app/components/UI/TransactionEditor/index.js +++ b/app/components/UI/TransactionEditor/index.js @@ -611,13 +611,17 @@ class TransactionEditor extends PureComponent { }; getGasAnalyticsParams = () => { - const { transaction, activeTabUrl } = this.props; - const { selectedAsset } = transaction; - return { - dapp_host_name: transaction?.origin, - dapp_url: activeTabUrl, - active_currency: { value: selectedAsset?.symbol, anonymous: true } - }; + try { + const { transaction, activeTabUrl } = this.props; + const { selectedAsset } = transaction; + return { + dapp_host_name: transaction?.origin, + dapp_url: activeTabUrl, + active_currency: { value: selectedAsset?.symbol, anonymous: true } + }; + } catch (error) { + return {}; + } }; render = () => { diff --git a/app/components/UI/TypedSign/index.js b/app/components/UI/TypedSign/index.js index b850d716c9b..09e9b5e1425 100644 --- a/app/components/UI/TypedSign/index.js +++ b/app/components/UI/TypedSign/index.js @@ -76,18 +76,22 @@ export default class TypedSign extends PureComponent { }; getAnalyticsParams = () => { - const { currentPageInformation, messageParams } = this.props; - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - const url = new URL(currentPageInformation.url); - return { - dapp_host_name: url?.host, - dapp_url: currentPageInformation?.url, - network_name: type, - chain_id: chainId, - sign_type: 'typed', - version: messageParams?.version - }; + try { + const { currentPageInformation, messageParams } = this.props; + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + const url = new URL(currentPageInformation?.url); + return { + dapp_host_name: url?.host, + dapp_url: currentPageInformation?.url, + network_name: type, + chain_id: chainId, + sign_type: 'typed', + version: messageParams?.version + }; + } catch (error) { + return {}; + } }; componentDidMount = () => { @@ -129,14 +133,14 @@ export default class TypedSign extends PureComponent { }; cancelSignature = () => { - AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_CANCELLED, this.getAnalyticsParams()); this.rejectMessage(); + AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_CANCELLED, this.getAnalyticsParams()); this.props.onCancel(); }; confirmSignature = () => { - AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_COMPLETED, this.getAnalyticsParams()); this.signMessage(); + AnalyticsV2.trackEvent(AnalyticsV2.ANALYTICS_EVENTS.SIGN_REQUEST_COMPLETED, this.getAnalyticsParams()); this.props.onConfirm(); }; diff --git a/app/components/UI/WatchAssetRequest/index.js b/app/components/UI/WatchAssetRequest/index.js index 6670c464d94..91f56f59569 100644 --- a/app/components/UI/WatchAssetRequest/index.js +++ b/app/components/UI/WatchAssetRequest/index.js @@ -106,24 +106,28 @@ class WatchAssetRequest extends PureComponent { }; getAnalyticsParams = () => { - const { - suggestedAssetMeta: { asset }, - currentPageInformation - } = this.props; + try { + const { + suggestedAssetMeta: { asset }, + currentPageInformation + } = this.props; - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; - const url = new URL(currentPageInformation?.url); - return { - token_address: asset?.address, - token_symbol: asset?.symbol, - dapp_host_name: url?.host, - dapp_url: currentPageInformation?.url, - network_name: type, - chain_id: chainId, - source: 'Dapp suggested (watchAsset)' - }; + const url = new URL(currentPageInformation?.url); + return { + token_address: asset?.address, + token_symbol: asset?.symbol, + dapp_host_name: url?.host, + dapp_url: currentPageInformation?.url, + network_name: type, + chain_id: chainId, + source: 'Dapp suggested (watchAsset)' + }; + } catch (error) { + return {}; + } }; componentWillUnmount = async () => { diff --git a/app/components/Views/Approval/index.js b/app/components/Views/Approval/index.js index 8d029e2776c..7e78deaa49d 100644 --- a/app/components/Views/Approval/index.js +++ b/app/components/Views/Approval/index.js @@ -164,16 +164,20 @@ class Approval extends PureComponent { }; getAnalyticsParams = () => { - const { activeTabUrl, chainId, transaction, networkType } = this.props; - const { selectedAsset } = transaction; - return { - dapp_host_name: transaction?.origin, - dapp_url: activeTabUrl, - network_name: networkType, - chain_id: chainId, - active_currency: { value: selectedAsset?.symbol, anonymous: true }, - asset_type: { value: transaction?.assetType, anonymous: true } - }; + try { + const { activeTabUrl, chainId, transaction, networkType } = this.props; + const { selectedAsset } = transaction; + return { + dapp_host_name: transaction?.origin, + dapp_url: activeTabUrl, + network_name: networkType, + chain_id: chainId, + active_currency: { value: selectedAsset?.symbol, anonymous: true }, + asset_type: { value: transaction?.assetType, anonymous: true } + }; + } catch (error) { + return {}; + } }; /** diff --git a/app/components/Views/ApproveView/Approve/index.js b/app/components/Views/ApproveView/Approve/index.js index 467167be5ea..727c3758d4b 100644 --- a/app/components/Views/ApproveView/Approve/index.js +++ b/app/components/Views/ApproveView/Approve/index.js @@ -240,13 +240,17 @@ class Approve extends PureComponent { }; getGasAnalyticsParams = () => { - const { analyticsParams } = this.state; + try { + const { analyticsParams } = this.state; - return { - dapp_host_name: analyticsParams?.dapp_host_name, - dapp_url: analyticsParams?.dapp_url, - active_currency: { value: analyticsParams?.active_currency, anonymous: true } - }; + return { + dapp_host_name: analyticsParams?.dapp_host_name, + dapp_url: analyticsParams?.dapp_url, + active_currency: { value: analyticsParams?.active_currency, anonymous: true } + }; + } catch (error) { + return {}; + } }; render = () => { diff --git a/app/components/Views/SendFlow/Confirm/index.js b/app/components/Views/SendFlow/Confirm/index.js index 46ed93ce157..bd7ab140216 100644 --- a/app/components/Views/SendFlow/Confirm/index.js +++ b/app/components/Views/SendFlow/Confirm/index.js @@ -318,21 +318,29 @@ class Confirm extends PureComponent { }; getAnalyticsParams = () => { - const { selectedAsset } = this.props; - const { NetworkController } = Engine.context; - const { chainId, type } = NetworkController?.state?.provider || {}; - return { - active_currency: { value: selectedAsset?.symbol, anonymous: true }, - network_name: type, - chain_id: chainId - }; + try { + const { selectedAsset } = this.props; + const { NetworkController } = Engine.context; + const { chainId, type } = NetworkController?.state?.provider || {}; + return { + active_currency: { value: selectedAsset?.symbol, anonymous: true }, + network_name: type, + chain_id: chainId + }; + } catch (error) { + return {}; + } }; getGasAnalyticsParams = () => { - const { selectedAsset } = this.props; - return { - active_currency: { value: selectedAsset.symbol, anonymous: true } - }; + try { + const { selectedAsset } = this.props; + return { + active_currency: { value: selectedAsset.symbol, anonymous: true } + }; + } catch (error) { + return {}; + } }; componentDidMount = async () => { diff --git a/app/core/RPCMethods/wallet_addEthereumChain.js b/app/core/RPCMethods/wallet_addEthereumChain.js index 81dc04582aa..feceb2d88af 100644 --- a/app/core/RPCMethods/wallet_addEthereumChain.js +++ b/app/core/RPCMethods/wallet_addEthereumChain.js @@ -113,11 +113,11 @@ const wallet_addEthereumChain = async ({ }); const analyticsParams = { - rpc_url: existingNetwork.rpcUrl, + rpc_url: existingNetwork?.rpcUrl, chain_id: _chainId, source: 'Custom Network API', - symbol: existingNetwork.ticker, - block_explorer_url: existingNetwork.blockExplorerUrl, + symbol: existingNetwork?.ticker, + block_explorer_url: existingNetwork?.blockExplorerUrl, network_name: 'rpc' }; diff --git a/app/util/analyticsV2.js b/app/util/analyticsV2.js index 11f2d54faaf..298b9862b0e 100644 --- a/app/util/analyticsV2.js +++ b/app/util/analyticsV2.js @@ -33,7 +33,6 @@ export const ANALYTICS_EVENTS_V2 = { NETWORK_ADDED: generateOpt('Network Added'), NETWORK_REQUESTED: generateOpt('Network Requested'), NETWORK_REQUEST_REJECTED: generateOpt('Network Request Rejected'), - NETWORK_SWITCH_REJECTED: generateOpt('Network Switch Rejected'), // Send transaction SEND_TRANSACTION_STARTED: generateOpt('Send Transaction Started'), SEND_TRANSACTION_COMPLETED: generateOpt('Send Transaction Completed') @@ -58,11 +57,7 @@ export const trackEventV2 = (eventName, params) => { for (const key in params) { const property = params[key]; - if (typeof property === 'string' || property instanceof String) { - // Non-anonymous properties - add to both - userParams[key] = property; - anonymousParams[key] = property; - } else if (typeof property === 'object') { + if (typeof property === 'object') { if (property.anonymous) { // Anonymous property - add only to anonymous params anonymousParams[key] = property.value; @@ -71,6 +66,10 @@ export const trackEventV2 = (eventName, params) => { userParams[key] = property.value; anonymousParams[key] = property.value; } + } else { + // Non-anonymous properties - add to both + userParams[key] = property; + anonymousParams[key] = property; } } diff --git a/ios/MetaMask.xcodeproj/project.pbxproj b/ios/MetaMask.xcodeproj/project.pbxproj index 1fdbd817742..75043cc8a1a 100644 --- a/ios/MetaMask.xcodeproj/project.pbxproj +++ b/ios/MetaMask.xcodeproj/project.pbxproj @@ -849,7 +849,7 @@ CODE_SIGN_ENTITLEMENTS = MetaMask/MetaMaskDebug.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 606; + CURRENT_PROJECT_VERSION = 607; DEAD_CODE_STRIPPING = NO; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 48XVW22RCG; @@ -913,7 +913,7 @@ CODE_SIGN_ENTITLEMENTS = MetaMask/MetaMask.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 606; + CURRENT_PROJECT_VERSION = 607; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 48XVW22RCG; FRAMEWORK_SEARCH_PATHS = ( diff --git a/locales/languages/es.json b/locales/languages/es.json index 04884442541..c8b74a5f16d 100644 --- a/locales/languages/es.json +++ b/locales/languages/es.json @@ -314,6 +314,7 @@ "description_content_2": "MetaMask…", "action_description_1": "Siempre le permitirá optar por no participar a través de Configuración", "action_description_2": "Enviará eventos de vistas de página y clics anónimos", + "action_description_3": "Enviar país, región, ciudad (no ubicación específica)", "action_description_4": "Nunca recopilará claves, direcciones, transacciones, saldos, hashes o cualquier otra información personal", "action_description_5": "Nunca recopilará su dirección IP", "action_description_6": "Nunca venderá datos con afán de lucro. ¡Jamás!" From d2b3ea30d2f0050780f4603278f14513ff295dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20Mi=C3=B1o?= Date: Fri, 9 Apr 2021 16:11:31 -0400 Subject: [PATCH 03/11] bugfix/2488 (#2490) --- app/components/Views/SendFlow/Amount/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/components/Views/SendFlow/Amount/index.js b/app/components/Views/SendFlow/Amount/index.js index a55baecf28b..efbb5b5e623 100644 --- a/app/components/Views/SendFlow/Amount/index.js +++ b/app/components/Views/SendFlow/Amount/index.js @@ -397,7 +397,7 @@ class Amount extends PureComponent { this.collectibles = this.processCollectibles(); this.amountInput && this.amountInput.current && this.amountInput.current.focus(); this.onInputChange(readableValue); - this.handleSelectedAssetBalance(selectedAsset); + !selectedAsset.tokenId && this.handleSelectedAssetBalance(selectedAsset); const estimatedTotalGas = await this.estimateTransactionTotalGas(); this.setState({ @@ -733,7 +733,6 @@ class Amount extends PureComponent { handleSelectedAssetBalance = ({ address, decimals, symbol, isETH }, renderableBalance) => { const { accounts, selectedAddress, contractBalances } = this.props; let currentBalance; - if (renderableBalance) { currentBalance = `${renderableBalance} ${symbol}`; } else if (isETH) { From 4a1c60d3170be4dbc22c4a5d9ba3319b8b73cd05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20Mi=C3=B1o?= Date: Fri, 9 Apr 2021 16:42:11 -0400 Subject: [PATCH 04/11] bugfix/4849 (#2491) * fixit * title * bump608 * rightcheck * a * rm? --- app/components/Views/BrowserTab/index.js | 6 +++--- app/components/Views/ResetPassword/index.js | 7 ++++--- app/components/Views/Settings/SecuritySettings/index.js | 3 ++- ios/MetaMask.xcodeproj/project.pbxproj | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/components/Views/BrowserTab/index.js b/app/components/Views/BrowserTab/index.js index 4fad1ab76fb..219a7b8a678 100644 --- a/app/components/Views/BrowserTab/index.js +++ b/app/components/Views/BrowserTab/index.js @@ -418,7 +418,7 @@ export const BrowserTab = props => { const { privacyMode, selectedAddress } = props; const isEnabled = !privacyMode || approvedHosts[hostname]; - return isEnabled ? [selectedAddress.toLowerCase()] : []; + return isEnabled && selectedAddress ? [selectedAddress] : []; }; const rpcMethods = { @@ -464,7 +464,7 @@ export const BrowserTab = props => { }); if (approved) { - res.result = [selectedAddress.toLowerCase()]; + res.result = selectedAddress ? [selectedAddress] : []; } else { throw ethErrors.provider.userRejectedRequest('User denied account authorization.'); } @@ -1961,7 +1961,7 @@ const mapStateToProps = state => ({ networkProvider: state.engine.backgroundState.NetworkController.provider, networkType: state.engine.backgroundState.NetworkController.provider.type, network: state.engine.backgroundState.NetworkController.network, - selectedAddress: state.engine.backgroundState.PreferencesController.selectedAddress.toLowerCase(), + selectedAddress: state.engine.backgroundState.PreferencesController.selectedAddress?.toLowerCase(), privacyMode: state.privacy.privacyMode, searchEngine: state.settings.searchEngine, whitelist: state.browser.whitelist, diff --git a/app/components/Views/ResetPassword/index.js b/app/components/Views/ResetPassword/index.js index dfa5375b828..1a7a3a7957a 100644 --- a/app/components/Views/ResetPassword/index.js +++ b/app/components/Views/ResetPassword/index.js @@ -27,7 +27,7 @@ import Engine from '../../../core/Engine'; import Device from '../../../util/Device'; import { colors, fontStyles, baseStyles } from '../../../styles/common'; import { strings } from '../../../../locales/i18n'; -import { getOnboardingNavbarOptions } from '../../UI/Navbar'; +import { getNavigationOptionsTitle } from '../../UI/Navbar'; import SecureKeychain from '../../../core/SecureKeychain'; import Icon from 'react-native-vector-icons/FontAwesome'; import AppConstants from '../../../core/AppConstants'; @@ -251,7 +251,8 @@ const CONFIRM_PASSWORD = 'confirm_password'; * View where users can set their password for the first time */ class ResetPassword extends PureComponent { - static navigationOptions = ({ navigation }) => getOnboardingNavbarOptions(navigation); + static navigationOptions = ({ navigation }) => + getNavigationOptionsTitle(strings('password_reset.change_password'), navigation); static propTypes = { /** @@ -451,7 +452,7 @@ class ResetPassword extends PureComponent { if (hdKeyring.accounts.includes(selectedAddress)) { PreferencesController.setSelectedAddress(selectedAddress); } else { - PreferencesController.setSelectedAddress(hdKeyring[0]); + PreferencesController.setSelectedAddress(hdKeyring.accounts[0]); } }; diff --git a/app/components/Views/Settings/SecuritySettings/index.js b/app/components/Views/Settings/SecuritySettings/index.js index 7017adb638c..8416178c9b3 100644 --- a/app/components/Views/Settings/SecuritySettings/index.js +++ b/app/components/Views/Settings/SecuritySettings/index.js @@ -228,7 +228,8 @@ class Settings extends PureComponent { seedphraseBackedUp: PropTypes.bool }; - static navigationOptions = ({ navigation }) => getNavigationOptionsTitle(strings('app_settings.back'), navigation); + static navigationOptions = ({ navigation }) => + getNavigationOptionsTitle(strings('app_settings.security_title'), navigation); state = { approvalModalVisible: false, diff --git a/ios/MetaMask.xcodeproj/project.pbxproj b/ios/MetaMask.xcodeproj/project.pbxproj index 75043cc8a1a..6520dcc27e8 100644 --- a/ios/MetaMask.xcodeproj/project.pbxproj +++ b/ios/MetaMask.xcodeproj/project.pbxproj @@ -849,7 +849,7 @@ CODE_SIGN_ENTITLEMENTS = MetaMask/MetaMaskDebug.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 607; + CURRENT_PROJECT_VERSION = 608; DEAD_CODE_STRIPPING = NO; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 48XVW22RCG; @@ -913,7 +913,7 @@ CODE_SIGN_ENTITLEMENTS = MetaMask/MetaMask.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 607; + CURRENT_PROJECT_VERSION = 608; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = 48XVW22RCG; FRAMEWORK_SEARCH_PATHS = ( From a1900713971f9fb8acfbd6e9dbedb9d884fe7104 Mon Sep 17 00:00:00 2001 From: ricky Date: Mon, 12 Apr 2021 13:48:49 -0400 Subject: [PATCH 05/11] Display correct number of decimals for 'usd' fiat (#2381) --- app/core/Engine.js | 5 +++-- app/util/number.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/core/Engine.js b/app/core/Engine.js index d1ba8c936ed..8a76319905f 100644 --- a/app/core/Engine.js +++ b/app/core/Engine.js @@ -235,13 +235,14 @@ class Engine { TokenRatesController } = this.datamodel.context; const { selectedAddress } = PreferencesController.state; - const { conversionRate } = CurrencyRateController.state; + const { conversionRate, currentCurrency } = CurrencyRateController.state; const { accounts } = AccountTrackerController.state; const { tokens } = AssetsController.state; let ethFiat = 0; let tokenFiat = 0; if (accounts[selectedAddress]) { - ethFiat = weiToFiatNumber(accounts[selectedAddress].balance, conversionRate); + const decimalsToShow = (currentCurrency === 'usd' && 2) || undefined; + ethFiat = weiToFiatNumber(accounts[selectedAddress].balance, conversionRate, decimalsToShow); } if (tokens.length > 0) { const { contractBalances: tokenBalances } = TokenBalancesController.state; diff --git a/app/util/number.js b/app/util/number.js index b8f25118505..13131b7227b 100644 --- a/app/util/number.js +++ b/app/util/number.js @@ -348,7 +348,7 @@ export function weiToFiat(wei, conversionRate, currencyCode, decimalsToShow = 5) } return `0.00 ${currencyCode}`; } - decimalsToShow = currencyCode === 'usd' && 2; + decimalsToShow = (currencyCode === 'usd' && 2) || undefined; const value = weiToFiatNumber(wei, conversionRate, decimalsToShow); if (currencySymbols[currencyCode]) { return `${currencySymbols[currencyCode]}${value}`; From a25d1975824e6734ff1607eb6b0f8ae3a77e5d92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Apr 2021 14:44:55 -0400 Subject: [PATCH 06/11] Bump babel-eslint from 10.0.3 to 10.1.0 (#2403) * Bump babel-eslint from 10.0.3 to 10.1.0 Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.3 to 10.1.0. - [Release notes](https://github.com/babel/babel-eslint/releases) - [Commits](https://github.com/babel/babel-eslint/compare/v10.0.3...v10.1.0) Signed-off-by: dependabot[bot] * Add `gasSpeedSelected` to props validation * remove optional chaining Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: ricky --- app/components/UI/CustomGas/index.js | 8 +++- package.json | 2 +- yarn.lock | 70 ++-------------------------- 3 files changed, 11 insertions(+), 69 deletions(-) diff --git a/app/components/UI/CustomGas/index.js b/app/components/UI/CustomGas/index.js index 781df3efc1c..3103e63b99c 100644 --- a/app/components/UI/CustomGas/index.js +++ b/app/components/UI/CustomGas/index.js @@ -330,11 +330,15 @@ class CustomGas extends PureComponent { /** * Extra analytics params to be send with the gas analytics */ - analyticsParams: PropTypes.object + analyticsParams: PropTypes.object, + /** + * The currently selected gas speed + */ + gasSpeedSelected: PropTypes.string }; state = { - gasSpeedSelected: this?.props?.gasSpeedSelected || 'average', + gasSpeedSelected: this.props.gasSpeedSelected || 'average', customGasPrice: '10', customGasLimit: fromWei(this.props.gas, 'wei'), customGasPriceBNWei: this.props.gasPrice, diff --git a/package.json b/package.json index 61b3faa24c6..2ab6a9ba88d 100644 --- a/package.json +++ b/package.json @@ -210,7 +210,7 @@ "@react-native-community/eslint-config": "^1.1.0", "assert": "1.4.1", "babel-core": "7.0.0-bridge.0", - "babel-eslint": "10.0.3", + "babel-eslint": "10.1.0", "babel-jest": "^26.6.3", "concat-cli": "4.0.0", "detox": "17.3.1", diff --git a/yarn.lock b/yarn.lock index 560079f002f..d764de87d57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" - integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== - dependencies: - "@babel/highlight" "^7.10.1" - -"@babel/code-frame@^7.10.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1", "@babel/code-frame@^7.10.4": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== @@ -327,11 +320,6 @@ dependencies: "@babel/types" "^7.12.11" -"@babel/helper-validator-identifier@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" - integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== - "@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" @@ -365,15 +353,6 @@ "@babel/traverse" "^7.12.5" "@babel/types" "^7.12.5" -"@babel/highlight@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" - integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" @@ -383,12 +362,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.1", "@babel/parser@^7.7.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.1.tgz#2e142c27ca58aa2c7b119d09269b702c8bbad28c" - integrity sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg== - -"@babel/parser@^7.12.10", "@babel/parser@^7.12.7": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.10.1", "@babel/parser@^7.12.10", "@babel/parser@^7.12.7", "@babel/parser@^7.7.0": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== @@ -853,22 +827,7 @@ "@babel/parser" "^7.12.7" "@babel/types" "^7.12.7" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.1", "@babel/traverse@^7.7.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" - integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ== - dependencies: - "@babel/code-frame" "^7.10.1" - "@babel/generator" "^7.10.1" - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/parser" "^7.10.1" - "@babel/types" "^7.10.1" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.1", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.7.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a" integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg== @@ -883,16 +842,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.1", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.1.tgz#6886724d31c8022160a7db895e6731ca33483921" - integrity sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.5", "@babel/types@^7.12.7": +"@babel/types@^7.0.0", "@babel/types@^7.10.1", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.0": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.11.tgz#a86e4d71e30a9b6ee102590446c98662589283ce" integrity sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA== @@ -2829,18 +2779,6 @@ babel-core@7.0.0-bridge.0: resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== -babel-eslint@10.0.3: - version "10.0.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" - integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - babel-eslint@10.1.0, babel-eslint@^10.0.1: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" From 91aa93207baeb099c50bdc8fff9b6ae245c1475d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Apr 2021 16:18:23 -0400 Subject: [PATCH 07/11] Bump eslint-plugin-prettier from 3.3.0 to 3.3.1 (#2406) Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.3.0 to 3.3.1. - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v3.3.0...v3.3.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2ab6a9ba88d..c880e2d82c3 100644 --- a/package.json +++ b/package.json @@ -220,7 +220,7 @@ "eslint": "^6.5.1", "eslint-config-react-native": "4.0.0", "eslint-plugin-import": "2.18.2", - "eslint-plugin-prettier": "^3.3.0", + "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-react": "7.16.0", "eslint-plugin-react-native": "3.7.0", "husky": "1.3.1", diff --git a/yarn.lock b/yarn.lock index d764de87d57..78e44f03057 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4888,10 +4888,10 @@ eslint-plugin-prettier@3.1.2: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-prettier@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.0.tgz#61e295349a65688ffac0b7808ef0a8244bdd8d40" - integrity sha512-tMTwO8iUWlSRZIwS9k7/E4vrTsfvsrcM5p1eftyuqWH25nKsz/o6/54I7jwQ/3zobISyC7wMy9ZsFwgTxOcOpQ== +eslint-plugin-prettier@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7" + integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ== dependencies: prettier-linter-helpers "^1.0.0" From 7e6fa750b48e67be92722be76e61881630db5ad0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Apr 2021 17:50:02 -0400 Subject: [PATCH 08/11] Bump json-rpc-middleware-stream from 2.1.1 to 3.0.0 (#2411) * Bump json-rpc-middleware-stream from 2.1.1 to 3.0.0 Bumps [json-rpc-middleware-stream](https://github.com/MetaMask/json-rpc-middleware-stream) from 2.1.1 to 3.0.0. - [Release notes](https://github.com/MetaMask/json-rpc-middleware-stream/releases) - [Changelog](https://github.com/MetaMask/json-rpc-middleware-stream/blob/main/CHANGELOG.md) - [Commits](https://github.com/MetaMask/json-rpc-middleware-stream/commits) Signed-off-by: dependabot[bot] * Used named import for createEngineStream Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: ricky --- app/core/BackgroundBridge.js | 2 +- package.json | 2 +- yarn.lock | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/core/BackgroundBridge.js b/app/core/BackgroundBridge.js index 2a4e85ce765..42386131b41 100644 --- a/app/core/BackgroundBridge.js +++ b/app/core/BackgroundBridge.js @@ -10,8 +10,8 @@ import Engine from './Engine'; import { getAllNetworks } from '../util/networks'; import Logger from '../util/Logger'; import AppConstants from './AppConstants'; +import { createEngineStream } from 'json-rpc-middleware-stream'; -const createEngineStream = require('json-rpc-middleware-stream/engineStream'); const createFilterMiddleware = require('eth-json-rpc-filters'); const createSubscriptionManager = require('eth-json-rpc-filters/subscriptionManager'); const providerAsMiddleware = require('eth-json-rpc-middleware/providerAsMiddleware'); diff --git a/package.json b/package.json index c880e2d82c3..0a638f3d8f3 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,7 @@ "https-browserify": "0.0.1", "is-url": "^1.2.4", "json-rpc-engine": "^6.1.0", - "json-rpc-middleware-stream": "2.1.1", + "json-rpc-middleware-stream": "3.0.0", "lottie-react-native": "git+https://github.com/MetaMask/lottie-react-native.git#7ce6a78ac4ac7b9891bc513cb3f12f8b9c9d9106", "multihashes": "0.4.14", "number-to-bn": "1.7.0", diff --git a/yarn.lock b/yarn.lock index 78e44f03057..33d3478bf96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8133,13 +8133,13 @@ json-rpc-engine@^6.1.0: "@metamask/safe-event-emitter" "^2.0.0" eth-rpc-errors "^4.0.2" -json-rpc-middleware-stream@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-2.1.1.tgz#06e5409e201e7ddeae47bef29f7059eafd4d5325" - integrity sha512-WZheufPN+/RKkjXQP3lK5tFYblqG0n+oYv5qpammwwY2vsJRB7mM4Txhr4ajzvYEZi1UkENnplrmaYiqaqafaA== +json-rpc-middleware-stream@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-3.0.0.tgz#8540331d884f36b9e0ad31054cc68ac6b5a89b52" + integrity sha512-JmZmlehE0xF3swwORpLHny/GvW3MZxCsb2uFNBrn8TOqMqivzCfz232NSDLLOtIQlrPlgyEjiYpyzyOPFOzClw== dependencies: + "@metamask/safe-event-emitter" "^2.0.0" readable-stream "^2.3.3" - safe-event-emitter "^1.0.1" json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: version "1.0.1" From 67925709a5bc015c501ec23d568cd8f57e6504b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Apr 2021 11:02:32 -0400 Subject: [PATCH 09/11] Bump react-native-share from 3.3.2 to 5.2.2 (#2499) Bumps [react-native-share](https://github.com/react-native-community/react-native-share) from 3.3.2 to 5.2.2. - [Release notes](https://github.com/react-native-community/react-native-share/releases) - [Changelog](https://github.com/react-native-share/react-native-share/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-native-community/react-native-share/compare/v3.3.2...v5.2.2) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0a638f3d8f3..240ecb46f87 100644 --- a/package.json +++ b/package.json @@ -172,7 +172,7 @@ "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": "^3.2.0", + "react-native-share": "^5.2.2", "react-native-splash-screen": "git+https://github.com/MetaMask/react-native-splash-screen.git", "react-native-step-indicator": "^1.0.3", "react-native-svg": "12.1.0", diff --git a/yarn.lock b/yarn.lock index 33d3478bf96..42882e2fb9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11086,10 +11086,10 @@ react-native-sensors@5.3.0: dependencies: rxjs ">= 6" -react-native-share@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/react-native-share/-/react-native-share-3.3.2.tgz#06d1d3f14ba8eeb95e7e94e4db6a286e9902bd29" - integrity sha512-Pvkr62TiCX511RMPL+wvy9Fofre4HQnvUT5zzgPPN3vszP/C8lUb7cmFu/8x5U14t3JQg+xW/svNK5eKNebJKw== +react-native-share@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/react-native-share/-/react-native-share-5.2.2.tgz#7161fd37bc861e6a63df5d5c5fafbff10c7ff5e5" + integrity sha512-Jn92T+fXzq8ZIfiZllznFYrhDQoFUcMZ6vO0oXgQJYR5leVZuesqy8II3taWLtQzbAD5tl4Y+EaNYo7Z6TNGTw== "react-native-splash-screen@git+https://github.com/MetaMask/react-native-splash-screen.git": version "3.2.0" From 8a59e80295539aa81c48542256953d3959c9c777 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Apr 2021 11:19:10 -0400 Subject: [PATCH 10/11] Bump jest-serializer from 24.4.0 to 26.6.2 (#2501) Bumps [jest-serializer](https://github.com/facebook/jest/tree/HEAD/packages/jest-serializer) from 24.4.0 to 26.6.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v26.6.2/packages/jest-serializer) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 19 +++++++------------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 240ecb46f87..a2f5db91ad5 100644 --- a/package.json +++ b/package.json @@ -225,7 +225,7 @@ "eslint-plugin-react-native": "3.7.0", "husky": "1.3.1", "jest": "^25.2.7", - "jest-serializer": "24.4.0", + "jest-serializer": "26.6.2", "jetifier": "^1.6.6", "lint-staged": "10.5.4", "metro": "^0.59.0", diff --git a/yarn.lock b/yarn.lock index 42882e2fb9e..b2a12ecc26d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7860,10 +7860,13 @@ jest-runtime@^25.5.4: strip-bom "^4.0.0" yargs "^15.3.1" -jest-serializer@24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" - integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== +jest-serializer@26.6.2, jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" jest-serializer@^24.4.0, jest-serializer@^24.9.0: version "24.9.0" @@ -7877,14 +7880,6 @@ jest-serializer@^25.5.0: dependencies: graceful-fs "^4.2.4" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - jest-snapshot@^25.5.1: version "25.5.1" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" From 582b86dcd116acc2517d79002d3816b65c26d5af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Apr 2021 12:22:42 -0400 Subject: [PATCH 11/11] Bump vm-browserify from 0.0.4 to 1.1.2 (#2447) Bumps [vm-browserify](https://github.com/substack/vm-browserify) from 0.0.4 to 1.1.2. - [Release notes](https://github.com/substack/vm-browserify/releases) - [Changelog](https://github.com/browserify/vm-browserify/blob/master/CHANGELOG.md) - [Commits](https://github.com/substack/vm-browserify/compare/0.0.4...v1.1.2) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index a2f5db91ad5..d238fe43d2b 100644 --- a/package.json +++ b/package.json @@ -199,7 +199,7 @@ "url": "0.11.0", "url-parse": "1.4.4", "valid-url": "1.0.9", - "vm-browserify": "0.0.4", + "vm-browserify": "1.1.2", "web3-provider-engine": "^16.0.1", "zxcvbn": "4.4.2" }, diff --git a/yarn.lock b/yarn.lock index b2a12ecc26d..60e84cccafb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6975,7 +6975,7 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexof@0.0.1, indexof@~0.0.1: +indexof@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= @@ -13309,12 +13309,10 @@ vlq@^1.0.0: resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468" integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= - dependencies: - indexof "0.0.1" +vm-browserify@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== w3c-hr-time@^1.0.1: version "1.0.2"