GithubHelp home page GithubHelp logo

adamstener / zcash-ios-wallet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from freesidevirtual/zcash-ios-wallet

0.0 0.0 0.0 5.14 MB

iOS version of the ECC Wallet

License: MIT License

Ruby 0.33% Swift 99.57% Shell 0.10%

zcash-ios-wallet's Introduction

zcash-ios-wallet

Build Status

Motivation

Dogfooding - transitive verb - is the practice of an organization using its own product. This app was created to help us learn.

Please take note: the wallet is not an official product by ECC, but rather a tool for learning about our libraries that it is built on. This means that we do not have robust infrastructure or user support for this application. We open sourced it as a resource to make wallet development easier for the Zcash ecosystem.

Disclaimers

There are some known areas for improvement:

  • This app is mainly intended for learning and improving the related libraries that it uses. There may be bugs.
  • Traffic analysis, like in other cryptocurrency wallets, can leak some privacy of the user.
  • The wallet requires a trust in the server to display accurate transaction information.

See the Wallet App Threat Model for more information about the security and privacy limitations of the wallet.

If you'd like to sign up to help us test, reach out on discord and let us know! We're always happy to get feedback!

Description

iOS wallet using the Zcash iOS SDK that is maintained by core developers.

This a reference wallet for the following set of features:

  • z2z transactions w/ encrypted memos
  • reply-to formatted memos
  • z2t transactions
  • transparent receive-only
  • autoshielding on threshold from receive only t-address

note: z means sapling shielded addresses.

Prerequisites

  • make sure you can build ZcashLightClientKit Demo Apps successfully

Building the App

  1. Clone the project, make sure you have the latest Xcode Version

  2. Create env-vars.sh file at ${SRCROOT} See Instructions

  3. make sure that your environment has the variable ZCASH_NETWORK_ENVIRONMENT set toMAINNETor TESTNET.

  4. Navigate to the wallet directory where the Podfile file is located and run pod install

  5. open the ECC-Wallet.xcworkspace file

  6. locate the .params files that are missing in the project and include them at the specified locations

  7. build and run on simulator.

If you had problems in any of these steps please check the troubleshooting document

Enabling/Disabling logging Features

This is our internal dogfooding app, and we implemented some level of event logging to be able to study user interactions and improve the User Experience with Zcash on mobile devices.

No logs please

You can build and run the app without it by using the wallet-no-logging

The "no logging" target does not even build or include the Mixpanel sdk on your build or any code related with it. You can make sure of this by looking at the code yourself. If you think there's a better way achieve this, please open an Issue with your proposal. :-)

I want to use Mixpanel

If you wish to use mixpanel in your own build, make sure to include the following line in your env-vars.sh file export MIXPANEL_TOKEN="YOUR_TOKEN" And build the wallet target. Sourcery will pick it up and generate the Constants.generated.swift file that the Mixpanel SDK will use to send the events to your board

I use some other kind of tracker...

that I would like to include in my project. The app does not care about the details of the event logger as long as it implements this protocol

protocol EventLogging {
    func track(_ event: LogEvent, properties: KeyValuePairs<String, String>)
}

You can implement your own tracker proxy

Contributing

Contributions are very much welcomed! Please read our Contributing Guidelines and Code of Conduct. Our backlog has many Issues tagged with the good first issue label. Please fork the repo and make a pull request for us to review.

Reporting an issue

If you wish to report a security issue, please follow our Responsible Disclosure guidelines.

For other kind of inquiries, feel welcome to open an Issue if you encounter a bug or would like to request a feature.

License

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.