Skip to content

AmeyaDaddikar/Blockchain-IOS

Repository files navigation

Blockchain-iOS

The official iOS port for the VJTI Blockchain Wallet APP.

Development Software:

  • XCode : >=10 (my version: 10.2.1)
  • iOS : >=12
  • Current Supported Device (tested on emulator): all iPhone devices supporting iOS 12

Progress

  • 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

Installation Instructions

  1. Open the 'VJTI Blockchain.xcworkspace' to work on the project

  2. All dependencies installed via Cocoapods can be found in the Pods/ Directory

  3. Some dependencies are edited to suit the project

  4. 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
    
  5. 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.

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

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.

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

An unique identicon generator library. Note: this library was replaced by a custom made Identicon library based on delight-im's Android Identicons

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


Additional Notes

  1. You cannot test the QRCode Scanner and Backup Account Retrieval Feature without an Apple Developer Account
  2. 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.

Developer

Ameya Daddikar: [email protected]

About

The official IOS port for the VJTI Blockchain Wallet

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published