47d20aa645
* Add types for redux actions (#1737) * solve errors after rebase - added `isStoredTransaction` to differentiate tx provided to `isCancelTransaction` Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * Add types + loadGateway transactions cosumer * add client-gateway endpoints to networks configs * add client-gateway getters * WIP: consume gateway-client endpoint - added the history transactions to the store - updated types to `/queued` and `/history` endpoints Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * add queued transactions to the store Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * add queued transactions selectors Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * WIP: display history transactions Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * WIP: arrange lists queue/history * prevent loading data from txs-service * cherry-pick TokenTransferAmount component * extract queue transactions logic into a hook `useQueueTransactions` * Add TxType and TokenTransferAmount components Co-authored-by: fernandomg <fernando.greco@altoros.com> * wip: history transactions * wip: use grid to display list content * wip: use Accordion * wip: tx history Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * wip: tx details Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * wip: TxInfo Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * wip: TxSummary Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * wip: TxSettingsInfo Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * Wip: style owners list Co-authored-by: fernandomg <fernando.greco@altoros.com> * wip: Owners List Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * wip: TxInfoCreation Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * wip: stop using backOff for client-gateway requests Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * refactor reorganize files and components Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * refactor - Accordion implementation - extract summaryContent to a reusable component Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * Fix prettier issue in src/config/index * add methods names and descriptions to collapsed row Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * wip: split components to render tx-data depending on the tx type Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * add multiSend tx details Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * refactor TxData - separate into specified components `HexEncodedData`, `MethodDetails` & `MultiSendDetails` * remove unused imported type * wip: infinite-scroll Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * refactor `ADD_HISTORY_TRANSACTIONS` reducer Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * implement infinite scroll pagination Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * avoid defining `page_url` param * refactor InfiniteScroll implementation - created a wrapper component to simplify interface - rearranged code * add `missingSigners` key to `ExecutionInfo` type * add `lodash.get` * update `useTransactionStatus` hook to support queued transactions * use `lodash.get` to access queued objects * add votes info to TxCollapsed * add TxQueueCollapsed - also update the usage of `useTransactionStatus` hook * split `TxRow` into `TxHistoryRow` and `TxQueueRow` * use `txLocation` instead of `title` for `QueueTxList` component * make `TxDetails` generic * fix queue list elements arrangement * export `useTransactionDetails` return type [skip ci] * wip: group txs by nonce [skip ci] * request tx details on demand [skip ci] * display cancelling message in queued transactions only [skip ci] * wip: implement tree view for grouped transactions * styled components - reorganized - added comments where necessary - refactored * refactor QueueTxList [skip ci] * update styled-component [skip ci] * refactor - Accordion implementation - extract summaryContent to a reusable component Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * update safe-react-components Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * update styled-component [skip ci] * fix most-recent list of history transactions update * make queued transactions list scrollable * make scrollableTarget a const * styles fixes - queued grouped transactions styles - add styles to scrollbar in scrollable areas * add safe apps info to tx lists * wip: add action buttons to tx details * fix column distribution for transactions rows * display action count for multiSend transactions * TxExpandedActions * add action buttons - also did a slight refactor around grouped vs. not-grouped transactions * fix txDetails selector * adapt button to current SRC specs * wip: action buttons "action" - TODO: handle the store update -> screen refresh * fix execution/confirmation conditions - fixed modals conditions for execution when last confirmation is able to execute * fix tree view (no <p> as descendant of <p>) * wip: handle transactions actions through a context provider * provide txLocation through context * fix `react-hooks/exhaustive-deps` warnings * Sort history list * Add objects utils * add `lodash.merge` as a dependency Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * update `ADD_QUEUED_TRANSACTIONS` reducer Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * implement pagination for `queued` transactions Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * prevent rendering action modal if `txDetails` is not available Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * pending status for tx execution * small style-based behavior fixes * allow to identify txs to be replaced * redirect to `gatewayTransaction` * adjust behavior for grouped vs individual transactions * add help links * display execute action only when threshold is reached * make `setActiveHover` required * prevent `<p />` as child of `<p />` * fix cards background colors * revert staging config * fix linting errors * prevent using `no-owner` class in history list * add `PENDING` status to confirmation transactions This will mark as _pending_ a transaction by its id, the rest of the txs that share same nonce will remain untouched * unify action buttons status - created `useActionButtonsHandler` hook - extracted `CollapsedActions` into `TxCollapsedActions` component Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * fix wording * fix pending status Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * fix close Action modal Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * extract `addressInList` as a util function Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * fix action buttons' "disabled" status condition Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * provide proper `to` and `value` for `processTransaction` based on Transfer Type (ERC20, ERC721 or ETHER) Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * update queued transactions pointers if we reached the last page Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * use `as string` for `next` pointer - also fixed typo Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * add JSDocs * explicitly discard unused client-gateway headers Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> * add loading status to the queue transactions list * fix tx actions after rebase of v2.19.1 * fix issue with safe data update * fix types issues * skip `isCancelTransaction` tests * fix loading status for queue transactions * Update notifications for tx-list v2 (#1839) Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * use `sameString` to verify `method` value Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * TxDetails refactor cancelTxDetails condition Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * remove unused TxType component Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * remove unused `isReadyToExecute` function Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * Fix eslint * Update txs details after `PENDING` status update * remove log * Fix send transaction because of removed notification message * Cleanup pending unwanted notifications * wip: ellipsis actions * wip: ellipsis actions - fix tokenAmount * Refactor to txInfoDetails * refactor `TxInfoDetails` * remove old `utils.tsx` file * support SpendingLimit transactions * fix `isSpendingLimitMethod` * Fix styles for tx list v2 (#1859) Co-authored-by: fernandomg <fernando.greco@gmail.com> Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com> * wip: performance enhancement Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> * wip: extract data calculation to a hook * refactor huge ternaries * fix columns styles for small screens Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * add extra information for `Cancel` transaction identification * undo custom selector Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> * undo custom selector * Pass `action` by prop to TxDetails Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> * Unify `processTransaction` / `createTransaction` actions Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm> * Disable send again when the user is offline * set pending status for the executed tx only (not the group by nonce) Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm> * Use gatewayTransactions as default transaction list * fix styles for TxDetails row Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm> * Remove old transactions list legacy code Move gatewayTransactions within transactions folder * Remove allTransactions legacy code * Types * Fix redirect after createTransaction * fix performance issue for `ApproveTxModal` Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> Co-authored-by: Agustin Pane <agustin.pane@gmail.com> * fix asset icon size * fix status wording * add time tooltip * add _breadcrumb_ * properly identify non existing nonce * fix open cookie banner types after merge * add isCancellation flag support * fix expanded tx styles Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com> Co-authored-by: Mati Dastugue <mdastugu@amazon.com> Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm> Co-authored-by: nicosampler <nf.dominguez.87@gmail.com> Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com> Co-authored-by: Agustin Pane <agustin.pane@gmail.com> Co-authored-by: nicolas <nicosampler@users.noreply.github.com> Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com> |
||
---|---|---|
.github | ||
.storybook | ||
config | ||
contracts | ||
docs | ||
migrations | ||
patches | ||
public | ||
scripts | ||
src | ||
.env.example | ||
.eslintignore | ||
.eslintrc.js | ||
.gitignore | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc | ||
.rescriptsrc | ||
.travis.yml | ||
GNOSISCLA.md | ||
LICENSE.md | ||
dev-app-update.yml | ||
package.json | ||
readme.md | ||
truffle.js | ||
tsconfig.json | ||
yarn.lock |
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
- 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
- Migrate Safe Contracts:
git clone https://github.com/gnosis/safe-contracts.git
cd safe-contracts
yarn
npx truffle migrate
- Migrate Token Contracts for the tests:
Inside
safe-react
directory
npx truffle migrate
- 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
- Truffle React Box - The web framework used
- Ganache - Fast Ethereum RPC client
- React - A JS library for building user interfaces
- Material UI 4.X - React components that implement Google's Material Design
- redux, immutable, reselect, final-form - React ecosystem libraries
- Flow - Static Type Checker
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
- Germán Martínez(germartinez)
- Mikhail Mikheev(mikheevm)
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.