/helium-wallet-app

Primary LanguageTypeScriptApache License 2.0Apache-2.0

wallet-logo

Helium Wallet App

About

Welcome to the wallet app, an open-source Solana wallet designed for the Helium ecosystem. With this app, you can manage your accounts and identity on the Helium network, view transactions, import multiple accounts, and even vote.

The app also comes with a handy address book, allowing you to save commonly used wallet addresses for quick access. Plus, you can send multiple Helium currencies to multiple recipients simultaneously.

You can also view and claim hotspot rewards within the app, as well as explore various dApps with the embedded browser.

We hope you enjoy using the wallet app and all of its convenient features!

Installation

In order to interact with any package contained in this repository you will need to install the following:

Set up your development environment

Follow the instructions for "React Native CLI Quickstart" found here

Step by Step guide on getting started:

  • Install Command line developer tools MAC ONLY

  • Install Homebrew

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Install NVM

    brew install nvm
  • Install Node Version 18

    nvm install 18
  • Set Node version to 18

    nvm use 18
  • Install Yarn

    npm install -g yarn
  • Install Rosetta M1 & M2 ONLY

    softwareupdate --install-rosetta
  • Install Cocoapods

    gem cleanup
    brew uninstall cocoapods
    sudo gem uninstall cocoapods
    sudo gem install cocoapods -v 1.10.1 -n /usr/local/bin
  • Clone the repository

    git clone https://github.com/helium/wallet-app.git
    cd wallet-app
  • Install dependencies

    yarn
  • Fill out your env.sample with your values and rename it to .env. Set up a Mapbox account and generate a public and private key for the access token and download token environment variables.

  • Create a netrc file to authenticate with mapbox

    touch ~/.netrc
    nano ~/.netrc
  • Insert your mapbox authentication details

    machine api.mapbox.com
     login mapbox
     password <INSERT API TOKEN>
  • Install Pods

    yarn pod-install
  • Start the ios app

    yarn ios
  • Start the android app

    yarn android

Short guide for those who are familiar with the above tools:

git clone https://github.com/helium/wallet-app.git
cd wallet-app
yarn
yarn pod-install

If yarn pod-install fails with error xcrun: error: SDK "iphoneos" cannot be located, run sudo xcode-select --switch /Applications/Xcode.app [Stack Overflow]

For IOS:

yarn ios

For Android:

yarn android

Usage

Important: All the commands should be run at the root of the repo.

Tools

Our React Native app is built using TypeScript and utilizes the Shopify/Restyle library for styling. We manage our dependencies using Yarn, a fast and reliable package manager. Shopify/Restyle provides a set of pre-built UI components and style primitives, making it easy to create beautiful and responsive user interfaces. It offers a great starting point for building a custom UI, while also offering the flexibility to customize and extend the existing components.

Root scripts

The scripts that are defined inside the root /package.json

Contributing

Please check the general guidelines for contributing to the wallet app: CONTRIBUTING.md.

In the meantime here are some important highlights:

  • Follow the git workflow, prefix your branches and do not create unneeded merge commits.
  • Be mindful when creating Pull Requests, specify the reason of the change clearly and write tests if needed.
  • Wallet app is mostly accepting bugfix contributions. For features we may reject them based on the fact that they do not fit our roadmap or our long-term goals.

License

Please check each project LICENSE file, most of them are under the MIT license.