Fernando e0e23255ad
(Feature) Disable buttons while busy and fix modal buttons styles (#2247)
* button margin on Execute tx modal

* button margin on Advanced option modal

* fix lowercase on modal titles

* button margin and styles on Remove module modal

* button margin on Remove Safe modal

* buttons margins on Add new owner

* button margin and styles on Edit owner name modal

* button margin and styles on Replace owner modals

* fix modal heading height on Add new owner modal

* button margin and styles on Remove owner modals

* button aligmnent on Change required confirmations  modal

* buton alignment and styles on  create entry modal

* button aligmnent and styles Delete entry modal

* button alignment and styles on Add custom app modal

* add gap to the butons on modals

* add gap

* fix button color on Remove Safe

* add gap on remove module modal

* add gap on  Manage Safe Owners

* add gap on Policies modal

* add gap and remove some styles from TxList

* add gap and remove styles on Contract Interaction Modal

* add gap and remove styles from Send funds modal

* add gap and remove styles from Send collectible modal

* fix eslint issues

* upgrade SRC dependency

* remove unused variable

* WIP: common pattern for button status

* WIP: add status to generic Modal buttons

* WIP: text status for App modal

content is restricted to text

* WIP: common patter in settings buttons

* WIP: RemoveLimitModal button status

* add `testId` prop to Modal buttons

* use Modal's buttons status

* add default text for LOADING and READY status in Modal Buttons

* overwritte button text only when necessary

make use of the LOADING/READY default status texts

* create `useButtonStatus` hook to avoid code repetition

* Add `withoutBorder` prop to Modal.Footer

* Adapt Apps Modal footer to use Modal.Footer and Modal.Footer.Buttons

* Update Spending limits modals

* update app modal button text

* add `useButtonStatus` wherever it was missing

* rename and simplify `useButtonStatus`

new name: `useEstimationStatus`

removed `data` as argument, as it is was not adding any benefit

* update `txEstimationExecutionStatus` when no data provided

* Add validation for the hex data in custom contract interaction

* remove old buttons

* use default instead of cases

* set default EstimationStatus to SUCCESS

* Replace footer wrapper with `Modal.Footer`

* rollback EstimationStatus status when no `txData` is present

* fix Modal.Footer styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix New Transaction modals buttons

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix advanced settings styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix settings->owners styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix settings->remove safe modal styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix settings->policies styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix settings->spending limit styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix apps modal styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix txs list modal styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* update Modal props and styles

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix styles for Apps modals

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* cleanup spending limit modal implementation

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix receive modal button

* fix address book modal buttons

* fix receive modal header height

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>

* fix add owner modal buttons

* fix add owner modal buttons (threshold)

* delete commented code

* fix Advanced option modal buttons and styles on Divider

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
2021-05-21 16:35:49 +02:00
2021-03-09 16:11:09 +01:00
2021-04-15 16:22:38 +02:00
2021-02-24 17:24:25 +01:00
2021-04-06 15:55:55 +02:00
2021-03-09 16:11:09 +01:00
2020-12-04 18:38:49 +01:00
2020-06-03 14:37:50 -03:00
2020-07-31 13:20:57 +04:00
2018-03-12 11:26:53 +01:00
2021-05-18 09:28:38 +02:00
2021-05-14 11:09:09 +02:00
2021-05-18 09:28:38 +02:00

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

What you need to install globally:

yarn global add truffle ganache-cli

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

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

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

Description
Gnosis Safe – The most trusted platform to store digital assets on Ethereum
https://gnosis-safe.io
Readme
Languages
TypeScript 97.9%
JavaScript 1%
CSS 0.8%
Shell 0.2%