/ common / components / renderCbs / SerializedTransaction.ts
SerializedTransaction.ts
 1  import React, { Component } from 'react';
 2  import { connect } from 'react-redux';
 3  
 4  import { makeTransaction, IHexStrTransaction } from 'libs/transaction';
 5  import { getTransactionFields } from 'libs/transaction/utils/ether';
 6  import { AppState } from 'features/reducers';
 7  import * as selectors from 'features/selectors';
 8  
 9  interface StateProps {
10    serializedTransaction: Buffer | null;
11  }
12  
13  interface Props {
14    withSerializedTransaction(
15      serializedTransaction: string,
16      transactionFields: IHexStrTransaction
17    ): React.ReactElement<any> | null;
18  }
19  
20  class SerializedTransactionClass extends Component<StateProps & Props, {}> {
21    public render() {
22      const { serializedTransaction, withSerializedTransaction } = this.props;
23      return serializedTransaction
24        ? withSerializedTransaction(
25            serializedTransaction.toString('hex'),
26            getRawTxFields(serializedTransaction.toString('hex'))
27          )
28        : null;
29    }
30  }
31  
32  const getRawTxFields = (serializedTransaction: string) =>
33    getTransactionFields(makeTransaction(serializedTransaction));
34  
35  export const SerializedTransaction = connect((state: AppState) => ({
36    serializedTransaction: selectors.getSerializedTransaction(state)
37  }))(SerializedTransactionClass);