# Web3 Front End Developer Interview Assignment
## Objective:
Create a simple React-based web application with a two-step form that interacts with an ERC20 token at the specified address (0x65a5ba240CBd7fD75700836b683ba95EBb2F32bd) on the Goerli Test Network.
## Requirements:
Create a new React application using create-react-app or any other preferred setup.
Use any front-end UI library of your choice (e.g., Material-UI, Ant Design, Bootstrap) to style the form components.
Use the ethers.js or web3.js or wagmi library to interact with the Ethereum blockchain and ERC20 token contract on the Goerli Test Network.
The application should have two steps:
### Step 1:
- Create a form that includes an input field for the user to specify the amount of tokens to mint.
- Implement error handling to ensure that the input value is a valid number greater than zero.
- Include a "Mint Tokens" button to submit the form.
- When the form is submitted, the application should call the ERC20 token contract's mint function to create the specified number of tokens for the connected wallet address.
- Show a success message and proceed to the next step if the minting transaction is successful. Display an error message if the transaction fails.
### Step 2:
- Create a form with an input field for the user to enter the recipient's Ethereum address.
- Implement error handling to ensure that the input value is a valid Ethereum address.
- Include a "Transfer Tokens" button to submit the form.
- When the form is submitted, the application should call the ERC20 token contract's transfer function to send the previously minted tokens from the connected wallet address to the specified recipient's address.
- Show a success message if the transfer transaction is successful. Display an error message if the transaction fails.
- The application should connect to the user's Ethereum wallet using MetaMask or another browser-based wallet.
## Deliverables:
1. A GitHub repository containing the source code of the React application.
2. A README file with clear instructions on how to set up and run the application locally.
3. Deploy the application on Vercel and provide the live URL.
## Evaluation Criteria:
- Code quality and organization.
- Proper use of React components and state management.
- Proper implementation of web3/ethers.js library for interacting with the Ethereum blockchain on the Goerli Test Network.
- Effective error handling and user feedback.
- Responsive and visually appealing UI design.
- Successful deployment of the application on Vercel.