# React Native
# Fau Wallet App Challenge
## Context
This project aims to create a basic React Native Wallet application using Typescript. The wallet app will track the balances of ETH and FAU. It will also allow sending FAU to another address.
*Note:* Good practices, clean folder/files & state architecture matters even if it feels like overengineering for the scope of the challenge.
### Dependencies:
- ethers.js
- typescript
It’s up to you if you choose to use Expo or react native out of the box.
### Tools:
- Etherscan is useful to debug transaction state: https://rinkeby.etherscan.io/
### Rinkeby Network Testing:
- You can get some test rinkeby ETH: https://rinkebyfaucet.com/
- You can get some test rinkeby FAU: https://erc20faucet.com/
If you can figure out how to get testnet tokens that’s a bonus! If this is all new to you and confusing, please reach out with an adress so that we can send you some test tokens!
## Requirements
### 1. Wallet:
- Generate a wallet (https://docs.ethers.io/v4/api-wallet.html)
- Use the following for RPC provider:
```
import { ethers } from "ethers";
const url = "https://speedy-nodes-nyc.moralis.io/c7fc98eca87d511079885e25/eth/rinkeby"
const provider = new ethers.providers.JsonRpcProvider(url);
```
### 2. Balances:
- Fetch balance of `ETH`
- Fetch balance of `FAU`
- FAU contract: https://rinkeby.etherscan.io/token/0xfab46e002bbf0b4509813474841e0716e6730136 (18 Decimals)
- Displays both balances in a readable/human way
### 3. Send Fau:
- Has an input for wallet address to set selected/target user.
- Has an input for Fau token to enter the amount of token to be approved or transfered
- Has 2 buttons: APPROVE and TRANSFER
- The inputs have the correct validations hooked to the buttons and also an error message to show to the user (‘not enough funds’, ‘need to approve token’) all of this is calculated/validated with the amount the user types.
- Make the transactions for APPROVE and TRANSFER of tokens to a user.
### 4. README.md
Include a minimal `README.md` file with instructions to install dependencies, run the program, and how to run the tests if any.
## Out of scope
- Gas estimation, feel free to hardcode enough gas for transaction to succeed.
- Wallet persistence, feel free to hardcode the wallet private key or seed phrase in code.
*NOTE:* you can add anything you want to the UI. Keep it as simple as possible, if you complete the challenge quickly and have extra time, feel free to show creativity and UI skills.
## Questions
If you have any questions, please don’t hesitate and reach out to @ibryliov on Telegram or ilija_bryliov@aave.com
## How much time do I have?
We don’t mean to take too much of your time, try to stay within the 3 hours mark. This is not an hard limit, if you want or can spend more time on it feel free to do so. Just be honest and tell us how long it took to complete the challenge.
Feel free to take assumptions and reduce scope if the challenge is taking too long. In this case code quality matters more than quantity. It’s better to implement less requirements that are ready to be shipped to production than all the requirements but non-production code.
We look forward to receiving your results, good luck!