This project was bootstrapped with Create React App. Project has similar cli commands like npm start
, npm test
.
- Users would like to click a button to generate a Wallet
- Users would like to see a list of generated wallets.
- Users would like to see their private keys by entering their password.
- Users would like to see their balance in testnet networks
- Wallets should be compatible with EVM networks such as BNB Chain or Ethereum
- You can store the list of wallets in local storage.
- You should NOT store user’s passwords.
- You should NOT store user’s private keys in plaintext.
There are three main part in app.
-
- React Components: Ex App.tsx
-
- Application state: Redux is used store.ts
-
- Wallet Manager: Responsible to encrypt, decrypt, store into storage wallet-manager.ts - NOTE: idea is we can write new wallet manager with
in-memory
,server
store & also we can useether.js
,wallet-core
any library to generate wallets. Easy to inject new dependency.
- Wallet Manager: Responsible to encrypt, decrypt, store into storage wallet-manager.ts - NOTE: idea is we can write new wallet manager with
As there are three main core part as above, we can write test case in three way.
-
- react component: Example app-component.test.tsx
-
- redux store: redux-store.test.ts
-
- wallet manager: wallet-manager-ether.test.ts