Git Product home page Git Product logo

safe-react's Introduction

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 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

What things you need to install globally:

yarn global add truffle ganache-cli

We use yarn in our infrastacture, so we decided to go with yarn in the README

Installing and running

A step by step series of examples that tell you have to get a development env running

Install dependencies for the project:

yarn install

For using the Rinkeby services:

yarn start

If you prefer using Mainnet ones:

yarn start-mainnet

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.

Building

For Rinkeby:

yarn build

For Mainnet:

yarn build-mainnet

Running the tests

  1. Run transaction-history-service
git clone https://github.com/gnosis/safe-transaction-service.git
cd safe-transaction-service
git checkout develop
docker-compose build
# it comes enabled by default in docker-compose
sudo service postgresql stop
docker-compose up -d

Check that the service is running at https://localhost:8000

  1. Migrate Safe Contracts:
git clone https://github.com/gnosis/safe-contracts.git
cd safe-contracts
yarn
npx truffle migrate
  1. Migrate Token Contracts for the tests: Inside safe-react directory
npx truffle migrate
  1. Run the tests:
yarn test

Lint

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

yarn lint:fix

Deployment

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 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.

Releasing to production

We prepare a new release every sprint. Sprints are two weeks long.

  • 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.

Configuring the app for running on different networks

Please check the network configuration documentation

Built With

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

safe-react's People

Contributors

mmv08 avatar apanizo avatar germartinez avatar fernandomg avatar matextrem avatar agupane avatar nicosampler avatar alongoni avatar gabitoesmiapodo avatar davidalbela avatar katspaugh avatar lukasschor avatar francovenica avatar rmeissner avatar dependabot[bot] avatar uxio0 avatar miguelmota avatar coreyshirk avatar giacomolicari avatar pcowgill avatar luarx avatar tschubotz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.