Awesome
Safe Android App
Goal
The Safe aims to provide all users with a convenient, yet secure way to manage their funds and interact with decentralized applications on Ethereum. Transactions are secured by on-chain multi-factor-authentication. This is achieved by using the Safe smart contracts. They are the successor of the broadly trusted Gnosis Multisig Wallet smart contracts).
Setup
Infura
The Json RPC depends on Infura. You need to get an API key and create a file named project_keys
with the following contents:
INFURA_API_KEY=<YOUR_PROJECT_ID>
Replace <YOUR_PROJECT_ID>
with the project id
that you get from Infura. You can find this project id
at Projects -> Settings -> Keys -> PROJECT ID
on the Infura Website.
Firebase
The Safe Android App uses Firebase and your build will fail if you don't have the google-services.json
file.
To get this file, you need to create a Firebase project at https://console.firebase.google.com/ and add at least one Android application.
If you didn't change the applicationId in app/build.gradle
you need to create an app with the package name io.gnosis.safe.debug
to be able to build a debug app. You can find the latest google-services.json
file in the Project Settings
-> General
After downloading the file, copy it to the app
module folder.
Contribute
You can contribute to this repo by creating a Pull Request or an issue. Please follow the default template set for the Pull Requests.
Code Style
Make sure that you apply the Kotlin coding conventions and use the style schema in this repo with Android Studio.
Also always add newlines at the end of files. This can be enforced by Android Studio. For this enable Editor -> General -> Ensure line feed … (Under the “Others” section)
.
CI Setup
Travis is used for continuous integration. It requires the google-services.json
and debug-upload.jks
. These need to be encrypted into a single file using the travis cli.
tar cvf secrets.tar gnosis-upload.jks app/google-services.json app/src/rinkeby/google-services.json app/src/release/google-services.json
travis encrypt-file secrets.tar
Release Process
See our Release steps on how to prepare a release.