UNPKG

animiassumenda

Version:

Blox live, desktop app for managing staking accounts

34 lines (27 loc) 1.06 kB
import { call, put, select, takeLatest } from 'redux-saga/effects'; import { notification } from 'antd'; import MetaMask from './Metamask'; import { SEND_ETH_FROM_METAMASK } from './actionTypes'; import * as actions from './actions'; import { getDepositData } from '../Wizard/selectors'; const metamask = new MetaMask(); function* onSendEthersSuccess(response) { yield put(actions.sendEthFromMetaMaskSuccess(response)); } function* onSendEthersFailure(error) { yield put(actions.sendEthFromMetaMaskFailure(error)); notification.error({ message: 'Error', description: error.message }); } export function* sendEthers() { const dataAndValue = yield select(getDepositData); try { const accounts = yield call(metamask.enableAccounts); const response = yield call(metamask.sendEthersTo, dataAndValue, accounts); yield call(onSendEthersSuccess, response); } catch (error) { yield error && call(onSendEthersFailure, error); } } export default function* metaMaskActions() { yield takeLatest(SEND_ETH_FROM_METAMASK, sendEthers); }