Write an application for iOS using Swift, that interacts with Argen contract wallet on the Ropsten testnet.
This deliverable is split into independent features.
- Show the Wallet Balance
- Sending ETH
- Show inbound ERC20 transfers
- PIN lock screen
A quick overview of the features
Apart from showing the token balance, I am also showing a wallet address together with blockly avatar for that address. I am also querying a current ETHUSD price an show a USD value.
After sending a transaction through web3.swift I'm providing a list of transaction hashes returned.
The list shows transactions returned by web3.swift. For each transaction, I'm showing a "from" address a transaction value as well as token's symbol.
Whenever the app is not active in the foreground the PIN lock screen shows up. For the moment Pin is hardcoded to 1234
.
I wanted to present some advantages that architectures based on the State machines, Unidirectional dataflows, Redux and similar posses. This is heavily inspired by the following repos:
This project has been tested with Xcode 11.2.1 on a MacOS 10.14.5. All Pods are included in this repo.
After cloning into local machine please open SimpleArgentWallet.xcworkspace
everything should be ready to be built.
After running the app you can end up in the Pin Lock screen. For the moment Pin is hardcoded to 1234
.
There are a few things to improve:
- Improve memory and thread handling
- Add tests
- Add proper documentation
- Add proper error handling
- Add more features 🚀