```jsx
import React, { useState } from 'react';
import axios from 'axios';
import { toast } from 'react-toastify';
import { Formik, Form, Field, ErrorMessage } from 'formik';
import * as Yup from 'yup';
import { Button, TextField, Box } from '@mui/material';
const WithdrawalSchema = [Link]().shape({
amount: [Link]().required('Amount is required').positive('Amount must be
positive'),
cryptoAddress: [Link]().required('Crypto Address is required'),
});
function WithdrawalForm() {
const [paymentMethod, setPaymentMethod] = useState('crypto');
const initialValues = {
amount:'',
cryptoAddress:''
};
const handleSubmit = async (values, { setSubmitting, resetForm }) => {
try {
const token = [Link]('authToken');
const response = await [Link]('/api/transactions/withdraw',
{ ...values, paymentMethod },
{ headers: { Authorization: `Bearer ${token}` } }
);
setSubmitting(false);
resetForm();
[Link]([Link])
} catch (e) {
setSubmitting(false)
[Link]([Link]?.data?.message || 'Failed to initiate
withdrawal')
}
}
return (
<Box sx={{ maxWidth: 400, margin: '0 auto', paddingTop: 3 }}>
<Formik
initialValues={initialValues}
validationSchema={WithdrawalSchema}
onSubmit={handleSubmit}
>
{({ isSubmitting, values, handleChange, touched, errors }) => (
<Form>
<Box mb={2}>
<TextField
label="Amount"
fullWidth
type="number"
name="amount"
value={[Link]}
onChange={handleChange}
error={[Link] && !![Link]}
helperText={[Link] && [Link]}
/>
</Box>
<div>
<label>Withdrawal Method:</label>
<select
value={paymentMethod}
onChange={(e) =>
setPaymentMethod([Link])}>
<option value="crypto">Crypto</option>
<option disabled value="fiat">Fiat (Coming
soon)</option>
</select>
</div>
{paymentMethod === 'crypto' &&
<Box mb={2}>
<TextField
label="Crypto Address"
fullWidth
type="text"
name="cryptoAddress"
value={[Link]}
onChange={handleChange}
error={[Link] && !!
[Link]}
helperText={[Link] &&
[Link]}
/>
</Box>
}
<Button type="submit"
variant="contained"
color="primary"
disabled={isSubmitting}
>
{isSubmitting ? 'Withdrawing...' : 'Withdraw'}
</Button>
</Form>
)}
</Formik>
</Box>
);
}
export default WithdrawalForm;
```