Commit Graph

2305 Commits

Author SHA1 Message Date
fernandomg ec09b3bd55 Merge branch 'development' into feature/#934-advanced-settings
# Conflicts:
#	src/routes/safe/store/actions/fetchSafe.ts
#	src/routes/safe/store/models/safe.ts
#	src/routes/safe/store/reducer/safe.ts
2020-06-30 14:23:58 -03:00
Mati Dastugue 02eeb0410e Merge branch 'development' of github.com:gnosis/safe-react into feature/address-book-suggestions 2020-06-30 12:59:38 -03:00
Agustin Pane 35a118b975 Updates coverage script 2020-06-30 12:06:46 -03:00
Mikhail Mikheev a8483a97da
Merge pull request #1041 from gnosis/1013-undefined-error
(Fix) - #1013 undefined error
2020-06-30 18:48:33 +04:00
fernandomg ebf8d149a2 WIP: code cleanup and fix typings 2020-06-29 15:46:00 -03:00
Fernando 328343fa9d
Merge pull request #1069 from gnosis/2.3.2-dev-master-backmerge 2020-06-29 13:53:57 -03:00
Mati Dastugue 0587bb9139 Fix types + improve form values 2020-06-29 13:48:46 -03:00
nicolas 6def3cbc93
add Aave app (#1075) 2020-06-29 13:39:48 -03:00
Mati Dastugue f21913d84a Merge branch 'development' of github.com:gnosis/safe-react into feature/address-book-suggestions 2020-06-29 12:57:14 -03:00
Mikhail Mikheev ed72219f03 type definition fixes 2020-06-29 15:29:27 +04:00
fernandomg 3eba845314 WIP: add `Advanced` settings
there's a lot of duplicated code, just copying functionalities and building basic structure for the section
2020-06-26 18:57:17 -03:00
fernandomg cbc8121bd9 fix typings 2020-06-26 18:56:08 -03:00
fernandomg 2d8da9ca98 add modules 2020-06-26 18:55:48 -03:00
Mati Dastugue 89100d5158 Change value validator 2020-06-26 13:04:43 -03:00
nicosampler 5ddb487411 typo 2020-06-26 12:29:01 -03:00
nicosampler ecf9e1dd79 explicitly type classNames 2020-06-26 12:19:29 -03:00
Mikhail Mikheev f2f9cb7d81 default safe logic fixes 2020-06-26 18:38:59 +04:00
nicosampler 7271d465e1 Fix: Sapp confirmTXs modal width. 2020-06-26 11:10:05 -03:00
Mikhail Mikheev ca51768b04 Merge branch 'development' of github.com:gnosis/safe-react into 1013-undefined-error 2020-06-26 18:09:55 +04:00
Mikhail Mikheev 00843b5c66 Fix dev mainnet config 2020-06-26 13:36:43 +04:00
Mikhail Mikheev 728bcc3f8e fix catching errors during retrieving token symbols/decimals 2020-06-26 13:34:12 +04:00
Mikhail Mikheev 46c227881a hardcode ens contract address to isERC721Transaction function, fallback to 18/unknown in methods fetching token decimals 2020-06-26 13:22:34 +04:00
Mati Dastugue d11142de70 Update types 2020-06-25 21:22:17 -03:00
Mati Dastugue c5681f1491 Merge branch 'development' of github.com:gnosis/safe-react into feature/address-book-suggestions 2020-06-25 20:59:37 -03:00
Agustin Pane abd61dc055 Move window definition 2020-06-25 12:47:23 -03:00
Agustin Pane d7d2305b9c Adds global interface for window.web3 2020-06-25 12:27:38 -03:00
Agustin Pane d61146c017 Merge branch 'master' of https://github.com/gnosis/safe-react into coveralls
# Conflicts:
#	yarn.lock
2020-06-25 10:42:30 -03:00
Agustin Pane 8d1ef7ac36 Disable errored tests 2020-06-25 10:36:57 -03:00
Mikhail Mikheev f39b0903ca
2.3.1 bugfix
* fallback to tx.recipient in case no if statement worked in getTxData

* update pkg.json
2020-06-25 16:18:53 +04:00
Agustin Pane 7fe182db3c Add default provider for node 2020-06-25 08:53:27 -03:00
Mati Dastugue 79fbc2a54b Add types for Address book suggestion 2020-06-24 16:57:45 -03:00
Mati Dastugue cf2fd4522c Merge branch 'development' of github.com:gnosis/safe-react into feature/address-book-suggestions 2020-06-24 16:39:30 -03:00
Mati Dastugue 62270e180b update types 2020-06-24 16:39:19 -03:00
Agustin Pane 0f699acea3 Fix confirmation file to make tests run 2020-06-24 11:14:03 -03:00
nicolas 38f6123d73
Disable Aave (#1052) 2020-06-23 13:20:01 -03:00
Mikhail Mikheev 01358de643 fix default safe return 2020-06-23 19:57:30 +04:00
Mikhail Mikheev c925449db2 fix apps types, fix lastTimeUserLoggedInForSafes type 2020-06-23 19:38:09 +04:00
Mikhail Mikheev 21ae4800c9 fix getDefaultSafe return type 2020-06-23 19:09:24 +04:00
Mikhail Mikheev f8d6ad4ca2 more fixes for pendingCreationTx 2020-06-23 19:06:23 +04:00
Mikhail Mikheev 96ffd52266 fix pendingSafeTx type issues 2020-06-23 19:05:42 +04:00
Mikhail Mikheev 8f0cccdb59 Fix token storage type errors, remove unused functions 2020-06-23 19:03:02 +04:00
Mati Dastugue 6d2638410f Set address book suggestions 2020-06-23 10:36:30 -03:00
Mikhail Mikheev e7c012d5d1 Fix addressbook type errors 2020-06-23 17:33:57 +04:00
Agustin Pane ebb02df721
(Fix) Fix undefined for maxValue validator in case there is no token selected (#1031)
* Fix undefined for maxValue validator  in case there is no token selected

* Add condition on validator

* Fix reset form status

* Force the re-validation on the amount field

* Fix paste address
2020-06-23 10:28:12 -03:00
Mikhail Mikheev 18f03b8bc1 typing loadFromStorage wip 2020-06-23 13:53:10 +04:00
nicolas 8c2d67897d
Adding Aave and Sablier apps (#1045) 2020-06-22 16:27:08 -03:00
Mati Dastugue 768c12e975 Merge branch 'development' of github.com:gnosis/safe-react into feature/supportCustomTX 2020-06-22 12:18:09 -03:00
Agustin Pane 231a9a7d35 Remove types 2020-06-22 12:05:08 -03:00
nicolas 2f46268fdf
Fix condition in TX sent from safe-apps (#1037)
* fix condition

* add type
2020-06-22 11:12:03 -03:00
Agustin Pane cc6aa13451 Fix types 2020-06-19 20:00:24 -03:00
francovenica b02924f5ef
Adding test (feature) (#1030)
* data-testid for load and create safe

* fix connect button id

* removed buttons data-testid property
2020-06-19 19:06:53 -03:00
Mati Dastugue 4241d1fa96 Fix TS types 2020-06-19 14:24:28 -03:00
Agustin Pane caa94c879b Types 2020-06-19 13:02:54 -03:00
Agustin Pane 5c00d51c3c Remove types on loadFromStorage 2020-06-19 12:21:24 -03:00
Agustin Pane 3283bf1dc6 Add types 2020-06-19 11:18:33 -03:00
Agustin Pane bcb468e3ec Fix race condition 2020-06-19 11:07:23 -03:00
Agustin Pane fe7e4b5536 Merge branch 'development' of https://github.com/gnosis/safe-react into 1013-undefined-error 2020-06-19 10:00:56 -03:00
Mati Dastugue 45ca501c60 Fix value bug + preserve values when changing switch 2020-06-18 20:14:53 -03:00
Mati Dastugue 3628ee9b5f Merge branch 'development' of github.com:gnosis/safe-react into development 2020-06-18 16:18:07 -03:00
Mati Dastugue 84fae2e845 Add support for customTX 2020-06-18 16:17:47 -03:00
Mati Dastugue a5b4585049
Merge pull request #1010 from gnosis/feature/txsCollectibles
Collectibles Transactions + Add WalletLink Support
2020-06-18 11:33:21 -03:00
nicolas 813619c123
hide sapp iframe until it loads completely (#1020)
* hide sapp iframe until it loads completely

* review changes

* remove code

* moving type

* adding styled-components types

* fix TS error

* refactor iframe loading
2020-06-18 14:03:12 +04:00
Fernando 0296a670e7
(Fix) [Contract Interaction] Support array-like arguments (#1009)
* Add `ArrayTypeInput` to support array type values

- also updated types for ContractInteraction/utils

* Update placeholder message

* Support fixed size arrays

- refactored how Field's key is generated due to conflicts with final-form library and `[]` in the name
- also simplified validation for array-like fields, as it messed with arguments of type `T[][2][][3]`
2020-06-18 13:53:49 +04:00
Mati Dastugue 75ee00caec
Fix methodToCall variable 2020-06-16 13:05:43 -03:00
Agustin Pane 336413c8e5 Fix undefined for maxValue validator in case there is no token selected 2020-06-16 09:29:12 -03:00
Mati Dastugue b5f73c8e3c Fix typo. Add Typescript types 2020-06-13 15:50:15 -03:00
Mati Dastugue 552611d779 Fix typo in function name + Add Wallet link 2020-06-12 16:35:24 -03:00
Mati Dastugue 678d7ed5a4 Merge branch 'development' of github.com:gnosis/safe-react into feature/txsCollectibles 2020-06-11 21:35:29 -03:00
Agustin Pane 6d1a349d87
(Fix) - Identicons fix (#1004)
* Replaces old blockies dependency with ethereum-blockies-base64

* Add types

* Refactor as functional component

* Simplify identicon logic

* Simplify identicon styling logic

* Simplify identicon styling logic
2020-06-11 12:13:14 -03:00
Mati Dastugue 027b8ccc51 Merge with dev 2020-06-10 11:39:15 -03:00
Mati Dastugue a3541d8a33 Add support for collectibles 2020-06-10 11:32:30 -03:00
Fernando 41ec0786b7
(Refactor) Update `dataDecoded` structure (#995) 2020-06-09 16:15:31 -03:00
nicolas 509aefe286
fix config (#1002) 2020-06-09 13:19:17 -03:00
nicolas ea1662bc6f
Safe apps url config (#1001)
* safe-react-apps  url from config and add request app

* Adding types

* safe-react-components bump

* extracting types

* add return type

Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-06-09 11:34:43 -03:00
Mikhail Mikheev 8f9cd58d4e
Merge pull request #985 from gnosis/fix/#983-support-ens-for-contract-interaction
(Fix) [Contract Interaction] Support ENS for contract address
2020-06-09 18:11:28 +04:00
Mikhail Mikheev 6d56286c02 Merge branch 'development' of github.com:gnosis/safe-react into 982-fiatbalances-dont-show 2020-06-09 14:04:28 +04:00
Mikhail Mikheev cdbdf69829
Merge pull request #996 from gnosis/fix/#994-contractInteraction-no_data-for-abi-field
(Fix) Properly identify methods to interact with
2020-06-09 12:49:24 +04:00
fernandomg 9db0d76fa1 Allow pure functions to be called 2020-06-08 15:54:09 -03:00
Mati Dastugue f7faf3e29c Merge with dev 2020-06-08 13:24:48 -03:00
fernandomg 7d83843b96 properly identify methods to interact with 2020-06-06 17:34:26 -03:00
Fernando cefb33b593
(Fix) [Contract Interaction] Parameter validation (#974) 2020-06-06 10:32:25 -03:00
fernandomg d488436054 avoid populating abi field with invalid data if it's not required 2020-06-05 11:22:35 -03:00
fernandomg 78682a90af add decorator to extract eth address from ENS for contract address 2020-06-05 11:22:35 -03:00
fernandomg 3ac845106b move `isValidEnsName` to utils 2020-06-05 11:22:35 -03:00
fernandomg 45a3719bb0 Merge branch 'development' into fix/#950-parameter-validation-contractInteraction 2020-06-05 11:21:47 -03:00
Agustin Pane ed56191e56 Fix types 2020-06-05 11:08:29 -03:00
Agustin Pane 3deb37da26 Fix types 2020-06-05 09:33:37 -03:00
Agustin Pane 6c857ee02a Merge branch 'development' of https://github.com/gnosis/safe-react into 957-null-balances
# Conflicts:
#	package.json
2020-06-05 09:05:01 -03:00
Mikhail Mikheev 5a7ced92ad
Merge pull request #897 from gnosis/536-notifications-status-labels-sync
Feature: Hide transactions with no confirmations, labels/notifications sync
2020-06-05 14:20:04 +04:00
Agustin Pane e5c6d8040d
(Fix) Null balances (#971)
* Fixs balances will null value

* Fixs collectibles not loading

* Uses useLocation hooks

* Add types

* fix types for useLocation

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-06-04 17:54:39 -03:00
fernandomg 4d41e813ed Merge branch 'development' into fix/#950-parameter-validation-contractInteraction
# Conflicts:
#	package.json
#	src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/RenderInputParams/index.tsx
#	src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/Review/index.tsx
#	src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/Review/style.ts
#	src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/index.tsx
#	src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/utils/index.ts
#	yarn.lock
2020-06-04 11:17:49 -03:00
Agustin Pane 63193d2429
(Fix) [Contract Interaction] boolean fields (#976)
* Replaces checkbox component with safe apps components

* Refactor input params to use checkbox component for boolean types

* Remove "anys"
Fix boolean values display on review tx

* Remove any

* Fix ts issues

* Exports boolean fn to util function

* Extract input component rendering to another component

* Fixs imports
Add types

* Remove old checkbox component

* Add types

* Add types

* fix `data` string not being updated after modifying a reviewed tx

* fixes required for typescript 3.9.3 upgrade

* bump typescript version

* add travis_wait for build command

* add cache for yarn

* travis wait fix

* remove travis_wait

* Revert "fix `data` string not being updated after modifying a reviewed tx"

This reverts commit 49356054cd93726b058073d3cd2e7a0244fd5914.

* Revert "Revert "fix `data` string not being updated after modifying a reviewed tx""

This reverts commit f2572e68dc59c01d8e4b1eccf975faf4006cd7a7.

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-06-04 10:56:55 -03:00
Agustin Pane 1a901126df Adds fallback to USD as currency rate selected in case that the data stored is not defined 2020-06-04 10:49:12 -03:00
Agustin Pane 6858a8d6d6 Refactors AVAILABLE_CURRENCIES as enum
Add types for currency values
2020-06-04 10:12:06 -03:00
fernandomg 0cf786e8d1 fix `data` string not being updated after modifying a reviewed tx 2020-06-03 14:04:58 -03:00
fernandomg e3a9945675 add types and fix `useField` usage 2020-06-03 14:04:15 -03:00
fernandomg c946cd98e0 Merge branch 'development' into 536-notifications-status-labels-sync
# Conflicts:
#	yarn.lock
2020-06-03 10:35:26 -03:00
fernandomg 02bb5211a7 fix errors when creating tx in safe v1.0.0
- Code was expecting `ExecutionSuccess` event. That's not part of v1.0.0
- `transactionHash` is part of the tx receipt, so no need to extract it from the event
- `safeTxHash` is calculated client-side, so no longer needed to get it from tx receipt
2020-06-03 10:34:31 -03:00
fernandomg cd77fba5b7 fix useField abi config object param 2020-06-02 13:32:11 -03:00
fernandomg 95a753cbe5 fix 'non-empty-pattern' ts warning 2020-06-02 10:50:32 -03:00
fernandomg 7dfa7af41d add general types to ContractInteraction components 2020-06-02 10:45:55 -03:00
fernandomg 2c0bcfefe6 convert ABIService from class to module and add typings 2020-06-02 10:22:49 -03:00
fernandomg f049f8598d fix styles typing 2020-06-02 10:17:02 -03:00
fernandomg b07f0e90d9 use method `.call` only for the read methods
- review screen then will attempt to evaluate the validity of the write method
2020-06-02 09:04:29 -03:00
fernandomg d4ef317cce Merge branch 'development' into fix/#950-parameter-validation-contractInteraction
# Conflicts:
#	yarn.lock
2020-06-01 23:39:52 -03:00
fernandomg ed995df5b7 simplify call/review buttons
- unify handleSubmit
- use `.call` to identify a failing tx
2020-06-01 23:38:27 -03:00
fernandomg a28c598af1 add title to call-result values 2020-06-01 23:36:39 -03:00
fernandomg 1442f33d5a fix error message format, prevent text overflow 2020-06-01 23:35:35 -03:00
Mati Dastugue 3bcdb80f26
Merge pull request #967 from gnosis/fix/ledger
Fix Ledger issues on Desktop App
2020-06-01 16:54:28 -03:00
fernandomg d5cf8c94ab change `signature` key name to `methodSignature`
There is something down there that mutates the `tx` object in the Review screen and was overwriting the `signature` key with the method's hash
2020-06-01 14:54:42 -03:00
fernandomg 420b9cb58e properly update method selected 2020-06-01 14:51:45 -03:00
Agustin Pane 76eeb17dd2
(Fix) Balances tabs fixs (#973)
* Fix cannot change safe from sidebar

* Removes collectibles header for 1.0.0 safes

* Removes exact path in balances route
2020-06-01 13:50:45 -03:00
fernandomg 45bbbc9967 properly handle submit errors 2020-05-29 21:45:22 -03:00
fernandomg df0562911e hide EthValue if the method set does not require it 2020-05-29 21:44:40 -03:00
fernandomg 394a98b424 create form error component 2020-05-29 21:43:56 -03:00
fernandomg 4de3308069 extend TextField to support submit errors 2020-05-29 21:43:37 -03:00
fernandomg 8e75e999ef fix: transaction details 2020-05-29 14:25:24 -03:00
Mati Dastugue 7b0eb4cf7d Merge branch 'development' of github.com:gnosis/safe-react into fix/ledger 2020-05-29 12:22:41 -03:00
Agustín Longoni 4ddffaab76
Merge pull request #968 from gnosis/issue-964
(Fix) Flags css import
2020-05-29 08:32:10 -03:00
Agustin Pane 971b2ee6d3
(Fix) - Fixs tab selection (#960)
* Fixs tab selection

* Refactor balances tab to use react router
2020-05-29 08:07:32 -03:00
Mikhail Mikheev 710f6a5ab6
Merge pull request #966 from gnosis/fix-awaitingTransactions
Fix app crashing when safeTransactions is undefined
2020-05-29 14:50:17 +04:00
Mikhail Mikheev fda93a53c8 fix generateSafeTxHash typing 2020-05-29 14:00:20 +04:00
Agustín Longoni c0dbfa0dbb fix flags css import 2020-05-28 16:22:51 -03:00
fernandomg 498f9a4d1b Merge branch 'development' into 536-notifications-status-labels-sync
# Conflicts:
#	package.json
#	src/logic/contracts/generateBatchRequests.ts
#	src/logic/tokens/utils/tokenHelpers.ts
2020-05-28 13:51:19 -03:00
nicolas 4065d5a007
Allow to load Safe Apps with ENS names (#911)
* Remove ethereum-ens in favour of web3.eth.ens

* Allow load Apps from ENS names

* remove comment

* review changes

* replace REACT_APP_IPFS_NODE by REACT_APP_IPFS_GATEWAY

* review fixes

* TS Errors

* fix paths

* Fix validtor

* Apps: Move App form to a separate file

* re-build

* review changes

* fix iframeEl type

* remove validation

* fix type

* update web3 version

* remove type in getContentFromENS

Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-05-28 12:50:08 -03:00
Mati Dastugue 7a20aaac42
Merge pull request #935 from gnosis/fix/trezor-support
Add Trezor support
2020-05-28 12:23:13 -03:00
Agustin Pane 7a79579238 Revert initial fix
Add default transaction value for safes without outgoing transactions
2020-05-28 12:03:21 -03:00
Agustin Pane cf38e97907
(Feature) #416 - Add releases link (#936)
* - Add releases link

* - Adds border bottom

* Merge branch 'development' into 623-show-more

# Conflicts:
#	src/routes/safe/components/Transactions/TxsTable/ExpandedTx/TxDescription/index.tsx

* fix hooks import casing

* Improves css link

* Fix hooks import

* Fix hooks import

* Link styling

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-05-28 11:28:57 -03:00
Agustin Pane 2eeb9fc094
Fix icons on send and receive buttons (#962) 2020-05-28 07:33:37 -03:00
fernandomg 4e6741e1b9 fix: set proper transaction statuses 2020-05-28 01:07:05 -03:00
fernandomg 1453de1162 fix: avoid accessing `txHash` if it's not defined
This scenario can be reproduced by rejecting a tx in the owner's wallet
2020-05-28 01:03:08 -03:00
fernandomg aefe721e8f fix: owners column buttons statuses 2020-05-28 01:02:19 -03:00
Mati Dastugue bc2b6da5e4 Fix ledger issue 2020-05-27 21:11:52 -03:00
Mati Dastugue bf5a24d762 Fix merge 2020-05-27 21:08:20 -03:00
fernandomg a68a2d32d0 feature: calculate `safeTxHash` on client-side 2020-05-27 17:55:41 -03:00
fernandomg a5a99167f4 fix: set default values for decimals and symbol to ETH 2020-05-27 14:34:25 -03:00
fernandomg 62f1a82793 chore: fixes after merge 2020-05-27 13:37:51 -03:00
nicosampler afa1f92d3d Fix app crashing when safeTransactions is undefined 2020-05-27 13:17:11 -03:00
fernandomg 43acdfb95c Merge branch 'development' into 536-notifications-status-labels-sync
# Conflicts:
#	src/routes/safe/components/Balances/index.tsx
#	src/routes/safe/components/Transactions/TxsTable/index.tsx
#	src/routes/safe/container/hooks/useLoadSafe.tsx
#	src/routes/safe/container/index.tsx
#	src/routes/safe/store/actions/fetchTransactions.ts
#	src/routes/safe/store/actions/transactions/addOrUpdateTransactions.ts
#	src/routes/safe/store/middleware/notificationsMiddleware.ts
#	src/routes/safe/store/models/transaction.ts
#	src/routes/safe/store/reducer/transactions.ts
2020-05-27 13:12:09 -03:00
fernandomg 85b132de6b refactor: FetchTransactions.ts from class to module 2020-05-27 13:04:10 -03:00
fernandomg e08083743d refactor: fetch safe and tokens simultaneously 2020-05-27 10:13:28 -03:00
fernandomg 823fc40f7d refactor: simplify safe's fields selectors 2020-05-27 10:10:13 -03:00
fernandomg d0d19b0b3e refactor: use default values for immutable getters 2020-05-27 10:09:28 -03:00
fernandomg 7c2f27cf2d chore: clean file 2020-05-27 08:56:47 -03:00
fernandomg 3b94bc906c refactor: wrap `generateBatchRequest` into a more meaningful/descriptive funciton 2020-05-27 08:55:32 -03:00
fernandomg 6fb71d1ec4 chore: add types
Not sure right now how to properly deal with `d.ts` files. So, I decided to let those types that depend on others inside a module.
2020-05-27 08:55:30 -03:00
Agustin Pane de4d564955
(Feature) #554 - Safe creation tx details (#894)
* ChecksumAddresses when add new addressBook entry
ChecksumAddresses when add new owner
ChecksumAddresses when replaces owner

* Refactor expandedTx to show creation safe data

* Export CreationTx, IncomingTx and OutgoingTx render to components
Rename components

* Renames addMockSafeCreationTx to getCreationTx

* Avoid unnecessary fetch of creation tx after the first fetch

* - Loads creationTx once the safe loads
- Adds addOrUpdateTransactions.js
- Adds fetchSafeCreationTx.js
- Removes creationTx logic from fetchTransactions.js
- Updates notificationsMiddleware.js

* Fixs getAwaitingTransactions

* Remove creationTx selector

* Merge branch 'development' of https://github.com/gnosis/safe-react into 416-contract-version-improvements

# Conflicts:
#	src/routes/safe/components/Balances/index.tsx
#	src/routes/safe/container/index.tsx

* Merge branch 'development' of https://github.com/gnosis/safe-react into 416-contract-version-improvements

# Conflicts:
#	src/routes/safe/components/Balances/index.tsx
#	src/routes/safe/container/index.tsx

* Fix date column in safe creation

* Add copy and etherscanlinks to creation safe details

* Fix hooks import
2020-05-26 15:00:26 -03:00
fernandomg 1947f1c470 refactor: import web3ReadOnly as web3 2020-05-26 08:19:09 -03:00
fernandomg bce4cf60e0 fix: use selector for `cancellationTxs`.
This will prevent errors when there's no `cancellationTx` existent for the current safe as the selector defaults to an empty Map.
2020-05-26 08:17:20 -03:00
Mikhail Mikheev 5803ca0ea4 fix hooks import casing 2020-05-25 16:07:40 +04:00
Mikhail Mikheev 9e39b81f9c Merge branch 'development' of github.com:gnosis/safe-react into empty-space-validator 2020-05-25 16:01:12 +04:00
Mikhail Mikheev c8e9ef9a3a fix hooks import casing 2020-05-25 15:43:00 +04:00
fernandomg 9b257d901a fix: properly update txs status on safe's startup 2020-05-23 15:51:23 -03:00
fernandomg e9153c54d4 fix: wallet connection 2020-05-23 11:24:21 -03:00
Mikhail Mikheev fc89af57aa
Merge pull request #952 from gnosis/stepper-transparent-bg
Bug: Stepper component non-transparent bg
2020-05-23 12:10:24 +04:00
fernandomg 1742f84b86 fix: `Hooks` import 2020-05-23 03:08:58 -03:00
fernandomg bbf6d4a28d Merge branch 'development' into 536-notifications-status-labels-sync
# Conflicts:
#	src/routes/safe/container/index.tsx
2020-05-23 02:58:32 -03:00
fernandomg 00b1c7c3b0 chore: change hooks imports to relative paths 2020-05-23 02:53:14 -03:00
fernandomg 66b02b401d fix: update mocked tx status based on the tx receipt 2020-05-23 02:38:25 -03:00
fernandomg 46c9ac3e03 refactor: update tx status when provider changes 2020-05-23 02:09:21 -03:00
fernandomg 2c41105474 feature: set tx's owners pending status 2020-05-23 01:54:37 -03:00
fernandomg 165d0ff0d6 feature: add owner's _pending_ bullet icon 2020-05-22 23:49:22 -03:00
fernandomg 92ad62800e fix: typos and types 2020-05-22 23:48:24 -03:00
fernandomg 5a02cbfc9a fix: remove old `index.jsx` file 2020-05-22 17:19:35 -03:00
fernandomg 209d373516 fix: leave blank the default token for Send Funds modal 2020-05-22 17:05:27 -03:00
fernandomg 926795eef1 refactor: transactions table info and details 2020-05-22 16:50:24 -03:00
fernandomg 6c1bc100b6 refactor: allow adding mocked transactions 2020-05-22 16:50:17 -03:00
fernandomg 376af39f3c refactor: notifications middleware 2020-05-22 16:50:10 -03:00
fernandomg c9a01f6892 refactor: modify how transactions returned by server are processed 2020-05-22 16:49:59 -03:00
fernandomg 89261d0ed3 refactor: (cancellation)transactions reducers and actions 2020-05-22 16:49:48 -03:00
fernandomg d0dbd8a28c fix: prevent identicon error when no address is provided 2020-05-22 16:49:08 -03:00
fernandomg b4a470a770 chore: fix build after development merge 2020-05-22 16:48:57 -03:00
Mati Dastugue 5981ee111d Fix file name 2020-05-22 13:09:57 -03:00
Mati Dastugue f9493c1cd7 Merge with develop 2020-05-22 12:27:55 -03:00
Agustin Pane 425f1ad3e5
(Fix) - #623 Fixes short tx data (#928)
* Fixs short tx data

* Feedback
2020-05-22 11:46:20 -03:00
fernandomg 1be3aa0e3a Merge branch 'development' into 536-notifications-status-labels-sync
# Conflicts:
#	package.json
#	yarn.lock
2020-05-22 11:25:06 -03:00
Mikhail Mikheev 203c8b0ab3
Remove react_app_apps_disabled env var (#953) 2020-05-22 09:31:24 -03:00
Mikhail Mikheev 14d9a3a78f fix required validator 2020-05-22 14:33:08 +04:00
Mikhail Mikheev 26e9c1cb67 add transparent bg to stepper root in mui theme 2020-05-22 13:56:53 +04:00
nicolas 1ae63f6784
Clean up dependencies (#944)
* Clean up dependencies

* Fix css mixing not being called
2020-05-22 13:48:27 +04:00
fernandomg fb31bcad2b Merge branch 'development' into 536-notifications-status-labels-sync 2020-05-22 00:36:43 -03:00
Agustin Pane 7cc6349785
Fix: app crashing when safe address is null (#947)
* - Fixs non null check on notificationsMiddleware.ts

* - Fixs non null check on notificationsMiddleware.ts

* - Removes yarn.lock changes
2020-05-21 14:57:03 -03:00
Mati Dastugue 3a30db8068 Merge with dev. Fix ts 2020-05-21 13:06:00 -03:00
nicolas 982d79c0d0
Migrating to Typescript and bringing back react-scripts (#933)
* remove flow from src

* remove unused files

* remove rules from eslint

* replace absolute paths

* add tsconfig

* update package.json

* remove babel-polyfill

* eslint fix

* remove jsconfig.json

* replace .scss by .module.scss

* Revert "replace absolute paths"

This reverts commit e430c71263a1a4c190d50e72271bba7ea6356bc4.

* replace ~/ by src/

* js fixes

* scss fixes

* fix unused vars

* adding eslint

* adding back config folder

* fix eslint and prettier

* force build

* fix baseUrl

* rename js/jsx to ts/tsx

* some rules

* rename files with jsx syntax to tsx

* fix app build

* Revert "fix baseUrl"

This reverts commit 523f29c7b61e14dd6be0ffc3cd199ff399157467.

* some fixes

* replace ts to tsx

* some TS fixes

* more tsc changes

* more tsc fixes

* more fixes

* more ts fixes

* more fixes

* last fix

* fixes

* prettier fix

* some fixes

* fix safe information aligment

* add yarn.lock

* fix blockies and build memory space

* include blockies in tsconfig

* fix blockies

* fix blockies import

* fix Identicon component

* fix build command

* Fix ref type in Identicon

* add libusb-1.0-0-dev to travis

* build command fix [2]

* build command fix [3]

* fix margin layout

* Update  yarn lock

* remove @ts-ignore

* hide Critial dependency

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
2020-05-20 16:15:21 -03:00
Mati Dastugue 593b077ec4 Enable trezor 2020-05-19 17:52:09 -03:00
Mati Dastugue 51f6c9a3e8 Fix trezor connect 2020-05-19 17:42:41 -03:00
Mikhail Mikheev 6377c80e4f
Feature #739: Deployment screen improvements (#908)
* Dep bump

* add deps to useEffect hook

* Revert "Dep bump"

This reverts commit f22795296cd7989ecda594ffef4478c2f5d92911.

* fix / redirect

* Fix currency fetch 400 error

* extract tab labels to components

* fix currency dropdown not showing, rename DropdownCurrency component to CurrencyDropdown

* Fix loader component type

* move steps to a separate file

* make confirmation banner green

* track safe creation in analytics

* add back button

* remove width style from backbutton

* remove width style from backbutton (prev was just commented)

* remove components-v2 and use safe-react-components

* fix duplicated import

* bring back addressinfo component because it was not included in safe-react-components

* Fix broken import (CurrencyDropdown component was renamed)

* add CustomIconText component to fix transaction tab crash

* bring back ListLayoutComponent
2020-05-19 15:55:35 +04:00
Agustin Pane df8897c284
Adds copy to clipboard in owners table (#918) 2020-05-15 11:59:10 -03:00
nicolas 77e4987919
Inform the user if a Safe-App initiate a malformed TX (#895)
* @gnosis.pm/safe-react-components from NPM

* Infor is TX is malformed

* review fixes

* improve names

* review fixes

* trigger build
2020-05-14 10:50:04 -03:00
Fernando c396b3eaf8
(Feature) Easier Smart Contract Interaction (#741) 2020-05-13 17:06:01 -03:00
Agustin Pane 30ab99c79c
(Fix) #876 - Checksummed addresses (#884)
* Checksum addresses when build address book from localStorage
Checksum owner's addresses when build safe from localStorage

* ChecksumAddresses when add new addressBook entry
ChecksumAddresses when add new owner
ChecksumAddresses when replaces owner

* Adds checksumAddress function
Replaces old web3 usage with checksumAddress

* Refactors all web3.utils.toChecksumAddress with checksumAddress()

* Fix duplicating var name
2020-05-12 15:33:39 -03:00
Mikhail Mikheev 7c141ca1ad Fix currency fetch 400 error 2020-05-12 13:24:18 -03:00
Mati Dastugue 30105ecda0 Disable trezor fot the first release 2020-05-12 11:40:19 -03:00
Mikhail Mikheev c2c100550f Merge branch 'development' of github.com:gnosis/safe-react into 536-notifications-status-labels-sync 2020-05-12 13:42:27 +04:00
fernandomg 141e05c2e8 feature: WIP - add mocked tx to the list 2020-05-12 00:40:49 -03:00
fernandomg be4caa1baf refactor: remove duplicated and unused functions 2020-05-11 23:04:04 -03:00
fernandomg 363e9f3888 fix: evaluate storedTransactionIndex as number 2020-05-11 23:02:07 -03:00
Mati Dastugue f2dd025afc Add trezor support 2020-05-11 18:36:39 -03:00
fernandomg 5c95d1f220 Merge branch 'development' into 536-notifications-status-labels-sync
# Conflicts:
#	src/routes/safe/components/Balances/SendModal/screens/SendCollectible/index.jsx
2020-05-11 08:49:15 -03:00
fernandomg 21181400c8 fix: owner address lookup from tx.confirmation list 2020-05-10 17:40:04 -03:00
fernandomg 72d28470b2 Merge branch 'development' into dont-fetch-ownername-in-fetchTransactions 2020-05-10 17:31:00 -03:00
fernandomg b99cf3a02a fix: owner address lookup from tx.confirmation list 2020-05-10 17:26:39 -03:00
nicolas 7bc9cd7a94
remove trailing slash for Apps env var (#891) 2020-05-08 18:58:06 -03:00
Agustin Pane 4098a8b9cf
(Fix) #511 - QR scan button (#873)
* Creates ScanQRWrapper to avoid duplicated logic
Refactors components that uses ScanQRWrapper

* Adds closeQrModal to props.handleScan callback

* Fixs mutators usage on components with qrScanWrapper

* Exports getNameFromAdbk
Fixs displaying address on send funds, also displays the name

* Fixs sendCustomTx qrCode
Fixs sendCollectible qrCode
Fixs loadAddress qrCode
2020-05-08 17:09:49 -03:00
fernandomg de65b2914b Merge branch 'development' into 536-notifications-status-labels-sync
# Conflicts:
#	package.json
#	src/routes/safe/components/Transactions/TxsTable/columns.js
#	src/routes/safe/store/actions/fetchTransactions.js
#	yarn.lock
2020-05-07 19:25:19 -03:00
fernandomg 82b786cc54 fix: properly set safeAddress key for incomingTransactions 2020-05-07 19:19:40 -03:00
nicolas abb600d837
improve calculation of TX mined (#886) 2020-05-07 17:21:55 -03:00
Richard Meissner 051080c239
Fix #834: Do not remove trailing slash from Safe app url (#839)
* Fix #834: Do not remove trailing slash from Safe app url

* Use correct url in id

* prevent adding existing App

* Limiting App name length persisted in origin field

Co-authored-by: Richard Meissner <richard@gnosis.io>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
2020-05-07 08:47:51 -03:00
Agustin Pane a98652abe4
(Fix) - 772 safe zero balances (#832)
* Refactor currency values:
- Creates middleware to save currency values on actions
- Replaces currency values model to be safeAddress-dependant
-

* - Adds all the safes balances on safe load
- Saves the currency values status to localStorage on the middleware

* Fixs equals comparation used to avoid unnecessary dispatchs

* Update naming

* Fixs rate type

* Fixs wrong variable usage

* Removes currencyBalances from localStorage, just saves currencyRate and currencyValueSelected

* Renames currencyValueSelected to currencyValueSelected

* Refactors currencyValueSelected to selectedCurrencyValue

* Refactors selectedCurrencyValue to selectedCurrency
2020-05-06 17:03:59 -03:00
Mati Dastugue 377df43168
Merge pull request #880 from gnosis/fix/desktop-banner
Disable Analytics and Cookie Banner
2020-05-06 10:04:42 -03:00
Agustin Pane 498dca8afa
Fixs click away listener (#874) 2020-05-06 09:54:20 -03:00
fernandomg e402b51ff8 Merge branch 'development' into dont-fetch-ownername-in-fetchTransactions
# Conflicts:
#	yarn.lock
2020-05-05 17:11:46 -03:00
Agustín Longoni 05b3fd9b48
(Fix) Safe apps list is not scrolling #835 (#859)
* add scroll and styles

* Update Layout.jsx

Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
2020-05-05 15:44:55 -03:00
nicolas a79a86e5cc
Apps fixes (#871)
* Fix 850

* Fix 853

* Apps flag using string value

* Fix unresponsive app when switching to another app

* Fix Apps send TX

* Confirmation Modal, correct app name
2020-05-05 14:24:46 -03:00
Mati Dastugue c6f911b8ad
Merge pull request #854 from gnosis/feature/wallet-dashboard
Wallet dashboard
2020-05-05 10:59:33 -03:00
Mati Dastugue 0a38e3c4ea Remove cookie banner for the desktop app 2020-05-04 12:12:38 -03:00
Agustin Pane c6233a3fee
Fixs race condition when loading collectibles (#855) 2020-05-04 10:51:09 -03:00
Mikhail Mikheev a533f576c3 fetch transactions refactoring wip 2020-04-30 18:56:27 +04:00
Mati Dastugue 041e97c19c Merge branch 'development' of github.com:gnosis/safe-react into feature/wallet-dashboard 2020-04-30 10:34:04 -03:00
Mikhail Mikheev ec9e7f9fb8 Revert "transaction decoder wip"
This reverts commit 5c00c48d75.
2020-04-30 14:29:10 +04:00
Mikhail Mikheev 5c00c48d75 transaction decoder wip 2020-04-30 00:30:28 +04:00
nicolas 262e4ab389
Add Apps feature flag (#842)
* add Apps feature flag

* re-trigger build
2020-04-29 13:44:20 -03:00
Mikhail Mikheev 480da937b4 addMockSafeCreationTx as an action wip 2020-04-29 15:03:49 +04:00
Mikhail Mikheev ba47a5fe26 Merge branch 'development' of github.com:gnosis/safe-react into dont-fetch-ownername-in-fetchTransactions 2020-04-29 13:34:54 +04:00
nicolas e0c5e2bb8a
update apps list (#830) 2020-04-28 19:32:10 +02:00
Mikhail Mikheev 27ee734db0 fetch transactions refactoring wip 2020-04-28 19:55:51 +04:00
Mikhail Mikheev 982702ad58 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-04-28 19:08:55 +04:00
Mikhail Mikheev df1500dd6e fetch transactions refactoring wip 2020-04-28 19:07:29 +04:00
nicolas 9c7273ae0d
Fix apps form validator (#828)
* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

* Development v2 fixes (#822)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update yarn script + SAFE_APPS env variable

* Converts custom token address to checksum version (#793)

* SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

* (Feature) Tx Table amount notations (#812)

* Fix master conflicts (#819)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Dev to master (#824)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update yarn script + SAFE_APPS env variable

* Converts custom token address to checksum version (#793)

* SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

* (Feature) Tx Table amount notations (#812)

* Fix master conflicts (#819)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Fix apps (#823)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

* Development v2 fixes (#822)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update yarn script + SAFE_APPS env variable

* Converts custom token address to checksum version (#793)

* SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

* (Feature) Tx Table amount notations (#812)

* Fix master conflicts (#819)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when local…

* Fix apps form validator

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-28 11:44:41 -03:00
Mikhail Mikheev b5da092ea5 fetch transactions refactoring wip 2020-04-28 15:31:11 +04:00
nicolas 2c13d0836d
Dev to master (#824)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update yarn script + SAFE_APPS env variable

* Converts custom token address to checksum version (#793)

* SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

* (Feature) Tx Table amount notations (#812)

* Fix master conflicts (#819)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Fix apps (#823)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

* Development v2 fixes (#822)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update yarn script + SAFE_APPS env variable

* Converts custom token address to checksum version (#793)

* SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

* (Feature) Tx Table amount notations (#812)

* Fix master conflicts (#819)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Fix apps loader

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-27 20:51:30 +02:00
nicolas 49dc19bb94
Fix apps (#823)
* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

* Development v2 fixes (#822)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update yarn script + SAFE_APPS env variable

* Converts custom token address to checksum version (#793)

* SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

* (Feature) Tx Table amount notations (#812)

* Fix master conflicts (#819)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Fix apps loader

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-27 15:34:57 -03:00
nicolas fbaaff524e
Development v2 fixes (#822)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update yarn script + SAFE_APPS env variable

* Converts custom token address to checksum version (#793)

* SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

* (Feature) Tx Table amount notations (#812)

* Fix master conflicts (#819)

* v2.0.0 (#806)

* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-27 19:14:05 +02:00
Fernando 653f68b09c
(Feature) Tx Table amount notations (#812) 2020-04-27 12:15:33 -03:00
nicolas 5014e86c3a
Issue 796 (#807)
* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
2020-04-27 18:28:10 +04:00
Mikhail Mikheev 83877aecd2 mockTransactionWip 2020-04-27 18:05:01 +04:00
Mikhail Mikheev 76c673ac4d
SafeTxGas calculation: Add check for openethereum/parity revert messages (#788)
* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum
2020-04-27 14:29:46 +04:00
Agustin Pane f4cca4c416
Converts custom token address to checksum version (#793) 2020-04-27 13:51:04 +04:00
Mikhail Mikheev 9b6f6d68f8
v2.0.0 (#806)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

* Create release.yml

Created script for building desktop app

* Feature #322: Set safeTxGas for newly created transactions (#752)

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

Enable region for s3 provider to allow upload development environment to different S3 regions

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

Enable region for s3 provider to allow upload development environment to different S3 regions

* Enable region for staging s3 providers

* fix error on Wrapper

* Add gnosis wc bridge to onboard.js wallets options array (#790)

* Rename incoming-transactions url to incoming-transfers

* Feature #587 - App performance improvement (#738)

* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-24 19:24:56 +04:00
Mikhail Mikheev 22f31b1173 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-04-24 18:28:19 +04:00
Mikhail Mikheev 1024362325 fix project compilation 2020-04-24 18:13:29 +04:00
Mati Dastugue c57885d489
Desktop app (#745)
* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-24 18:10:37 +04:00
apane 5cbb8f52ac Moves composeValidatorsApps to managesApps.js 2020-04-24 18:02:53 +04:00
apane 74d9ce7265 Makes composeValidatorsApps a wrapper 2020-04-24 18:02:53 +04:00
apane 8da025c86e Fixs composeValidators
Adds composeValidators for apps section
2020-04-24 18:02:53 +04:00
apane 75418ebc52 Removes unused code
Fixs params props safe address form
2020-04-24 18:02:53 +04:00
apane d91f403c8d Uses formatAmount 2020-04-24 18:02:16 +04:00
fernandomg b46af65fe8 fix: proper amount display for tx in TxTable 2020-04-24 18:02:16 +04:00
fernandomg edcfd2e32e fix: execute decodeParams for all sendTokenTxs 2020-04-24 18:02:16 +04:00
fernandomg 0cd526f47a fix: batchRequest params order 2020-04-24 18:02:16 +04:00
Mikhail Mikheev 4c92fcbcde Merge branch 'dont-fetch-ownername-in-fetchTransactions' of github.com:gnosis/safe-react into 536-notifications-status-labels-sync 2020-04-24 17:35:34 +04:00
Mikhail Mikheev c45ae160ff pull from dev 2020-04-24 17:33:26 +04:00
Mikhail Mikheev 46b30c77f6 Merge branch 'fix/txTable-outgoingTx' of github.com:gnosis/safe-react into dont-fetch-ownername-in-fetchTransactions 2020-04-24 16:33:41 +04:00
nicolas 162ff84108
Fix (#777) 2020-04-24 09:32:19 -03:00
Mikhail Mikheev 82decf54aa cherry-pick wc bridge change, bump package.json 2020-04-24 12:52:29 +04:00
Mati Dastugue da2fa8651c Update dashboard prop 2020-04-23 17:22:25 -03:00
Mati Dastugue 97800ffcea Added support for wallets dashboard 2020-04-23 15:09:39 -03:00
fernandomg 55eee73ea7 fix: proper amount display for tx in TxTable 2020-04-23 12:48:19 -03:00
fernandomg cdcdd07b23 fix: execute decodeParams for all sendTokenTxs 2020-04-23 12:47:19 -03:00
fernandomg c887c71b05 fix: batchRequest params order 2020-04-23 12:45:37 -03:00
Mikhail Mikheev b756ee66f1 Merge branch 'development' of github.com:gnosis/safe-react into dont-fetch-ownername-in-fetchTransactions 2020-04-23 18:25:05 +04:00
Mikhail Mikheev 2acef6993c remove extending transaction model with ownerName in extendedTransactionsSelector 2020-04-23 18:22:30 +04:00
Agustin Pane 9d784922f2
Feature #587 - App performance improvement (#738)
* Refactor Balances to functional component
Removes Balances props in Layout.jsx

* Replaces selectors that were using safeParamAddressSelector with safeParamAddressFromStateSelector to avoid the bug of non-loaded safe when called
Also exports extendedTransactionsSelector to let the components use it

* Refactors Transactions.jsx, replaces transactions.tsx with txsTable.jsx
Removes all unused props from transactions.jsx
Makes all childs of txsTable.jsx fetch the props they need instead of sharing all of them even if they are not used

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

* Removes unused props from layout to settings.jsx
Removed props from the settings.jsx childs, now they fetch the values they need directly from the store

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

* Refactor root and layout, extracts checkForUpdate and componentDidMount to components
Extracts header and tabs from Layout.jsx

* Makes routes.jsx use selectors instead of connect to unify the code

* Loads tabs components using react suspense

* Fixs warning when trying to update root component within loadStore.jsx
Replaces safe with safeAddress selector in layout.jsx to reduce the unnecessary rendering
Fixs setState in container.jsx

* Fixs checkForUpdates fetchTokenBalances
Adds FetchTokens.jsx in balances
Adds safeFeaturesEnabledSelector

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

* Fixs error "Uncaught (in promise) TypeError: Cannot read property 'includes' of undefined"

* Extracts LoadStore from outside the router component to avoid re-loading the store
Adds react lazy for Coins and Collectible tabs

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

* Optimize how the transaction list within the transactions tab are loaded

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

* Fixs race condition on loadStore
Fixs check for updates address null validation

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

* Removes unnecessary checkAndUpdateSafe from checkForUpdates, now the safe gets updated when a transaction arrives

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

* Removes getSafeParamsBatch, now the safes gets the data using the generic generateBatchRequests

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

Original code was expecting a BN instance, now it's a plain string.

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

* Moved LoadStore to routes.js
Refactors LoadStore as Hook
Move LoadStore to hooks folder

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

* Reverts removing useLoadStore in order to maintain the consistency of the code

* rewrite useLoadStore in a more hook-y way, rename it to useLoadSafe

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

The app was retrieving ERC20 tokens information from 3 different endpoints.
 - One from `balance/` to have the list updated
 - another from `balance/usd` to have the values in USD
 - the last one from the blockchain, to update the balances
This was all simplified to `balance/usd`.

Also, added a `currencyRate` to be updated when the currency is modified.

The value calculation happens on a component level, so when the `balanceUsd` value is modified, the value is properly reflected on the screen.

Refactored `activateTokensByBalance` to `fetchSafeTokens`, as this was doing quite more than just _activating_ and also added the `currencyList` calculation in it, so everything is updated when `balance/usd` endpoint is requested.

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

* fix: NaN Values in Coins for a newly loaded Safe

Was failing to set a default value for the `currencyRate`

* fix: Settings fails to load if `owners` is not loaded into store

Added a `Loader` until the required Safe's data is loaded into store.

* fix: prefetch txs data

When building the Txs list, we requested data for every tx what was translated into several RPC calls.

Now by _batchRequesting_ all the information on beforehand, Safe's loading is a bit faster.

* fix: prevent requesting safe, when there's no safe available in the store

* enhancement: fetch tokens when loading safe

By doing this, when loading a safe in the balance screen we will have tokens immediately loaded into the coins list

* fix: load collectibles when switch to collectibles screen

Collectibles weren't loaded when clicking menu link for a newly loaded safe.

Now every switch to the collectible's screen will trigger a fetch for collectibles.

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-04-23 11:18:06 -03:00
Mikhail Mikheev cff53e76c9 fix selector 2020-04-23 18:16:10 +04:00
Uxio Fuentefria c0422bd7d1 Rename incoming-transactions url to incoming-transfers 2020-04-23 18:15:20 +04:00
Mikhail Mikheev 0e9b6d2cc1 fix getNameFromAddressBook selector & selector calls 2020-04-23 18:14:49 +04:00
Mikhail Mikheev 171528d418 refactor transaction confirmation owner property 2020-04-23 17:48:09 +04:00
Mikhail Mikheev fe2e21d2d4 fix project compilation 2020-04-23 15:49:14 +04:00
Mikhail Mikheev c2ef1f3b50 pull from dev 2020-04-23 15:10:49 +04:00
Agustín Longoni 85f65f6216
Merge pull request #791 from gnosis/issue-773
(Enhancement) #773 Scroll bar in tabs that are not necessary
2020-04-22 17:55:09 -03:00
Mikhail Mikheev 38eb8ab5f0
Add gnosis wc bridge to onboard.js wallets options array (#790) 2020-04-22 23:03:15 +04:00
Agustín Longoni 124a91783e
fix error on Wrapper 2020-04-22 14:03:34 -03:00
Agustín Longoni c5a1e40216
Merge branch 'development' into issue-773 2020-04-22 13:03:04 -03:00
Mikhail Mikheev 71e4db1345 moving transaction related actions to transactions folder WIP 2020-04-22 18:38:58 +04:00
Mikhail Mikheev db37333f6f move whenfieldchanges to forms components 2020-04-22 18:24:41 +04:00
Agustín Longoni 035882e0c7 fix scroll and fix margin layout 2020-04-22 07:44:05 -03:00
nicolas 8ba0e18940
Manage Apps (#765)
* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

Co-Authored-By: lukasschor <lukas.schor@gnosis.pm>

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
2020-04-21 17:26:41 -03:00
Mikhail Mikheev db5c69be59 optimistic updates in createTransaction.js wip 2020-04-21 15:29:42 +04:00
Mikhail Mikheev d2f80ead61 Sync notifications and state: createTransaction WIP 2020-04-20 18:27:26 +04:00
Mikhail Mikheev 204edd635d
Feature #322: Set safeTxGas for newly created transactions (#752)
* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop
2020-04-20 14:54:09 +04:00
Mikhail Mikheev 83436e37b2
v1.9.5 (#771)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

* Issue-595: Apps config from Manifest (#715)

* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX

* (Fix) If backend returns `null` for addresses the Transaction ca… (#718)

This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573

* #751 fix - Replaces decimals from backend with decimals from blockchain (#755)

* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment

* Added Unilogin provider + support for legacy paths (#719)

* Added unilogin provier + support for legacy path

* Bump onboardjs version

* fallback to displaying custom tx when we fail to fetch token info (#767)

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
2020-04-16 15:11:24 +04:00
Mikhail Mikheev dd85d4a519
fallback to displaying custom tx when we fail to fetch token info (#767) 2020-04-16 12:34:35 +04:00
Mati Dastugue a18513a0a5
Added Unilogin provider + support for legacy paths (#719)
* Added unilogin provier + support for legacy path

* Bump onboardjs version
2020-04-16 12:15:03 +04:00
Agustin Pane 6bdbcd234e
#751 fix - Replaces decimals from backend with decimals from blockchain (#755)
* Replaces decimals from backend with decimals from blockchain

* Removes fetching again token info from blockchain
Fixs decimals cast, now we force to move from bignumber to number
For data already wrong stored as string we remove it to force fetching again the decimals

* Fixs missing symbol

* Add description comment
2020-04-14 16:03:14 -03:00
Fernando c40fa07696
(Fix) If backend returns `null` for addresses the Transaction ca… (#718)
This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573
2020-04-13 11:37:08 -03:00
nicolas 19dc9332df
Issue-595: Apps config from Manifest (#715)
* getting apps info from its manifest

* Consume app info from manifest in Apps list, Transactions and Toast

* fixes

* navigate to TX Tab with an app makes a TX
2020-04-09 12:59:49 -03:00
Mikhail Mikheev 4aeb5df55b
v1.9.4 (#754)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

* (Fix) Properly decode threshold value in tx details (#749)

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

* fix: check for `decimals` method in transferredTokens (#748)

Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678

* Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-04-09 18:21:52 +04:00
Mikhail Mikheev b1f50c7f3a
Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)
* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4
2020-04-09 17:58:58 +04:00
Fernando b0849ee97f
fix: check for `decimals` method in transferredTokens (#748)
Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678
2020-04-09 12:45:29 +04:00
Fernando 1ac13c63dd
(Fix) Properly decode threshold value in tx details (#749)
* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names
2020-04-09 12:45:19 +04:00
Mikhail Mikheev 74d48c40ac
v1.9.3 (#744)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update

* (Fix) Adapt app to back-end changes (#736)

* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx

* (Fix) Transaction not automatically executed (#716)

* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

* (Fix) Change the order of the upgrade methods lookup (#740)

* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup

* Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-04-08 19:56:42 +04:00
Mikhail Mikheev b8bfeab588
Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)
* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard
2020-04-08 19:30:55 +04:00
Fernando e33d9fd9bb
(Fix) Change the order of the upgrade methods lookup (#740)
* fix: change the order of the upgrade methods lookup

The `isUpgradeTransaction` method was looking for the methods in an wrong order (#599).
The proper order was set in #610, but `isUpgradeTransaction` wasn't updated.

* fix: contract upgrade version lookup
2020-04-07 18:45:42 -03:00
Fernando 0441ce2ec7
(Fix) Transaction not automatically executed (#716)
* feature: action/reducer to UPDATE_SAFE_NONCE

* refactor: when processing txs returned from backend, extract latest tx nonce value and store it in the safe's state

* chore: update `yarn.lock`

* refactor: `UPDATE_SAFE_THRESHOLD` and `UPDATE_SAFE_NONCE` discarded in favor of `UPDATE_SAFE`

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file
2020-04-06 11:30:07 -03:00
Fernando ba49c97fb2
(Fix) Adapt app to back-end changes (#736)
* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx
2020-04-06 11:29:34 -03:00
Mikhail Mikheev 3942347b5a
v1.9.2 (#734)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

* BUG: Only injected providers are cached as last used provider (#733)

* cache every used provider, not only injected one

* package json update
2020-04-03 20:01:43 +04:00
Mikhail Mikheev 727b16481f
BUG: Only injected providers are cached as last used provider (#733)
* cache every used provider, not only injected one

* package json update
2020-04-03 19:53:58 +04:00
Mikhail Mikheev 94a56d2ebd
Bug: Invalid V in signature with eth_sign (#728)
* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

* Revert "DONT FORGET TO REVERT BEFORE MERGING 2: test deployment"

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

* Revert "DONT FORGET TO REVERT BEFORE MERGING: test deployment"

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.
2020-04-03 19:23:04 +04:00
Fernando 13b0874319
(Fix) set `INCOMING` as the default `type` for incoming txs (#722) 2020-04-02 11:43:20 -03:00
Mikhail Mikheev ef525f6da8
Don't reassign transaction in getAwaitingTransactions, check for another transaction executed with the same nonce and not only cancellation ones (#710) 2020-04-01 18:44:35 +04:00
Mikhail Mikheev 1d9683eb12
Bug: Eth balance not updating (#709)
* fix prop name for updating eth balance

* remove unneccessary index in import

* typo fixes in safe opening
2020-04-01 14:38:38 +04:00
Fernando 315d516123
(Fix) New owners as `UNKNOWN` (#697)
* fix: No threshold change for owners replacement

* fix: Extract added owner from addressBook

When replacing an owner, the added owner's name was the same as the removed one

* fix: Add or Update addressBook entry for the newly added owner

* Replace `.then` with `async/await`

* Optimize AddressBook entry `name` update

* fix: store added owner in the addressBook

* Revert "Optimize AddressBook entry `name` update"

This reverts commit 00a75d15

* refactor: AddressBook entry from plain JS object to immutable Record

* fix: merge instead of set for the AddressBookEntry record

* refactor: addOrUpdateAddressBookEntry redux action

changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated

* refactor: update `addOrUpdateAddressBookEntry` call, due to signature change
2020-04-01 12:07:17 +04:00
Mikhail Mikheev 31a1565637
Fixes: Offchain signatures (#706)
* offchain signatures wip

* offchain signing wip

* offchain signatures wip

* offchain signatures wip

* save signatures to the history service

* fix eth signer & useEfefct hook

* offchain signatures wip

* signature check, mainnet testing wip

* dep update

* disable offchain signing for smart contract wallets

* Refactor EIP712 signer

* bring back .env.example

* Check if save version is >1.1.1

* use canTryoffchainSigning boolean variable, add comment about 4001 error

* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet

* remove TYPE when sending txs to history service

* add eth_signTypedData_v4 signer, dep bump, add missing await

* add comments about version check for canTryOffchainSigning variable

* hide "please sign notification"

* dep bump

* dep bump

* Check if connected is ledger before trying offchain signatures

* minor fixes, temp deployment to test trezor

* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets

* add personal signer

* prettier fixes

* offchain signatures fixes
2020-03-31 18:16:29 +04:00
nicolas fad5e10c2e
Fix safe creation from walletConnect (#703) 2020-03-31 15:41:45 +04:00
Fernando f1235738c0
(Fix) Owner replacement transaction details (#688)
* fix: No threshold change for owners replacement

* fix: Extract added owner from addressBook

When replacing an owner, the added owner's name was the same as the removed one

* fix: Add or Update addressBook entry for the newly added owner

* Replace `.then` with `async/await`

* Optimize AddressBook entry `name` update

* Revert "Optimize AddressBook entry `name` update"

This reverts commit 00a75d15

* refactor: AddressBook entry from plain JS object to immutable Record

* fix: merge instead of set for the AddressBookEntry record

* refactor: addOrUpdateAddressBookEntry redux action

changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated
2020-03-31 15:20:17 +04:00
Mikhail Mikheev a6b70a1663
Feature: Offchain signatures (#668)
* offchain signatures wip

* offchain signing wip

* offchain signatures wip

* offchain signatures wip

* save signatures to the history service

* fix eth signer & useEfefct hook

* offchain signatures wip

* signature check, mainnet testing wip

* dep update

* disable offchain signing for smart contract wallets

* Refactor EIP712 signer

* bring back .env.example

* Check if save version is >1.1.1

* use canTryoffchainSigning boolean variable, add comment about 4001 error

* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet

* remove TYPE when sending txs to history service

* add eth_signTypedData_v4 signer, dep bump, add missing await

* add comments about version check for canTryOffchainSigning variable

* hide "please sign notification"

* dep bump

* dep bump

* Check if connected is ledger before trying offchain signatures

* minor fixes, temp deployment to test trezor

* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets
2020-03-31 15:19:40 +04:00
Agustin Pane c73dafe3ce
Feature: #528 optimize network requests (#680)
* Generates a cache to avoid multiples getHumanFriendlyToken() for the same token address

* Adds etags implementation for transactions

* Caches outgoing and incoming safe transactions based on etag value

* Removes cachedSafeTransactions, cachedSafeIncommingTransactions

* Refactors getTokenInstance

* Avoid recreating tokens on fetchTokens() once we have them in redux

* Fixs error on catch

* Batch request tokens balances

* Fixs missing token names
Changes the tokens limit from 300 to 3000

* fix: failed to instantiate non-standard ERC-20 tokens

For the batchRequest of balances, we're just using the `balanceOf` method call. So having a simple ABI with that only method prevents errors with non-standard ERC-20 Tokens.

* Removes unnecessary action updateSafeThreshold
Removes unnecessary action fetchEtherBalance

* Updated comments in code
Replaces constant with directly dispatching action

* BatchRequest done right

* fix: invalid action name `savedToken` -> `saveToken`

* Renames getTokenInstance to getTokenInfos
Fixs first load of transactions are empty

* Move fetchTokenBalances to `Balances` and `SendModal` components

* fix: Incoming transaction type

Backend now changed the type from 'incoming' to one of: `'ERC721_TRANSFER', 'ERC20_TRANSFER', 'ETHER_TRANSFER'`

* fix: tokenInstance `symbol` and `decimal` extraction

* Fix property name `decimals` instead of `tokenDecimals`

* Standardize non-standard ERC20 tokens discovery

* fix: isStandardERC20

* Revert "Move fetchTokenBalances to `Balances` and `SendModal` components"

This reverts commit ed84bd92

* Fixs Typo INCOMING_TX_TYPES
Renames tokenInstance with localToken

* Renames getBatchBalances to getTokenBalances
Returns saved tokens instead of tokenInstance in getTokenInfos

* Remove promise returns

Co-authored-by: fernandomg <fernando.greco@gmail.com>
2020-03-30 13:14:04 -03:00
Mati Dastugue 95d2cb7c19 Updated modal description 2020-03-26 13:45:36 -03:00
nicolas 18a6525bc6
(Feature) Safe Deployment #605 #111 #395 #606 #396 (#659)
* Stepper component

* proxyfactory web3 contract

* add styles to body steps

* Steps info

* Open component: moving from class to function

* remove opening route and rendering it in Open component instead

* recover safe creation from txHash in localStorage

* remove commented code

* restore commented code

* creatign TX fix

* fix createSafe then function

* fixing stepper

* remove unused code

* remove opening route and finishin both variants of create

* add loader dots svg

* add error state design and loader dots

* fix error section

* add description to steps

* adding etherscan link

* taking values from variables

* fix heigh in body content

* add success svg

* add check image on last step

* fix margin and heigt to body rows

* remove commented code

* remove commented code

* fix for #396

* Fix empty_code

* set error if getReceipt fails

* fixes

* Fix: remove txHash from pendingInfo on retry

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-03-26 10:53:20 -03:00
Fernando c19b29854f
Remove `SafeVersionProvider` (#694) 2020-03-26 16:25:07 +04:00
Agustin Pane b5bc0304f3
(Feature) Erc721 modal lists (#661)
* Add Assets sections

* (add) collectibles tab

* (add) criptokitty items

* (add) collectible items, definitive edition

* (fix) collectibles were overlapping with bottom banner

* (fix) wording

* (fix) responsive issues

* Install `async-sema` dependency

* Create collectible source classes

- source from mocked data and opensea, it's extendable to import information from other sources

* Update `Collectible` implementation to use new data source

* Create constants file to better handle env variables and default values

* Add description to item's cards

- also added a mocked class with real data

* Fix `saveTxToHistory`, remove hardcoded `CALL`

* Fix after merge development

* Set background color for collectible based on data info

- Changed `withStyles` in favor of a hook-like approach with `makeStyles`

* Enhance collectible card info and group title

* Use current safeAddress to query for collectibles information

- also migrated from `withStyles` to `makeStyles`

* Use proper key values for lists and set more significant names

* update yarn.lock after merge

* Fix linting error

* Move ethAsToken verification outside loop

* Use absolute route for `SendModal` import

* Move Collectibles into redux store

* Update yarn.lock file

* Selectable NFTs

* Divide the `collectible` store into `nftAssets` and `nftTokens`

- Also updated components to retain functionality
- Created a `textShortener` function for better presentation

* Update `yarn.lock`

* Update `yarn.lock`

* Fix item background color

* Clears the tokenID select field when the collectible selected changes

* Open Send modal from the assets section

* Use token name for the token selection dropdown

* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component

* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component

* Add openZeppelin contracts dependency

* Create ERC721 getter

* Fix types, default values and clean code

* Fix: properly refresh list of collectibles when switching safes

* Add ReviewCollectible step in send NFT

* Displays the assets in the manage list

* Fixs add custom token/asset modal cancel button

* Change items shadow

* Give option to choose what to send by clicking 'Send' button in AddressBook

* Disable [Send] button for Collectibles if not owner

* Set Coins as default option in assets tab

- also fixed styles for `Coins` option

* Use collectible icon in send modal

* Set default message when no assets available

- removed pagination feature

* Create SafeVersionProvider to better handle version-related tasks

Provides:
- current and latest versions,
- a boolean indicating a need for update,
- an upgradeSafe callback to trigger upgrade from any place,
- a list of enabled features, depending on the current version
  - the latter needs a refactor like extract features outside the provider
   and define constants for the features.

* Force build

* Update `yarn.lock`

* Disable Manage list for NFTs

* Implements manage list to add/remove assets

* Implements manage list to add/remove assets

* Merge branch 'feature/#469-ERC721-feature-implementation' of https://github.com/gnosis/safe-react into feature/#469-ERC721-feature-implementation

# Conflicts:
#	src/routes/safe/components/Balances/Collectibles/index.jsx
#	src/routes/safe/components/Balances/index.jsx
#	src/utils/constants.js

* Implements blacklisted assets

* Fix container shadow

- Also fixes tables shadow, thanks to @gabitoesmiapodo

* Enable nested routes for balances (assets) tab

* Default to `/balance` if invalid nested path

* Disable [Send Collectible] button, if not supported by safe

* Change sub-menu buttons to clickable text

* Replace Paragraph with Link

* Fix invalid props errors for Link component

* Fallback to `transferFrom` if `safeTransferFrom` is not implemented

* Use `transfer` as fallback to ERC-721's `safeTransferFrom`

- need to identify ERC721 token using `transfer` and `name` methods

* Display failed transactions

* Use react.lazy for collectibles' modals

* Identify ERC-721 token transaction

* Adds initial components for AddCustomAsset support

* Fix Send Collectibles modal layout/behavior

- disable dropdown list if there's no item to pick
- fix placeholder for tokens list
- fix dropdown list styles

* Set default `isSuccessful` flag to `true`

* Fixs erc721Enabled check

* Adds margin to modal icon
Fix search bar

* Fix hidding buttons in coins table

* Fixs display all available assets by default

* Fixs modal assets

* Fixs blacklistedAssetsAddresses save to storage
Fixs show token button

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
2020-03-25 17:40:31 -03:00
Agustin Pane 5d7fa6428f
(Fix) #423 - Pending transaction confirmation loop (#637)
* Fixs duplicated notifications

* Implements feedback, now the displayed txHash are stored on localstorage and once the first time we notify the user about it, they won't never appear again

* Uses the last time the user logged in

* Fix safe version null check
Fixs date string comparison
Adds the safe address to the check of last time logged in
2020-03-25 15:31:35 +04:00
Mati Dastugue bf075305ba
Onboardjs - Get wallets by platform, fix ledger/trezor rpcUrls (#665)
* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-03-24 13:37:54 +04:00
Fernando a0ce9683dd
(Fix) send tx from address book (#677)
* fix: Send funds not working when selecting receipt from addressBook

Also, this commit includes an intent to unify/simplify SendModal component

fixes #632

* Set default value to txData for custom txs

fixes #632
2020-03-20 17:06:27 -03:00
Fernando c4cc79c682
(Fix) Wrong value for ERC-20 tokens transfers (#679)
The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.

fixes #678
2020-03-20 12:46:12 -03:00
fernandomg ccfb3bd3b2 fix: collectibles not displayed while disconnected
Instead of picking the network Id from the web3 provider, we rely on the network name specified in the env variable.

fixes issue #669
2020-03-19 11:05:06 -03:00
Fernando 5359794e21
(Feature) erc721 feature implementation (#570)
* Add Assets sections

* (add) collectibles tab

* (add) criptokitty items

* (add) collectible items, definitive edition

* (fix) collectibles were overlapping with bottom banner

* (fix) wording

* (fix) responsive issues

* Install `async-sema` dependency

* Create collectible source classes

- source from mocked data and opensea, it's extendable to import information from other sources

* Update `Collectible` implementation to use new data source

* Create constants file to better handle env variables and default values

* Add description to item's cards

- also added a mocked class with real data

* Fix `saveTxToHistory`, remove hardcoded `CALL`

* Fix after merge development

* Set background color for collectible based on data info

- Changed `withStyles` in favor of a hook-like approach with `makeStyles`

* Enhance collectible card info and group title

* Use current safeAddress to query for collectibles information

- also migrated from `withStyles` to `makeStyles`

* Use proper key values for lists and set more significant names

* update yarn.lock after merge

* Fix linting error

* Move ethAsToken verification outside loop

* Use absolute route for `SendModal` import

* Move Collectibles into redux store

* Update yarn.lock file

* Selectable NFTs

* Divide the `collectible` store into `nftAssets` and `nftTokens`

- Also updated components to retain functionality
- Created a `textShortener` function for better presentation

* Update `yarn.lock`

* Update `yarn.lock`

* Fix item background color

* Clears the tokenID select field when the collectible selected changes

* Open Send modal from the assets section

* Use token name for the token selection dropdown

* Add openZeppelin contracts dependency

* Create ERC721 getter

* Fix types, default values and clean code

* Fix: properly refresh list of collectibles when switching safes

* Add ReviewCollectible step in send NFT

* Change items shadow

* Give option to choose what to send by clicking 'Send' button in AddressBook

* Disable [Send] button for Collectibles if not owner

* Set Coins as default option in assets tab

- also fixed styles for `Coins` option

* Use collectible icon in send modal

* Set default message when no assets available

- removed pagination feature

* Create SafeVersionProvider to better handle version-related tasks

Provides:
- current and latest versions,
- a boolean indicating a need for update,
- an upgradeSafe callback to trigger upgrade from any place,
- a list of enabled features, depending on the current version
  - the latter needs a refactor like extract features outside the provider
   and define constants for the features.

* Force build

* Update `yarn.lock`

* Disable Manage list for NFTs

* Fix container shadow

- Also fixes tables shadow, thanks to @gabitoesmiapodo

* Enable nested routes for balances (assets) tab

* Default to `/balance` if invalid nested path

* Disable [Send Collectible] button, if not supported by safe

* Change sub-menu buttons to clickable text

* Replace Paragraph with Link

* Fix invalid props errors for Link component

* Fallback to `transferFrom` if `safeTransferFrom` is not implemented

* Use `transfer` as fallback to ERC-721's `safeTransferFrom`

- need to identify ERC721 token using `transfer` and `name` methods

* Display failed transactions

* Use react.lazy for collectibles' modals

* Identify ERC-721 token transaction

* Fix Send Collectibles modal layout/behavior

- disable dropdown list if there's no item to pick
- fix placeholder for tokens list
- fix dropdown list styles

* Set default `isSuccessful` flag to `true`

* Save version related values into store

- each safe has its `currentVersion`, `needsUpdate` and `featuresEnabled`
- and safes store has the `latestMasterContractVersion`

* Migrate Balance to use store-provided values

* Migrate Settings to use store-provided values

* Migrate ChooseTxType to use store-provided values

* Remove SafeVersionProvider

Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
Co-authored-by: apane <agustin.pane@gmail.com>
2020-03-18 17:24:24 -03:00
Mati Dastugue 497b672633
Upgrade onboardjs version to 1.3.4 (#654) 2020-03-13 13:27:59 +04:00
Germán Martínez 28fc81068f
Update links to docs (#634) 2020-03-11 17:17:12 +04:00
nicolas 3eb011b98f
processTransaction: add gasLimit in development (#657) 2020-03-11 17:15:34 +04:00
Mikhail Mikheev 97343670f6 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-03-11 16:49:33 +04:00
Richard Meissner dd27cd48bf
Sync master dev (#656)
* v1.7.3 (#611)

* Fix #597: USD value not load (#609)

* Converts all the addresses to checksum values

* Fix for empty address

* fix the order of transactions, change updateSafe to upgradeSafe to avoid naming confusion with the updateSafe action (#610)

* Fix #596: Notification when safe is already updated (#599)

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

* Fixs Padding
Removes the red dot if the user is not an owner

Co-authored-by: Fernando <fernando.greco@gmail.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>

* Update package.json (#612)

* Add public url to prod webpack config (#615)

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

* cherry pick new travis yml merge commit (#620)

* V1.7.5 release (#641)

* use hash history

* update package json

* BUG: App index.html cached on production (#642)

* remove caching for webapp index.html

* keep --delete flag

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
2020-03-11 14:23:16 +04:00
David Albela Pérez 411634afb0 Set development endpoints to stable staging backends 2020-03-10 19:01:28 +01:00
David Albela Pérez 218379bf4a Update safe relay and transaction endpoints 2020-03-10 14:26:31 +01:00
Fernando 30cbada633
(Fix) Lowercased safes address in URL (#631)
* Return checksummed addrress from `safeParamAddressFromState` selector

* Update `yarn.lock`

* Remove redundant `toChecksumAddress` call

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-03-09 11:08:28 -03:00
Agustin Pane 558b9f69f7
- Updates how the transactions are ordered, now orders by nonce and then by date (#640) 2020-03-09 09:15:04 -03:00
Mikhail Mikheev 4707c2da8e
V1.7.5 release (#641)
* use hash history

* update package json
2020-03-06 17:24:02 +01:00
Mikhail Mikheev aaa480c2a5
Use hash history (#638)
* v1.7.3 (#611)

* Fix #597: USD value not load (#609)

* Converts all the addresses to checksum values

* Fix for empty address

* fix the order of transactions, change updateSafe to upgradeSafe to avoid naming confusion with the updateSafe action (#610)

* Fix #596: Notification when safe is already updated (#599)

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

* Fixs Padding
Removes the red dot if the user is not an owner

Co-authored-by: Fernando <fernando.greco@gmail.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>

* Update package.json (#612)

* Add public url to prod webpack config (#615)

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

* cherry pick new travis yml merge commit (#620)

* use hash history

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
2020-03-06 15:59:13 +01:00
francovenica 5401978bb2
(Fix) Update safe modal verbiage (#633)
* Fixs verbiage in update safe modal

* Fixs yarn lock
2020-03-05 17:13:43 -03:00
nicolas 76a8d2dd3f
Passing ethBalance to Apps component (#636) 2020-03-05 16:53:19 -03:00
Mikhail Mikheev 8adf6c266e
Feature: replace web3connect with onboardjs (#456)
* init onboard.js

* dep bump

* initial replacement of web3connect with onboard.js

* use averta font in the modal

* update onboard.js, add handlers for session murder

* update preferred wallets

* implement reconnecting to injected provider

* fix duplicate wallet disconnected notification

* update onboard dep

* onboardjs fixes

* test onboard js with hw

* add https to rpcUrl

* Added saved wallet and transactions validation

* made Transactions validation

* bnc-onboard version updated

* Fix lock/unlock problem

* bump onboardjs version

* fixed material-ui lab version

* Update onboard version

* Added hw wallets integration

* Updated preferred wallets

* Add ledger modal

* Merge with dev

* Update onboard

* BUmp new version of onboardjs

* Added some logs

* Added some logs

* Update onboardjs version fix ledger connection

* Update onboardjs version fix ledger connection

* Bump new onboardjs version

* Update new version

* Made improvements

* yarn.lock regenration

* remove https=true

* Remove comments and added some improvements

* Updated package.json dep

* Removed unused deps

* Remove web3connect dep

Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
2020-03-04 09:45:54 -03:00
nicolas b084c80a42
update Apps list info (#629)
* update Apps list info

* fix
2020-03-03 08:11:25 -03:00
nicolas 63252566dc
Adding Apps info to toast notification (#621)
* Adding APP_Name for APPs TXs in toast messages

* refactor: save appId instead of appName in origin field

* adding fallback icon and message to TX apps table

* review changes

* review fixes

* force build
2020-03-02 12:51:37 -03:00
Mikhail Mikheev 0037522505
Bug: Accounts/Network are not updated in production build (#625) 2020-02-28 13:34:10 -03:00
nicolas d5b64849b4
(feature): [Safe Apps] App Transaction List Details (#601)
* Adding IconText component

* Get origin for TXs in Redux

* Adding Icon and name app to transaction list

* Fix customTx condition

* Fix HTML element for text

* simplify condition
2020-02-28 15:46:31 +01:00
Gabriel Rodríguez Alsina 2a8ec9d4db
(add) linter sorting rules (#614)
* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-28 10:58:40 +01:00
Gabriel Rodríguez Alsina 15dadc7216
(fix) sidebar contents' scrolling (#622) 2020-02-28 10:49:15 +01:00
Mikhail Mikheev 549febe801
cherry pick new travis yml merge commit (#620) 2020-02-27 16:37:43 +01:00
Mikhail Mikheev 2c019d1931
Repare new dev and staging enviroments to deploy (#618)
* Repare new dev and staging enviroments to deploy

  - Add to `deploy_pull_requests.sh` to the new path.
  - Replace upload-dir to deploy staging to the new path.

* add /app/ public path for the webapp, remove duplicate yarn build from travis

* add basename to app

* deploy pr to /app

* update travis

* linter error fixes

* fix travis build script

Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
2020-02-27 16:21:17 +01:00
nicolas 327c780a1a
(feature) Adding origin for Apps Transactions (#576)
* Adding origin field when creates a TX

* refactor: replace list of arg by object in getApprovalTransaction and getExecutionTransaction function

* minor changes

* Allow execute if threshold is 1 for the first tx

- Related to issue #563
- `lastTx` is required due to #489

* - Normalizing logic between createTransaction and processTransaction
- Moving shared function to a new file

* Refactor `doesTxNeedApproval` back to the `isExecution`-related meaning

* Rename function and variable names

* Add tests for `getNewTxNonce` and `shouldExecuteTransaction` functions

* Pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

* Update Tests

- remove mocked `getGnosisSafeInstanceAt`
- pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-27 10:54:48 -03:00
Agustin Pane cf1ae7486b
Bug: #482 - Address book Custom transactions Recipient validation (#577)
* (fix) text input bottom border

* Fix #482 input

* Merge branch 'development' of https://github.com/gnosis/safe-react into fix/#482-address-book

# Conflicts:
#	src/components/forms/TextField/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/AddressBookInput/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/SendFunds/TokenSelectField/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/SendFunds/index.jsx
#	yarn.lock

* Fix custom tx addresses filtering

* Merge branch 'development' of https://github.com/gnosis/safe-react into fix/#482-address-book

# Conflicts:
#	yarn.lock

* Remove console logs
Fixed prettier issues

* Remove unnecessary template string

* Fix `tokenAddress` string conversion

* Use `secondaryBackground` value

Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-26 18:58:02 +01:00
Mikhail Mikheev 8f0f28b7ba
v1.7.3 (#611)
* Fix #597: USD value not load (#609)

* Converts all the addresses to checksum values

* Fix for empty address

* fix the order of transactions, change updateSafe to upgradeSafe to avoid naming confusion with the updateSafe action (#610)

* Fix #596: Notification when safe is already updated (#599)

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

* Fixs Padding
Removes the red dot if the user is not an owner

Co-authored-by: Fernando <fernando.greco@gmail.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
2020-02-26 09:12:17 +01:00
Agustin Pane a10359f0b6
Fix #596: Notification when safe is already updated (#599)
* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

* Fixs Padding
Removes the red dot if the user is not an owner

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-26 08:55:28 +01:00
Mikhail Mikheev 0b7d6f0b24
fix the order of transactions, change updateSafe to upgradeSafe to avoid naming confusion with the updateSafe action (#610) 2020-02-26 08:55:20 +01:00
Agustin Pane 1f3f13eeb9
Fix #597: USD value not load (#609)
* Converts all the addresses to checksum values

* Fix for empty address
2020-02-21 18:16:52 -03:00
fernandomg 297b3a7eee Fix linting error 2020-02-19 13:59:40 -03:00
Fernando b7eb988d9f
Fix `saveTxToHistory`, remove hardcoded `CALL` (#582) 2020-02-18 22:44:47 +01:00
Agustin Pane 7d64030b1a
(Hotfix) Safe version detection (#579)
* Updates the logic, now search the last version from the contract, if not, go for the env var

* Fix missing await
2020-02-18 16:55:25 -03:00
Fernando fd5334669a
(Fix) Send form fails to load (#574)
* Fix material-ui/lab version

* Fix breaking changes introduced in commit b960dbf3cf36774a878239c9fed800b58d08abcd

* Fix web3connect version to `1.0.0-beta.25`
2020-02-18 18:33:16 +01:00
Gabriel Rodríguez Alsina 6df5e72135
(Fix) Enforce linting and formatting (#564)
* (remove) unused / old packages / linting script

* (add) eslint / prettier packages and plugins

* (fix) eslint / prettier config

* (add) prettier / eslint scripts

* (fix) linting and formatting problems

* (remove) unused files

* (fix) linting problem that needed to be addressed manually

* (add) pre commit hooks

* (fix) lint-staged config

* (fix) config

* (fix) config

* (check) if pre config formatting works

* Add nvmrc and update yarn.lock

* Update `yarn.lock`

* Make jsx-a11y/no-autofocus report as warn

* Apply lint:fix to project

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-17 19:20:43 -03:00