aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schmidt <imtomhschmidt@gmail.com>2018-03-10 07:31:21 +0800
committerGitHub <noreply@github.com>2018-03-10 07:31:21 +0800
commit824ee8a3dce2e3bd977edafec30dd9b84efc4280 (patch)
treeabd75e02d19d7c2e9c7b8df1ebe7152e2d364a40
parent7116f100ee194f46d0e34782afa8f680791adc9c (diff)
parent47af38ecb8d59789af9db2079e18ee0b6e589786 (diff)
downloaddexon-sol-tools-824ee8a3dce2e3bd977edafec30dd9b84efc4280.tar.gz
dexon-sol-tools-824ee8a3dce2e3bd977edafec30dd9b84efc4280.tar.zst
dexon-sol-tools-824ee8a3dce2e3bd977edafec30dd9b84efc4280.zip
Merge pull request #441 from 0xProject/feature/website/web3-logging
Add web3 provider logging to GA
-rw-r--r--packages/website/ts/index.tsx8
-rw-r--r--packages/website/ts/utils/utils.ts31
2 files changed, 38 insertions, 1 deletions
diff --git a/packages/website/ts/index.tsx b/packages/website/ts/index.tsx
index c0539c6d0..1eaf6274b 100644
--- a/packages/website/ts/index.tsx
+++ b/packages/website/ts/index.tsx
@@ -18,6 +18,8 @@ import { tradeHistoryStorage } from 'ts/local_storage/trade_history_storage';
import { reducer, State } from 'ts/redux/reducer';
import { WebsitePaths } from 'ts/types';
import { muiTheme } from 'ts/utils/mui_theme';
+import { utils } from 'ts/utils/utils';
+import * as Web3 from 'web3';
import 'whatwg-fetch';
injectTapEventPlugin();
@@ -46,6 +48,12 @@ const LazyConnectDocumentation = createLazyComponent('Documentation', async () =
);
ReactGA.initialize('UA-98720122-1');
+window.onload = () => {
+ const providerName = (window as any).web3
+ ? utils.web3ProviderToString((window as any).web3.currentProvider)
+ : 'NONE';
+ ReactGA.ga('set', 'dimension1', providerName);
+};
const store: ReduxStore<State> = createStore(reducer);
render(
<Router>
diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts
index 308b4bb5c..82e5616e1 100644
--- a/packages/website/ts/utils/utils.ts
+++ b/packages/website/ts/utils/utils.ts
@@ -1,4 +1,4 @@
-import { ECSignature, ExchangeContractErrs, ZeroEx, ZeroExError } from '0x.js';
+import { ECSignature, ExchangeContractErrs, Web3Provider, ZeroEx, ZeroExError } from '0x.js';
import { constants as sharedConstants, EtherscanLinkSuffixes, Networks } from '@0xproject/react-shared';
import { BigNumber } from '@0xproject/utils';
import deepEqual = require('deep-equal');
@@ -262,6 +262,35 @@ export const utils = {
);
return isTestNetwork;
},
+ getCurrentBaseUrl() {
+ const port = window.location.port;
+ const hasPort = !_.isUndefined(port);
+ const baseUrl = `https://${window.location.hostname}${hasPort ? `:${port}` : ''}`;
+ return baseUrl;
+ },
+ scrollToHash(hash: string, containerId: string): void {
+ let finalHash = hash;
+ if (_.isEmpty(hash)) {
+ finalHash = configs.SCROLL_TOP_ID; // scroll to the top
+ }
+
+ scroller.scrollTo(finalHash, {
+ duration: 0,
+ offset: 0,
+ containerId,
+ });
+ },
+ web3ProviderToString(provider: Web3Provider): string {
+ let parsedProviderName = provider.constructor.name;
+ if (provider.constructor.name === 'MetamaskInpageProvider') {
+ parsedProviderName = 'METAMASK';
+ } else if (provider.constructor.name === 'EthereumProvider') {
+ parsedProviderName = 'MIST';
+ } else if ((provider as any).isParity) {
+ parsedProviderName = 'PARITY';
+ }
+ return parsedProviderName;
+ },
async onPageLoadAsync(): Promise<void> {
if (document.readyState === 'complete') {
return; // Already loaded