2021-04-15 14:22:38 +00:00
# Gnosis Safe
2018-03-12 10:26:53 +00:00
2021-04-19 13:26:09 +00:00
The most trusted platform to store digital assets on Ethereum. More info at [gnosis-safe.io ](https://gnosis-safe.io/ )
This repository contains the code for the frontend code hosted at [https://gnosis-safe.io/app/]
2021-05-10 08:38:08 +00:00
Besides the Ethereum Mainnet, the following networks are supported:
2021-04-19 13:26:09 +00:00
- [Rinkeby Testnet ](https://rinkeby.gnosis-safe.io/app/ )
- [xDai ](https://xdai.gnosis-safe.io/app/ )
- [Energy Web Chain ](https://ewc.gnosis-safe.io/app/ )
- [Volta Testnet ](https://volta.gnosis-safe.io/app/ )
For technical information please refer to the [Gnosis Developer Portal ](https://docs.gnosis.io/safe/ ).
For support requests, please open up a [bug issue ](https://github.com/gnosis/safe-react/issues/new?template=bug-report.md ) or reach out via [Discord ](https://discordapp.com/invite/FPMRAwK ).
2018-03-12 10:26:53 +00:00
## Getting Started
2021-04-06 13:55:55 +00:00
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See [Deployment ](#deployment ) for notes on how to deploy the project on a live system.
2018-03-12 10:26:53 +00:00
### Prerequisites
2021-06-04 14:20:25 +00:00
We use [yarn ](https://yarnpkg.com ) in our infrastructure, so we decided to go with yarn in the README.
Please install yarn globally if you haven't already.
2018-03-12 10:26:53 +00:00
2021-06-04 14:20:25 +00:00
### Environment variables
The app grabs environment variables from the `.env` file. Copy our template to your own local file:
2018-03-12 10:26:53 +00:00
```
2021-06-04 14:20:25 +00:00
cp .env.example .env
2018-03-12 10:26:53 +00:00
```
2021-06-04 14:20:25 +00:00
To execute transactions, you'll need to create an [Infura ](https://infura.io ) 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.
2019-04-12 14:41:47 +00:00
2019-09-25 11:15:45 +00:00
### Installing and running
2018-03-12 10:26:53 +00:00
2019-10-02 12:14:45 +00:00
Install dependencies for the project:
2018-03-12 10:26:53 +00:00
```
2019-04-12 14:41:47 +00:00
yarn install
2019-09-30 06:56:37 +00:00
```
2021-05-10 08:38:08 +00:00
To use the Rinkeby services:
2019-09-30 06:56:37 +00:00
```
2019-04-12 14:41:47 +00:00
yarn start
2018-03-12 10:26:53 +00:00
```
2019-10-02 12:14:45 +00:00
2021-05-10 08:38:08 +00:00
If you prefer using the Mainnet ones:
2019-09-24 13:49:01 +00:00
```
2019-09-30 06:56:37 +00:00
yarn start-mainnet
2019-09-24 13:49:01 +00:00
```
2019-09-25 11:15:45 +00:00
### Building
2019-09-30 06:56:37 +00:00
For Rinkeby:
2019-09-25 11:15:45 +00:00
```
yarn build
```
2019-09-30 06:56:37 +00:00
For Mainnet:
2019-09-25 11:15:45 +00:00
```
2019-09-30 06:56:37 +00:00
yarn build-mainnet
2019-09-25 11:15:45 +00:00
```
2018-03-12 10:26:53 +00:00
## Running the tests
2021-06-04 14:20:25 +00:00
To run the tests:
2018-03-12 10:26:53 +00:00
```
2019-04-12 14:41:47 +00:00
yarn test
2018-03-12 10:26:53 +00:00
```
2021-04-22 15:50:34 +00:00
### Lint
2018-03-12 10:26:53 +00:00
2021-04-22 15:50:34 +00:00
ESLint will be run automatically before you commit. To run it manually:
2018-03-12 10:26:53 +00:00
```
2021-04-22 15:50:34 +00:00
yarn lint:fix
2018-03-12 10:26:53 +00:00
```
2021-04-22 15:50:34 +00:00
## Deployment
2018-03-12 10:26:53 +00:00
2021-04-22 15:50:34 +00:00
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.
2018-03-12 10:26:53 +00:00
2021-04-22 15:50:34 +00:00
When pushing to the `master` branch, the code will be uploaded to the production bucket but not deployed automatically.
This is done manually by the devops team for extra safety.
2018-03-12 10:26:53 +00:00
2021-04-22 15:50:34 +00:00
## Releasing to production
We prepare a new release every sprint. Sprints are two weeks long.
2018-03-12 10:26:53 +00:00
2021-04-22 15:50:34 +00:00
* A separate code-freeze branch named `release/X.Y.Z` is created
* The QA team do regression testing on this branch
* If issues are found, bugfixes are merged into this branch
* Once the QA is done, we push the branch to `master` (which is deployed to production)
* Master is afterwards backmerged into the main `development` branch.
2018-03-12 10:26:53 +00:00
2020-11-05 10:21:31 +00:00
## Configuring the app for running on different networks
[Please check the network configuration documentation ](./docs/networks.md )
2018-03-12 10:26:53 +00:00
## Built With
* [React ](https://reactjs.org/ ) - A JS library for building user interfaces
2020-08-05 07:30:57 +00:00
* [Material UI 4.X ](https://material-ui.com/ ) - React components that implement Google's Material Design
2018-03-12 10:26:53 +00:00
* [redux, immutable, reselect, final-form ](https://redux.js.org/ ) - React ecosystem libraries
## Contributing
Please read [CONTRIBUTING.md ](https://gist.github.com/PurpleBooth/b24679402957c63ec426 ) for details on our code of conduct, and the process for submitting pull requests to us.
## Versioning
2021-05-10 15:56:56 +00:00
We use [SemVer ](https://semver.org/ ) for versioning. For the versions available, see the [tags on this repository ](https://github.com/gnosis/gnosis-team-safe/tags ).
2018-03-12 10:26:53 +00:00
## License
This project is licensed under the MIT License - see the [LICENSE.md ](LICENSE.md ) file for details