Gnosis Safe – The most trusted platform to store digital assets on Ethereum https://gnosis-safe.io
Go to file
Agustin Pane 8a774f2e66
(Feature) - #1048 Tx will fail warning (#1675)
* Makes getGasEstimationTxResponse exportable

* Add check for failing txs on approveTxModal

* Adds styles for reviewTx

* Adds useTxSuccessCheck hook

* Adds checkIfTxWillFail function

* Uses checkIfTxWillFailAsync on reviewTx modal

* Improves approveTx modal

* Add check for failing transaction in contract interaction modal

* Add check for reviewCollectible

* Fix check on sendFunds reviewTx

* Adds styling for contractInteraction modal

* Fix gas calculation for native token transfers

* Rename estimateDataGasCosts to parseRequiredTxGasResponse
Adds getPreValidatedSignatures
Refactor estimateTxGasCosts
Refactor checkIfExecTxWillFail

* Refactor checkIfExecTxWill usage

* Refactor checkIfTxWillFailAsync in ReviewTx

* Use getPreValidatedSignatures in createTransaction()

* Refactor estimateTxGasCosts
Rename estimateSafeTxGas to estimateExecTransactionGas

* Refactor ReviewTx: extract useEffects to hooks

* Remove unnecessary gas transfer amount

* Refactor estimateTxGasCosts: extract checkIfTxIsExecution and estimateTxGas

* Fix tx amount
Remove console log

* Moves useCheckIfTransactionWillFail to logic/hooks folder

* Replaces useEffect usage with useCheckIfTransactionWillFail hook
Also fix how some modals fetch the safeAddress

* Improves modal's wording

* Fix error parsing the cancel transaction error message from GETH nodes

* Remove useCheckIfTransactionWillFail
Adds useEstimateTransactionGas
Renames estimateTxGas to estimateTransactionGas
Removes estimateTxGasCosts
Removes checkIfExecTxWillFail

* Replace useCheckIfTransactionWillFail from modals with useEstimateTransactionGas

* Replace estimateGasCosts from every review tx modal with useEstimateTransactionGas

* Replace estimateGasCosts from every review tx modal with useEstimateTransactionGas

* Extract isExecution calculation to useEstimateTransactionGas

* Creates TransactionFailText

* Uses TransactionFailText in the review modals

* Fix wrong selector usage

* Fix missing null check on cancel tx confirmations

* Add guard for CLOSE_SNACKBAR action when tx was already dismissed

* Improves useEstimateTransactionGas in review custom tx and contract interaction review

* Fix review replace/remove/add owner modals styling

* Refactor response of useEstimateTransactionGas

* Remove safeAddress as param to the useEstimateTransactionGas

* Improves how threshold is obtained in useEstimateTransactionGas.tsx

* Rename gasCostHumanReadable to gasCostFormatted

* Add operation to useEstimateTransactionGas

* Refactor ConfirmTransactionModal to use useEstimateTransactionGas

* Refactor proccessTransaction to use getPreValidatedSignatures method

* Fix default export of ApproveTxModal

* Rename estimateExecTransactionGas to estimateGasForTransactionCreation
Remove estimateTransactionGas from gas.ts

* Make estimateGasForTransactionCreation throw error instead of 0 gas

* Adds estimateGasForTransactionExecution and estimateGasForTransactionApproval to gas.ts

* Move estimateTransactionGas to useEstimateTransactionGas
Refactors useEstimateTransactionGas to return isCreation and isOffChainSignature

* Type and refactor generateSignaturesFromTxConfirmations
Moves getPreValidatedSignatures to safeTxSigner.ts

* Uses confirmations to estimateGasForTransactionExecution

* Adds TransactionFeesText component
Uses TransactionFeesText on ApproveTxModal

* Pass more parameters to estimateGasForTransactionExecution

* Removes unnecessary parameter in getNewTxNonce

* Moves checkIfOffChainSignatureIsPossible to safeTxSigner.ts

* Fix check for null confirmations

* Uses checkIfOffChainSignatureIsPossible on createTransaction.ts

* Move TransactionFailText inside TransactionFees component

* Pass safeTxGas to useEstimateTransactionGas.tsx
Improves how we use default params

* Fix gas iteration on estimateGasForTransactionExecution

* Fix estimateGasForTransactionExecution calculation

* Fix generateSignaturesFromTxConfirmations calculation

* Remove unnecessary Promise and await

* Fix estimateGasForTransactionExecution for preApproving owner case

* Improve logging

* Uses operation in useEstimateTransactionGas

Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
Co-authored-by: Fernando <fernando.greco@gmail.com>
2021-01-13 11:27:07 +01:00
.github Update release artifacts upload 2020-11-17 16:20:28 +01:00
.storybook New layout (#1201) 2020-08-27 18:53:28 +04:00
config Handle console erros and warnings (#1709) 2020-12-11 19:38:16 +01:00
contracts Add test case for sending token with 6 decimals, wrap moveFunds helper fireEvent in act() 2019-10-14 17:13:15 +04:00
docs (Fix) Prevent ENS check when not supported (#1570) 2020-11-10 16:16:44 -03:00
migrations Merge branch 'development' into 536-notifications-status-labels-sync 2020-05-22 00:36:43 -03:00
patches (Feature) - EWC/Volta ENS support on web3 patch (#1596) 2020-11-18 14:42:00 -03:00
public Upgrade dependencies (#1767) 2021-01-12 22:33:22 +01:00
scripts Upgrade dependencies (#1691) 2020-12-04 18:38:49 +01:00
src (Feature) - #1048 Tx will fail warning (#1675) 2021-01-13 11:27:07 +01:00
.env.example (Feature) Spending Limit (#1637) 2020-11-25 15:59:17 -03:00
.eslintignore Bug: fix build directory for deployment, remove unused code (#937) 2020-05-21 08:42:11 -03:00
.eslintrc.js Tech Debt: Validator Type definitions (#1108) 2020-07-27 14:31:13 +04:00
.gitignore Feature #1593: Support promise-based api of Safe Apps SDK (#1594) 2020-12-11 12:31:55 +04:00
.nvmrc (Fix) Enforce linting and formatting (#564) 2020-02-17 19:20:43 -03:00
.prettierignore Support Circles Safes in frontend on xDai (#1636) 2020-11-26 18:00:19 +01:00
.prettierrc (Fix) Enforce linting and formatting (#564) 2020-02-17 19:20:43 -03:00
.rescriptsrc Upgrade dependencies (#1691) 2020-12-04 18:38:49 +01:00
.travis.yml Remove safe address tracking for GA (#1683) 2020-12-09 20:45:06 +01:00
GNOSISCLA.md Add Gnosis CLA (#1188) 2020-07-31 13:20:57 +04:00
LICENSE.md Adding README and LICENSE (#7) 2018-03-12 11:26:53 +01:00
dev-app-update.yml Add dialog and skip version 2020-06-03 14:37:50 -03:00
package.json Upgrade dependencies (#1767) 2021-01-12 22:33:22 +01:00
readme.md (Feature) - #1436 Network configuration documentation (#1533) 2020-11-05 11:21:31 +01:00
truffle.js Merge branch 'development' into 536-notifications-status-labels-sync 2020-05-22 00:36:43 -03:00
tsconfig.json Upgrade dependencies (#1691) 2020-12-04 18:38:49 +01:00
yarn.lock Upgrade dependencies (#1767) 2021-01-12 22:33:22 +01:00

readme.md

Gnosis Safe Multisig

The most trusted platform to store digital assets on Ethereum

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 the software and how to install them

yarn add truffle // recommended usage of -g flag
yarn add ganache-cli // recommended usage of -g flag
yarn add flow-type // recommended usage of -g flag

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

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

Break down into end to end tests

Explain what these tests test and why

Give an example

And coding style tests

Explain what these tests test and why

Give an example

Deployment

Add additional notes about how to deploy this on a live system

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.

Authors

See the full list of contributors who participated in this project.

License

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

Acknowledgments

  • Thanks for Gnosis Team for providing the Safe contracts.