2019-01-07 10:06:16 -08:00
|
|
|
// @flow
|
2019-02-04 20:41:45 -08:00
|
|
|
|
2019-01-21 10:37:04 -08:00
|
|
|
import eres from 'eres';
|
2019-01-07 10:06:16 -08:00
|
|
|
import { connect } from 'react-redux';
|
|
|
|
|
|
|
|
import { ReceiveView } from '../views/receive';
|
|
|
|
|
2019-01-21 10:37:04 -08:00
|
|
|
import {
|
|
|
|
loadAddressesSuccess,
|
|
|
|
loadAddressesError,
|
2019-01-30 07:16:10 -08:00
|
|
|
getNewAddressSuccess,
|
|
|
|
getNewAddressError,
|
|
|
|
type addressType,
|
2019-01-21 10:37:04 -08:00
|
|
|
} from '../redux/modules/receive';
|
|
|
|
|
|
|
|
import rpc from '../../services/api';
|
|
|
|
|
2019-01-07 10:06:16 -08:00
|
|
|
import type { AppState } from '../types/app-state';
|
2019-01-21 10:37:04 -08:00
|
|
|
import type { Dispatch } from '../types/redux';
|
|
|
|
|
|
|
|
const mapStateToProps = ({ receive }: AppState) => ({
|
|
|
|
addresses: receive.addresses,
|
|
|
|
});
|
|
|
|
|
|
|
|
const mapDispatchToProps = (dispatch: Dispatch) => ({
|
|
|
|
loadAddresses: async () => {
|
|
|
|
const [zAddressesErr, zAddresses] = await eres(rpc.z_listaddresses());
|
|
|
|
|
2019-01-30 07:16:10 -08:00
|
|
|
const [tAddressesErr, transparentAddresses] = await eres(rpc.getaddressesbyaccount(''));
|
2019-01-21 10:37:04 -08:00
|
|
|
|
|
|
|
if (zAddressesErr || tAddressesErr) return dispatch(loadAddressesError({ error: 'Something went wrong!' }));
|
2019-01-07 10:06:16 -08:00
|
|
|
|
2019-01-21 10:37:04 -08:00
|
|
|
dispatch(
|
|
|
|
loadAddressesSuccess({
|
|
|
|
addresses: [...zAddresses, ...transparentAddresses],
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
},
|
2019-01-30 07:16:10 -08:00
|
|
|
getNewAddress: async ({ type }: { type: addressType }) => {
|
|
|
|
const [error, address] = await eres(
|
|
|
|
type === 'shielded' ? rpc.z_getnewaddress() : rpc.getnewaddress(''),
|
|
|
|
);
|
|
|
|
|
2019-01-31 13:26:08 -08:00
|
|
|
if (error || !address) return dispatch(getNewAddressError({ error: 'Unable to generate a new address' }));
|
2019-01-30 07:16:10 -08:00
|
|
|
|
2019-01-31 13:26:08 -08:00
|
|
|
dispatch(getNewAddressSuccess({ address }));
|
2019-01-30 07:16:10 -08:00
|
|
|
},
|
2019-01-07 10:06:16 -08:00
|
|
|
});
|
|
|
|
|
2019-01-24 05:56:13 -08:00
|
|
|
// $FlowFixMe
|
2019-01-21 10:37:04 -08:00
|
|
|
export const ReceiveContainer = connect(
|
|
|
|
mapStateToProps,
|
|
|
|
mapDispatchToProps,
|
|
|
|
)(ReceiveView);
|