feat(instant): Add eth balance, eth address, token symbol and decimals to event properties

This commit is contained in:
Steve Klebanoff 2018-12-03 16:01:37 -08:00
parent e9fe7dcf54
commit 7a03df946d
2 changed files with 18 additions and 4 deletions

View File

@ -1,10 +1,11 @@
import { AssetProxyId } from '@0x/types';
import { Web3Wrapper } from '@0x/web3-wrapper'; import { Web3Wrapper } from '@0x/web3-wrapper';
import * as _ from 'lodash'; import * as _ from 'lodash';
import { Middleware } from 'redux'; import { Middleware } from 'redux';
import { ETH_DECIMALS } from '../constants'; import { ETH_DECIMALS } from '../constants';
import { AccountState, StandardSlidingPanelContent } from '../types'; import { AccountState, StandardSlidingPanelContent } from '../types';
import { analytics } from '../util/analytics'; import { analytics, AnalyticsEventOptions } from '../util/analytics';
import { Action, ActionTypes } from './actions'; import { Action, ActionTypes } from './actions';
@ -29,9 +30,11 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
if (didJustTurnReady) { if (didJustTurnReady) {
analytics.trackAccountReady(ethAddress); analytics.trackAccountReady(ethAddress);
analytics.addUserProperties({ lastKnownEthAddress: ethAddress }); analytics.addUserProperties({ lastKnownEthAddress: ethAddress });
analytics.addEventProperties({ ethAddress });
} else if (didJustUpdateAddress) { } else if (didJustUpdateAddress) {
analytics.trackAccountAddressChanged(ethAddress); analytics.trackAccountAddressChanged(ethAddress);
analytics.addUserProperties({ lastKnownEthAddress: ethAddress }); analytics.addUserProperties({ lastKnownEthAddress: ethAddress });
analytics.addEventProperties({ ethAddress });
} }
} }
break; break;
@ -51,7 +54,8 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
curAccount.ethBalanceInWei, curAccount.ethBalanceInWei,
ETH_DECIMALS, ETH_DECIMALS,
).toString(); ).toString();
analytics.addUserProperties({ ethBalanceInUnitAmount }); analytics.addUserProperties({ ethBalanceInUnitAmount});
analytics.addEventProperties({ ethBalanceInUnitAmount });
} }
break; break;
case ActionTypes.UPDATE_SELECTED_ASSET: case ActionTypes.UPDATE_SELECTED_ASSET:
@ -63,10 +67,16 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
assetName, assetName,
assetData, assetData,
}); });
analytics.addEventProperties({
const selectedAssetEventProperties: AnalyticsEventOptions = {
selectedAssetName: assetName, selectedAssetName: assetName,
selectedAssetData: assetData, selectedAssetData: assetData,
}); };
if (selectedAsset.metaData.assetProxyId === AssetProxyId.ERC20) {
selectedAssetEventProperties.selectedAssetDecimals = selectedAsset.metaData.decimals;
selectedAssetEventProperties.selectedAssetSymbol = selectedAsset.metaData.symbol;
}
analytics.addEventProperties(selectedAssetEventProperties);
} }
break; break;
case ActionTypes.SET_AVAILABLE_ASSETS: case ActionTypes.SET_AVAILABLE_ASSETS:

View File

@ -100,6 +100,8 @@ export interface AnalyticsUserOptions {
export interface AnalyticsEventOptions { export interface AnalyticsEventOptions {
embeddedHost?: string; embeddedHost?: string;
embeddedUrl?: string; embeddedUrl?: string;
ethBalanceInUnitAmount?: string;
ethAddress?: string;
networkId?: number; networkId?: number;
providerName?: string; providerName?: string;
gitSha?: string; gitSha?: string;
@ -110,7 +112,9 @@ export interface AnalyticsEventOptions {
affiliateFeePercent?: number; affiliateFeePercent?: number;
numberAvailableAssets?: number; numberAvailableAssets?: number;
selectedAssetName?: string; selectedAssetName?: string;
selectedAssetSymbol?: string;
selectedAssetData?: string; selectedAssetData?: string;
selectedAssetDecimals?: number;
} }
export enum TokenSelectorClosedVia { export enum TokenSelectorClosedVia {
ClickedX = 'Clicked X', ClickedX = 'Clicked X',