Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IMPROVEMENT] Refactor Analytics Events #5454

Merged
merged 12 commits into from
Jan 5, 2023
13 changes: 7 additions & 6 deletions app/components/Nav/Main/RootRPCMethodsUI.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,14 @@ import {
import { swapsUtils } from '@metamask/swaps-controller';
import { util } from '@metamask/controllers';
import Analytics from '../../../core/Analytics/Analytics';
import { ANALYTICS_EVENT_OPTS } from '../../../util/analytics';
import BigNumber from 'bignumber.js';
import { getTokenList } from '../../../reducers/tokens';
import { toLowerCaseEquals } from '../../../util/general';
import { ApprovalTypes } from '../../../core/RPCMethods/RPCMethodMiddleware';
import { KEYSTONE_TX_CANCELED } from '../../../constants/error';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';

import { useTheme } from '../../../util/theme';
import withQRHardwareAwareness from '../../UI/QRHardware/withQRHardwareAwareness';
import QRSigningModal from '../../UI/QRHardware/QRSigningModal';
Expand Down Expand Up @@ -214,9 +215,9 @@ const RootRPCMethodsUI = (props) => {
Analytics.trackEventWithParameters(event, parameters, true);
});
} catch (e) {
Logger.error(e, ANALYTICS_EVENT_OPTS.SWAP_TRACKING_FAILED);
Logger.error(e, MetaMetricsEvents.SWAP_TRACKING_FAILED);
InteractionManager.runAfterInteractions(() => {
Analytics.trackEvent(ANALYTICS_EVENT_OPTS.SWAP_TRACKING_FAILED, {
Analytics.trackEvent(MetaMetricsEvents.SWAP_TRACKING_FAILED, {
error: e,
});
});
Expand All @@ -239,7 +240,7 @@ const RootRPCMethodsUI = (props) => {
});
} else {
if (props.swapsTransactions[transactionMeta.id]?.analytics) {
trackSwaps(ANALYTICS_EVENT_OPTS.SWAP_FAILED, transactionMeta);
trackSwaps(MetaMetricsEvents.SWAP_FAILED, transactionMeta);
}
throw transactionMeta.error;
}
Expand All @@ -249,7 +250,7 @@ const RootRPCMethodsUI = (props) => {
`${transactionMeta.id}:confirmed`,
(transactionMeta) => {
if (props.swapsTransactions[transactionMeta.id]?.analytics) {
trackSwaps(ANALYTICS_EVENT_OPTS.SWAP_COMPLETED, transactionMeta);
trackSwaps(MetaMetricsEvents.SWAP_COMPLETED, transactionMeta);
}
},
);
Expand All @@ -265,7 +266,7 @@ const RootRPCMethodsUI = (props) => {
Logger.error(error, 'error while trying to send transaction (Main)');
} else {
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.QR_HARDWARE_TRANSACTION_CANCELED,
MetaMetricsEvents.QR_HARDWARE_TRANSACTION_CANCELED,
);
}
}
Expand Down
8 changes: 5 additions & 3 deletions app/components/UI/AccountApproval/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ import { strings } from '../../../../locales/i18n';
import { fontStyles } from '../../../styles/common';
import Device from '../../../util/device';
import NotificationManager from '../../../core/NotificationManager';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';

import URL from 'url-parse';
import { getAddressAccountType } from '../../../util/address';
import { ThemeContext, mockTheme } from '../../../util/theme';
Expand Down Expand Up @@ -131,7 +133,7 @@ class AccountApproval extends PureComponent {
componentDidMount = () => {
InteractionManager.runAfterInteractions(() => {
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.CONNECT_REQUEST_STARTED,
MetaMetricsEvents.CONNECT_REQUEST_STARTED,
this.getAnalyticsParams(),
);
});
Expand Down Expand Up @@ -159,7 +161,7 @@ class AccountApproval extends PureComponent {
onConfirm = () => {
this.props.onConfirm();
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.CONNECT_REQUEST_COMPLETED,
MetaMetricsEvents.CONNECT_REQUEST_COMPLETED,
this.getAnalyticsParams(),
);
this.showWalletConnectNotification(true);
Expand All @@ -170,7 +172,7 @@ class AccountApproval extends PureComponent {
*/
onCancel = () => {
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.CONNECT_REQUEST_CANCELLED,
MetaMetricsEvents.CONNECT_REQUEST_CANCELLED,
this.getAnalyticsParams(),
);

Expand Down
19 changes: 7 additions & 12 deletions app/components/UI/AccountList/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import { strings } from '../../../../locales/i18n';
import { toChecksumAddress } from 'ethereumjs-util';
import Logger from '../../../util/Logger';
import Analytics from '../../../core/Analytics/Analytics';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';
import { ANALYTICS_EVENT_OPTS } from '../../../util/analytics';
import { doENSReverseLookup } from '../../../util/ENSUtils';
import AccountElement from './AccountElement';
import { connect } from 'react-redux';
Expand Down Expand Up @@ -203,12 +203,9 @@ class AccountList extends PureComponent {
InteractionManager.runAfterInteractions(() => {
setTimeout(() => {
// Track Event: "Switched Account"
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.SWITCHED_ACCOUNT,
{
number_of_accounts: Object.keys(accounts ?? {}).length,
},
);
AnalyticsV2.trackEvent(MetaMetricsEvents.SWITCHED_ACCOUNT, {
number_of_accounts: Object.keys(accounts ?? {}).length,
});
}, 1000);
});
const orderedAccounts = this.getAccounts();
Expand All @@ -219,15 +216,13 @@ class AccountList extends PureComponent {
importAccount = () => {
this.props.onImportAccount();
InteractionManager.runAfterInteractions(() => {
Analytics.trackEvent(ANALYTICS_EVENT_OPTS.ACCOUNTS_IMPORTED_NEW_ACCOUNT);
Analytics.trackEvent(MetaMetricsEvents.ACCOUNTS_IMPORTED_NEW_ACCOUNT);
});
};

connectHardware = () => {
this.props.onConnectHardware();
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.CONNECT_HARDWARE_WALLET,
);
AnalyticsV2.trackEvent(MetaMetricsEvents.CONNECT_HARDWARE_WALLET);
};

addAccount = async () => {
Expand Down Expand Up @@ -257,7 +252,7 @@ class AccountList extends PureComponent {
}
});
InteractionManager.runAfterInteractions(() => {
Analytics.trackEvent(ANALYTICS_EVENT_OPTS.ACCOUNTS_ADDED_NEW_ACCOUNT);
Analytics.trackEvent(MetaMetricsEvents.ACCOUNTS_ADDED_NEW_ACCOUNT);
});
};

Expand Down
19 changes: 7 additions & 12 deletions app/components/UI/AccountOverview/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { swapsUtils } from '@metamask/swaps-controller';
import { connect } from 'react-redux';
import Engine from '../../../core/Engine';
import Analytics from '../../../core/Analytics/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AppConstants from '../../../core/AppConstants';
import { strings } from '../../../../locales/i18n';

Expand All @@ -26,9 +26,7 @@ import {
toggleReceiveModal,
} from '../../../actions/modals';
import { newAssetTransaction } from '../../../actions/transaction';

import Device from '../../../util/device';
import { ANALYTICS_EVENT_OPTS } from '../../../util/analytics';
import { renderFiat } from '../../../util/number';
import { isQRHardwareAccount, renderAccountName } from '../../../util/address';
import { getEther } from '../../../util/transactions';
Expand Down Expand Up @@ -320,7 +318,7 @@ class AccountOverview extends PureComponent {
});
setTimeout(() => this.props.protectWalletModalVisible(), 2000);
InteractionManager.runAfterInteractions(() => {
Analytics.trackEvent(ANALYTICS_EVENT_OPTS.WALLET_COPIED_ADDRESS);
Analytics.trackEvent(MetaMetricsEvents.WALLET_COPIED_ADDRESS);
});
};

Expand All @@ -335,14 +333,11 @@ class AccountOverview extends PureComponent {
onBuy = () => {
this.props.navigation.navigate(Routes.FIAT_ON_RAMP_AGGREGATOR.ID);
InteractionManager.runAfterInteractions(() => {
Analytics.trackEventWithParameters(
AnalyticsV2.ANALYTICS_EVENTS.BUY_BUTTON_CLICKED,
{
text: 'Buy',
location: 'Wallet',
chain_id_destination: this.props.chainId,
},
);
Analytics.trackEventWithParameters(MetaMetricsEvents.BUY_BUTTON_CLICKED, {
text: 'Buy',
location: 'Wallet',
chain_id_destination: this.props.chainId,
});
});
};

Expand Down
10 changes: 4 additions & 6 deletions app/components/UI/AccountRightButton/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { TouchableOpacity, StyleSheet } from 'react-native';
import Identicon from '../Identicon';
import { toggleAccountsModal } from '../../../actions/modals';
import Device from '../../../util/device';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';

const styles = StyleSheet.create({
Expand Down Expand Up @@ -50,12 +51,9 @@ class AccountRightButton extends PureComponent {
}, 500);
}
// Track Event: "Opened Acount Switcher"
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.BROWSER_OPEN_ACCOUNT_SWITCH,
{
number_of_accounts: Object.keys(accounts ?? {}).length,
},
);
AnalyticsV2.trackEvent(MetaMetricsEvents.BROWSER_OPEN_ACCOUNT_SWITCH, {
number_of_accounts: Object.keys(accounts ?? {}).length,
});
};

render = () => {
Expand Down
4 changes: 3 additions & 1 deletion app/components/UI/AddCustomCollectible/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ import { isValidAddress } from 'ethereumjs-util';
import ActionView from '../ActionView';
import { isSmartContractAddress } from '../../../util/transactions';
import Device from '../../../util/device';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';

import { useTheme } from '../../../util/theme';
import { CUSTOM_TOKEN_CONTAINER_ID } from '../../../../wdio/features/testIDs/Screens/AddCustomToken.testIds';
import generateTestId from '../../../../wdio/utils/generateTestId';
Expand Down Expand Up @@ -184,7 +186,7 @@ const AddCustomCollectible = ({
NftController.addNft(address, tokenId);

AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.COLLECTIBLE_ADDED,
MetaMetricsEvents.COLLECTIBLE_ADDED,
getAnalyticsParams(),
);

Expand Down
4 changes: 3 additions & 1 deletion app/components/UI/AddCustomToken/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ import { strings } from '../../../../locales/i18n';
import { isValidAddress } from 'ethereumjs-util';
import ActionView from '../ActionView';
import { isSmartContractAddress } from '../../../util/transactions';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';

import AppConstants from '../../../core/AppConstants';
import Alert, { AlertType } from '../../Base/Alert';
import FontAwesome from 'react-native-vector-icons/FontAwesome';
Expand Down Expand Up @@ -114,7 +116,7 @@ export default class AddCustomToken extends PureComponent {
await TokensController.addToken(address, symbol, decimals);

AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.TOKEN_ADDED,
MetaMetricsEvents.TOKEN_ADDED,
this.getAnalyticsParams(),
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ import AntDesignIcon from 'react-native-vector-icons/AntDesign';
import { fontStyles } from '../../../../styles/common';
import EthereumAddress from '../../EthereumAddress';
import Engine from '../../../../core/Engine';
import { MetaMetricsEvents } from '../../../../core/Analytics';
import AnalyticsV2 from '../../../../util/analyticsV2';

import { toChecksumAddress } from 'ethereumjs-util';
import { connect } from 'react-redux';
import StyledButton from '../../StyledButton';
Expand Down Expand Up @@ -149,7 +151,7 @@ const AddNickname = (props: AddNicknameProps) => {
});

AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.CONTRACT_ADDRESS_COPIED,
MetaMetricsEvents.CONTRACT_ADDRESS_COPIED,
getAnalyticsParams(),
);
};
Expand All @@ -164,7 +166,7 @@ const AddNickname = (props: AddNicknameProps) => {
);
onUpdateContractNickname();
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.CONTRACT_ADDRESS_NICKNAME,
MetaMetricsEvents.CONTRACT_ADDRESS_NICKNAME,
getAnalyticsParams(),
);
};
Expand Down
18 changes: 8 additions & 10 deletions app/components/UI/ApproveTransactionReview/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import Feather from 'react-native-vector-icons/Feather';
import Identicon from '../../UI/Identicon';
import { showAlert } from '../../../actions/alert';
import Analytics from '../../../core/Analytics/Analytics';
import { ANALYTICS_EVENT_OPTS } from '../../../util/analytics';
import { MetaMetricsEvents } from '../../../core/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';
import TransactionHeader from '../../UI/TransactionHeader';
import AccountInfoCard from '../../UI/AccountInfoCard';
Expand Down Expand Up @@ -325,7 +325,7 @@ class ApproveTransactionReview extends PureComponent {
},
() => {
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.APPROVAL_STARTED,
MetaMetricsEvents.APPROVAL_STARTED,
this.getAnalyticsParams(),
);
},
Expand Down Expand Up @@ -405,15 +405,15 @@ class ApproveTransactionReview extends PureComponent {

toggleViewDetails = () => {
const { viewDetails } = this.state;
Analytics.trackEvent(ANALYTICS_EVENT_OPTS.DAPP_APPROVE_SCREEN_VIEW_DETAILS);
Analytics.trackEvent(MetaMetricsEvents.DAPP_APPROVE_SCREEN_VIEW_DETAILS);
this.setState({ viewDetails: !viewDetails });
};

toggleEditPermission = () => {
const { editPermissionVisible } = this.state;
!editPermissionVisible &&
this.trackApproveEvent(
ANALYTICS_EVENT_OPTS.DAPP_APPROVE_SCREEN_EDIT_PERMISSION,
MetaMetricsEvents.DAPP_APPROVE_SCREEN_EDIT_PERMISSION,
);
this.setState({ editPermissionVisible: !editPermissionVisible });
};
Expand Down Expand Up @@ -452,14 +452,14 @@ class ApproveTransactionReview extends PureComponent {
data: { msg: strings('transactions.address_copied_to_clipboard') },
});
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.CONTRACT_ADDRESS_COPIED,
MetaMetricsEvents.CONTRACT_ADDRESS_COPIED,
this.getAnalyticsParams(),
);
};

edit = () => {
const { onModeChange } = this.props;
Analytics.trackEvent(ANALYTICS_EVENT_OPTS.TRANSACTIONS_EDIT_TRANSACTION);
Analytics.trackEvent(MetaMetricsEvents.TRANSACTIONS_EDIT_TRANSACTION);
onModeChange && onModeChange('edit');
};

Expand Down Expand Up @@ -504,7 +504,7 @@ class ApproveTransactionReview extends PureComponent {
}
this.toggleEditPermission();
AnalyticsV2.trackEvent(
AnalyticsV2.ANALYTICS_EVENTS.APPROVAL_PERMISSION_UPDATED,
MetaMetricsEvents.APPROVAL_PERMISSION_UPDATED,
this.getAnalyticsParams(),
);
};
Expand Down Expand Up @@ -830,9 +830,7 @@ class ApproveTransactionReview extends PureComponent {
Logger.error(error, 'Navigation: Error when navigating to buy ETH.');
}
InteractionManager.runAfterInteractions(() => {
Analytics.trackEvent(
ANALYTICS_EVENT_OPTS.RECEIVE_OPTIONS_PAYMENT_REQUEST,
);
Analytics.trackEvent(MetaMetricsEvents.RECEIVE_OPTIONS_PAYMENT_REQUEST);
});
};

Expand Down
16 changes: 7 additions & 9 deletions app/components/UI/AssetOverview/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ import { getTokenList } from '../../../reducers/tokens';
import Engine from '../../../core/Engine';
import Logger from '../../../util/Logger';
import Analytics from '../../../core/Analytics/Analytics';
import AnalyticsV2 from '../../../util/analyticsV2';
import { MetaMetricsEvents } from '../../../core/Analytics';

import { allowedToBuy } from '../FiatOnRampAggregator';
import AssetSwapButton from '../Swaps/components/AssetSwapButton';
import NetworkMainAssetLogo from '../NetworkMainAssetLogo';
Expand Down Expand Up @@ -189,14 +190,11 @@ class AssetOverview extends PureComponent {
onBuy = () => {
this.props.navigation.navigate(Routes.FIAT_ON_RAMP_AGGREGATOR.ID);
InteractionManager.runAfterInteractions(() => {
Analytics.trackEventWithParameters(
AnalyticsV2.ANALYTICS_EVENTS.BUY_BUTTON_CLICKED,
{
text: 'Buy',
location: 'Token Screen',
chain_id_destination: this.props.chainId,
},
);
Analytics.trackEventWithParameters(MetaMetricsEvents.BUY_BUTTON_CLICKED, {
text: 'Buy',
location: 'Token Screen',
chain_id_destination: this.props.chainId,
});
});
};

Expand Down
Loading