From 09f0bf7f0062bba51380ae904bff96baddf5f0f2 Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Wed, 24 Oct 2018 11:50:05 -0700 Subject: Get rid of react-shared as a dependency, write own etherscanUtil --- .../selected_asset_view_transaction_button.tsx | 5 ++--- packages/instant/src/util/etherscan.ts | 24 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 packages/instant/src/util/etherscan.ts (limited to 'packages/instant/src') diff --git a/packages/instant/src/containers/selected_asset_view_transaction_button.tsx b/packages/instant/src/containers/selected_asset_view_transaction_button.tsx index 44de16c4a..6f42b9f85 100644 --- a/packages/instant/src/containers/selected_asset_view_transaction_button.tsx +++ b/packages/instant/src/containers/selected_asset_view_transaction_button.tsx @@ -1,4 +1,3 @@ -import { EtherscanLinkSuffixes, utils } from '@0x/react-shared'; import * as _ from 'lodash'; import * as React from 'react'; import { connect } from 'react-redux'; @@ -7,6 +6,7 @@ import { State } from '../redux/reducer'; import { ViewTransactionButton } from '../components/view_transaction_button'; import { AsyncProcessState } from '../types'; +import { etherscanUtil } from '../util/etherscan'; export interface SelectedAssetViewTransactionButtonProps {} @@ -17,10 +17,9 @@ interface ConnectedState { const mapStateToProps = (state: State, _ownProps: {}): ConnectedState => ({ onClick: () => { if (state.assetBuyer && state.buyOrderState.processState === AsyncProcessState.SUCCESS) { - const etherscanUrl = utils.getEtherScanLinkIfExists( + const etherscanUrl = etherscanUtil.getEtherScanTxnAddressIfExists( state.buyOrderState.txnHash, state.assetBuyer.networkId, - EtherscanLinkSuffixes.Tx, ); if (etherscanUrl) { window.open(etherscanUrl, '_blank'); diff --git a/packages/instant/src/util/etherscan.ts b/packages/instant/src/util/etherscan.ts new file mode 100644 index 000000000..ffb08a382 --- /dev/null +++ b/packages/instant/src/util/etherscan.ts @@ -0,0 +1,24 @@ +import * as _ from 'lodash'; + +import { Network } from '../types'; + +const etherscanPrefix = (networkId: number): string | undefined => { + switch (networkId) { + case Network.Kovan: + return 'kovan.'; + case Network.Mainnet: + return ''; + default: + return undefined; + } +}; + +export const etherscanUtil = { + getEtherScanTxnAddressIfExists: (txnHash: string, networkId: number) => { + const prefix = etherscanPrefix(networkId); + if (_.isUndefined(prefix)) { + return; + } + return `https://${prefix}etherscan.io/tx/${txnHash}`; + }, +}; -- cgit v1.2.3