/rainbow

🌈‒ the Ethereum wallet that lives in your pocket

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

🌈️ Rainbow

the Ethereum wallet that lives in your pocket!

📲️ Available on the iOS App Store.

🐦️ Follow us on Twitter

Setup

General

MacOS

  1. Install the latest version of XCode.

  2. Install Watchman:

    brew install watchman
  3. Install CocoaPods:

    sudo gem install cocoapods
  4. Install the required bundles and Pods for this project:

    yarn install-bundle && yarn install-pods

Linux

  1. Install system dependencies:

    sudo apt install libsecret-tools watchman
  2. Follow the React Native environment setup instructions carefully, which will involve installing Android Studio, the Android SDK, the emulator, etc. and making them available in your $PATH.

  3. Ensure at least one AVD image is available for the emulator (unless using a physical device).

Developing

If you are new to React Native, this is a helpful introduction: https://reactnative.dev/docs/getting-started

Preflight

  1. Run nvm use 14 to force Node.js v14.

  2. Set up your .env file, use our env.example as a guide.

    Note that some features are currently not accessible, we are working with our Data Providers in order to provide open source API Keys!

    Here are some resources to generate your own API keys:

  3. Ensure a google-services.json has been added to the relevant project directory/directories so the compile will not fail.

    This can either be the live Google Services config (for internal development) or a self-provided config for a personal Firebase project (third-party contributors) registered under the package name me.rainbow.

MacOS

Note: Darwin versions of the application can only be developed/built on Darwin platforms with XCode.

  1. Start a React Native webserver with:

    yarn start
  2. Open rainbow-wallet/ios/Rainbow.xcworkspace in XCode.

  3. Run the project by clicking the play button.

Linux

Note: Linux development environments cannot develop or build Darwin versions of the project.

  1. Start a React Native webserver with:

    yarn start
  2. Build/install/start the debug version of the app in an emulator with:

    yarn android

CodePush

In order to use code push you must be logged into the correct Microsoft App Center account.

Prerequisites

npm install -g code-push
code-push login

At this point you will be required to log into the account tied to the code push public keys in Info.plist

Deployment

code-push release-react RainbowWallet-iOS ios -d <DEPLOYMENT>

The deployment can either be Staging or Production depending on the mode of the application you wish to update was built in through XCode.

Local Builds

In order to build the application in "release" mode but not use the code push distribution you must build the application using the scheme LocalRelease.

Building the application with the Staging scheme or Release scheme will result in your bundle being replaced by the live code push deployment on resume of the application.