import React from 'react' import { Formik } from 'formik' import LiquidPledging from 'Embark/contracts/LiquidPledging' import Button from '@material-ui/core/Button' import TextField from '@material-ui/core/TextField' import Dialog from '@material-ui/core/Dialog' import DialogActions from '@material-ui/core/DialogActions' import DialogContent from '@material-ui/core/DialogContent' import DialogContentText from '@material-ui/core/DialogContentText' import DialogTitle from '@material-ui/core/DialogTitle' import { getTokenLabel } from '../utils/currencies' import { toWei } from '../utils/conversions' const { transfer } = LiquidPledging.methods const TransferDialog = ({ row, handleClose }) => ( { const { idPledge, pledge } = row const { idSender, amount, idReceiver } = values const args = [idSender, idPledge, toWei(amount.toString()), idReceiver] const toSend = transfer(...args) const estimatedGas = await toSend.estimateGas() toSend .send({gas: estimatedGas + 1000}) .then(async res => { console.log({res}) const { events: { Transfer } } = res if (Array.isArray(Transfer)) { Transfer.forEach(async t => { const { to, amount } = t.returnValues await pledge.transferTo(to, amount) }) } else { const { to, amount } = Transfer.returnValues await pledge.transferTo(to, amount) } }) .catch(e => { console.log({e}) }) .finally(() => { handleClose() resetForm() }) }} > {({ values, errors, touched, handleChange, handleBlur, handleSubmit, submitForm, setFieldValue, setStatus, status }) => (
Transfer Funds {`Transfer ${values.amount || ''} ${values.amount && row ? getTokenLabel(row.pledge.token) : ''} from Pledge ${row.idPledge} ${values.idReceiver ? 'to Giver/Delegate/Project' : ''} ${values.idReceiver || ''}`}
)}
) export default TransferDialog