This project is an example of set frameworks implementations that may help you to interact with the Ethereum blockchain.
- iOS 14.0+
- Xcode 13.0+
- Package Manager is also Apple native SPM
- Dependency Manager is Needle ~> 0.18.1, which made and used by Uber. It's better that Swinject because gives dependency missing errors on compile time and decreases our app speed by not overloading runtime.
- Schemes handled by config files under
/SupportingFiles/Configurations/
for Dev flavors
- Secure Data Storage with KeychainSwift , but simplify usage with framework KeychainSwift ~> 20.0.0
- UI mockups we use SnapKit ~> 5.6.0 which works on AutoLayout with Constraints. NO Storyboards. Code only.
- NeedleFoundation ~> 0.19.0
- WalletConnect V1 V1 ~> 1.0.0
- Web3Auth ~> 5.0.0
- Ethereum web3 Ethereum Swift API with support for smart contracts, ENS & ERC20 ~> 1.1.0
- Configs - Info.plist keys wrapper, Environment variables storage.
- MainRouter - Route through main root screens.
- SecureStorage - Wrapper for KeychainSwift. Store sensitive user information.
- UserDefaultsStorage - Store local app state temporary data.
- WindowProtocol - Wrapper for UIWindow. Handles switch current screen or display something over all app.
- Create account into the WalletConnect, Documentation
- Create account into the Alchemy
- Create account into the Web3Auth, Documentation. Setup project bundle id into the web3auth admin panel.
- WC_PROJECT_ID - WalletConnect project ID
- WEB3_AUTH_ID - Web3Auth project ID
- ALCHEMY_KEY - Alchemy key
- PROJ_URL - Project URL for description
- WalletConnect V1 pairing with Metamask
- Web3Auth accounting with gmail
- Get gasPrice
- Get account balance
- Make Transfer with Goerli ETH token
- Make Transfer with Goerli USDC via smart contract
- Make Approve with Goerli USDC via smart contract
- Make Allowance with Goerli USDC via smart contract
- Make Transfer from with Goerli USDC via smart contract
More info about types of transaction
- 0.01 goerli eth = 10000000000000000 (wei)
- 1 USDC = 1000000 (Mwei)
- Goerli Etherscan, set account address or hash of transaction
- Into the alchemy profile.
- Goerli
- Ethereum
- Polygon
- Sepolia
- DebuggingInteractor fill addresses
- Setup personal developer account into the Signing & Capabilities
- Install Metamask on your device and Sign in
- Run project on personal device
- If you want to use not a Goerli network, you should update the USDC contract address into the Constants