import translate from 'translations'; import { getTransactionFields, makeTransaction } from 'libs/transaction'; import { OfflineBroadcast } from './OfflineBroadcast'; import { OnlineSend } from './OnlineSend'; import { addHexPrefix } from 'ethereumjs-util'; import { getWalletType, IWalletType } from 'selectors/wallet'; import React, { Component } from 'react'; import { connect } from 'react-redux'; import { AppState } from 'reducers'; import { ConfirmationModal } from 'components/ConfirmationModal'; import { TextArea } from 'components/ui'; import { getSerializedTransaction } from 'selectors/transaction'; export interface CallbackProps { disabled: boolean; onClick(): void; } interface StateProps { walletType: IWalletType; serializedTransaction: AppState['transaction']['sign']['local']['signedTransaction']; } interface OwnProps { onlyTransactionParameters?: boolean; toggleDisabled?: boolean; Modal: typeof ConfirmationModal; withProps(props: CallbackProps): React.ReactElement | null; } const getStringifiedTx = (serializedTransaction: Buffer) => JSON.stringify(getTransactionFields(makeTransaction(serializedTransaction)), null, 2); type Props = StateProps & OwnProps; class SendButtonFactoryClass extends Component { public render() { const { onlyTransactionParameters, serializedTransaction, toggleDisabled, walletType } = this.props; const columnSize = onlyTransactionParameters ? 12 : 6; /* Left and right transaction comparision boxes, only displayed when a serialized transaction exists in state */ // shows the json representation of the transaction const leftTxCompare = serializedTransaction && (