/safe-react

Gnosis Safe – The most trusted platform to store digital assets on Ethereum

Primary LanguageTypeScriptMIT LicenseMIT

Gnosis Safe

The most trusted platform to store digital assets on Ethereum. More info at gnosis-safe.io

This repository contains the code for the frontend code hosted at [https://gnosis-safe.io/app/]

Besides the Ethereum Mainnet, the following networks are supported:

For technical information please refer to the Gnosis Developer Portal.

For support requests, please open up a bug issue or reach out via Discord.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See Deployment for notes on how to deploy the project on a live system.

Prerequisites

We use yarn in our infrastructure, so we decided to go with yarn in the README. Please install yarn globally if you haven't already.

Environment variables

The app grabs environment variables from the .env file. Copy our template to your own local file:

cp .env.example .env

To execute transactions, you'll need to create an Infura project and set the project ID in the .env you've just created:

REACT_APP_INFURA_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Once done, you'll need to restart the app if it's already running.

Installing and running

Install dependencies for the project:

yarn install

To use the Rinkeby services:

yarn start

If you prefer using the Mainnet ones:

yarn start-mainnet

Building

For Rinkeby:

yarn build

For Mainnet:

yarn build-mainnet

Running the tests

To run the tests:

yarn test

Lint

ESLint will be run automatically before you commit. To run it manually:

yarn lint:fix

Deployment

Dev & staging

The code is deployed to a testing website automatically on each push via a GitHub Action. The GitHub Action will create a new subdomain and post the link as a comment in the PR.

When pushing to the main branch, the code will be automatically deployed to staging.

Production

Deployment to production is done manually. Please see the release procedure notes for details.

Configuring the app for running on different networks

Please check the network configuration documentation

Built With

app diagram

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE.md file for details