The official iOS port for the VJTI Blockchain Wallet APP.
- XCode : >=10 (my version: 10.2.1)
- iOS : >=12
- Current Supported Device (tested on emulator): all iPhone devices supporting iOS 12
- Create Profile credentials
- View Profile Details
- Receving coins via QR Code
- Create Backup Profile encrypted file (iOS backup can be retrieved on Android app and visa versa)
- Send Coins using public key string
- Scan QR Code (awaiting testing)
- Retrieve backup (awaiting testing)
- Cross Device View Support
- Identicons Match Android Identicons
- Profanity filter added for transactions
- Public Beta Testing
-
Open the 'VJTI Blockchain.xcworkspace' to work on the project
-
All dependencies installed via Cocoapods can be found in the Pods/ Directory
-
Some dependencies are edited to suit the project
-
To install a new dependency using Cocoapod, a. Add the dependency name and version in the Podfile b. Type the following command in your terminal
pod install
-
To uninstall a dependency using Cocoapod,
a. Remove the dependency name and version in the Podfile b. Type the following command in your terminal
pod install
NOTE: The Pods/ directory is already provided in the repository so you need not follow instructions 4 & 5 unless you want to add/remove dependencies.
A cross platform Swift implementation of Elliptic Curve Digital Signature Algorithm (ECDSA) and Elliptic Curve Integrated Encryption Scheme (ECIES). This allows you to sign, verify, encrypt and decrypt using elliptic curve keys.
A customizable password/pin ViewController used for user pin inputs
KeychainAccess https://cocoapods.org/pods/KeychainAccess
A simple Swift wrapper for Keychain that works on iOS and OS X. Makes using Keychain APIs extremely easy and much more palatable to use in Swift. Used to storing user keys and meta data on the device securely.
MarqueeLabel https://github.com/cbpowell/MarqueeLabel
A custom UILabel with auto-scrolling animation to display long text. Used in Profile View to show user's public key
A QRCode image generator used to generate a QRCode for the user's public key
IGIdenticon https://cocoapods.org/pods/IGIdenticon
An unique identicon generator library. Note: this library was replaced by a custom made Identicon library based on delight-im's Android Identicons
Alamofire https://cocoapods.org/pods/Alamofire
Alamofire is an HTTP networking library written in Swift. All networking has been handled by the Alamofire library.
Crypto related functions and helpers for Swift implemented in Swift. Message Signing, key hashing and other cryptographic functionalities were implemented partially using this library.
JSON handler to send/receive JSON data in HTTP requests.
A QR Code reader ViewController for scanning receiver's public key.
Used in formatting bytes to base10 formatted data to be sent to the server for transaction verifications
- You cannot test the QRCode Scanner and Backup Account Retrieval Feature without an Apple Developer Account
- You have to use either an Emulator/ your personal device to test the app. If you want to test-deploy it on someone else's device, you would need the Apple Developer Account.
Ameya Daddikar: [email protected]