Files

38 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2017-12-18 16:23:31 -05:00
import React, { Component } from 'react';
import { connect } from 'react-redux';
2018-02-06 23:39:24 -05:00
import { makeTransaction, IHexStrTransaction } from 'libs/transaction';
import { getTransactionFields } from 'libs/transaction/utils/ether';
import { AppState } from 'features/reducers';
import * as selectors from 'features/selectors';
2017-12-18 16:23:31 -05:00
interface StateProps {
serializedTransaction: Buffer | null;
}
2018-02-06 23:39:24 -05:00
2017-12-18 16:23:31 -05:00
interface Props {
2018-02-06 23:39:24 -05:00
withSerializedTransaction(
serializedTransaction: string,
transactionFields: IHexStrTransaction
): React.ReactElement<any> | null;
2017-12-18 16:23:31 -05:00
}
2018-02-06 23:39:24 -05:00
2017-12-18 16:23:31 -05:00
class SerializedTransactionClass extends Component<StateProps & Props, {}> {
public render() {
const { serializedTransaction, withSerializedTransaction } = this.props;
return serializedTransaction
2018-02-06 23:39:24 -05:00
? withSerializedTransaction(
serializedTransaction.toString('hex'),
getRawTxFields(serializedTransaction.toString('hex'))
)
2017-12-18 16:23:31 -05:00
: null;
}
}
2018-02-06 23:39:24 -05:00
const getRawTxFields = (serializedTransaction: string) =>
getTransactionFields(makeTransaction(serializedTransaction));
2017-12-18 16:23:31 -05:00
export const SerializedTransaction = connect((state: AppState) => ({
serializedTransaction: selectors.getSerializedTransaction(state)
2017-12-18 16:23:31 -05:00
}))(SerializedTransactionClass);