Skip to content
This repository has been archived by the owner on Nov 10, 2023. It is now read-only.

Fix #596: Notification when safe is already updated #599

Merged
merged 18 commits into from
Feb 26, 2020

Conversation

Agupane
Copy link
Contributor

@Agupane Agupane commented Feb 20, 2020

Closes #596
Also closes #581

Added the Tx is still a "Custom transaction" instead of a "Contract Update" in c247d63

Added the red badge next to the settings tab in 774d93e

red-badge

Displays the notification for owners only
@Agupane Agupane self-assigned this Feb 20, 2020
@ghost
Copy link

ghost commented Feb 20, 2020

Travis automatic deployment:
https://pr599--safereact.review.gnosisdev.com

Copy link
Contributor

@francovenica francovenica left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What it works for me:

Seeing the notification only if you are in a safe that has the previous safe version
Not show it if you are in an already updated version
Not show it if you are not owner / not connected

Missing from the issue 581:

  • The Tx is still a "Custom transaction" instead of a "Contract Update"
  • A red dot in the tab bar nudging to open the Settings tab

@fernandomg fernandomg self-assigned this Feb 20, 2020
@ghost
Copy link

ghost commented Feb 20, 2020

Travis automatic deployment:
https://pr599--safereact.review.gnosisdev.com

@fernandomg fernandomg requested review from germartinez and removed request for fernandomg February 20, 2020 22:48
@fernandomg
Copy link
Contributor

@francovenica see description, added the missing #581 so we can merge the changes in one PR

@mmv08 mmv08 merged commit a10359f into development Feb 26, 2020
@mmv08 mmv08 deleted the 596-notification-when-safe-is-already-updated branch February 26, 2020 07:55
mmv08 added a commit that referenced this pull request Feb 26, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
fernandomg added a commit that referenced this pull request Feb 28, 2020
* 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 <[email protected]>
mmv08 added a commit that referenced this pull request Feb 28, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

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

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>

* (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 <[email protected]>

* (Feature) Add checks into CI (#594)

* 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 <[email protected]>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Gabriel Rodríguez Alsina <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
mmv08 added a commit that referenced this pull request Mar 6, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
fernandomg added a commit that referenced this pull request Mar 9, 2020
* 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 <[email protected]>
fernandomg added a commit that referenced this pull request Mar 9, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
fernandomg added a commit that referenced this pull request Mar 9, 2020
* 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 <[email protected]>
fernandomg added a commit that referenced this pull request Mar 9, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
mmv08 added a commit that referenced this pull request Mar 9, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>

* (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 <[email protected]>

* (Feature) Add checks into CI (#594)

* 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 <[email protected]>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <[email protected]>

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

* Bug: Accounts/Network are not updated in production build (#625)

* 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

* update Apps list info (#629)

* update Apps list info

* fix

* 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 <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Passing ethBalance to Apps component (#636)

* (Fix) Update safe modal verbiage (#633)

* Fixs verbiage in update safe modal

* Fixs yarn lock

* Bump dependencies (#639)

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* - Updates how the transactions are ordered, now orders by nonce and then by date (#640)

* (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 <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Gabriel Rodríguez Alsina <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: francovenica <[email protected]>
mmv08 added a commit that referenced this pull request Mar 11, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
mmv08 added a commit that referenced this pull request Mar 11, 2020
* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>

* (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 <[email protected]>

* (Feature) Add checks into CI (#594)

* 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 <[email protected]>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <[email protected]>

* Rebase master onto development (#624)

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

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

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>

* (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 <[email protected]>

* (Feature) Add checks into CI (#594)

* 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 <[email protected]>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Gabriel Rodríguez Alsina <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>

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

* Bug: Accounts/Network are not updated in production build (#625)

* 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

* update Apps list info (#629)

* update Apps list info

* fix

* 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 <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Passing ethBalance to Apps component (#636)

* (Fix) Update safe modal verbiage (#633)

* Fixs verbiage in update safe modal

* Fixs yarn lock

* Bump dependencies (#639)

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* - Updates how the transactions are ordered, now orders by nonce and then by date (#640)

* (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 <[email protected]>

* Rebase master into development (#647)

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>

* (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 <[email protected]>

* (Feature) Add checks into CI (#594)

* 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 <[email protected]>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <[email protected]>

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

* Bug: Accounts/Network are not updated in production build (#625)

* 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

* update Apps list info (#629)

* update Apps list info

* fix

* 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 <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Passing ethBalance to Apps component (#636)

* (Fix) Update safe modal verbiage (#633)

* Fixs verbiage in update safe modal

* Fixs yarn lock

* Bump dependencies (#639)

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* - Updates how the transactions are ordered, now orders by nonce and then by date (#640)

* (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 <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Gabriel Rodríguez Alsina <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: francovenica <[email protected]>

* Update safe relay and transaction endpoints

* Master into development (#655)

* Fix NODE_ENV development definition

  - Define develop build for development branches.
  - Use POSIX standard to call shell scripts in travis file.

* Mark travis shell scripts as executable

* Fix conditional statement at travis build.sh file

* Set development endpoints to stable staging backends

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Gabriel Rodríguez Alsina <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: francovenica <[email protected]>
Co-authored-by: Richard Meissner <[email protected]>
fernandomg added a commit that referenced this pull request Mar 18, 2020
* 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 <[email protected]>
fernandomg added a commit that referenced this pull request Mar 18, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

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

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>

* (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 <[email protected]>

* (Feature) Add checks into CI (#594)

* 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 <[email protected]>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Gabriel Rodríguez Alsina <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
fernandomg added a commit that referenced this pull request Mar 18, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
fernandomg added a commit that referenced this pull request Mar 18, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>

* (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 <[email protected]>

* (Feature) Add checks into CI (#594)

* 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 <[email protected]>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <[email protected]>

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

* Bug: Accounts/Network are not updated in production build (#625)

* 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

* update Apps list info (#629)

* update Apps list info

* fix

* 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 <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Passing ethBalance to Apps component (#636)

* (Fix) Update safe modal verbiage (#633)

* Fixs verbiage in update safe modal

* Fixs yarn lock

* Bump dependencies (#639)

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* - Updates how the transactions are ordered, now orders by nonce and then by date (#640)

* (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 <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Gabriel Rodríguez Alsina <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: francovenica <[email protected]>
fernandomg added a commit that referenced this pull request Mar 18, 2020
* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>

* 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 <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
fernandomg added a commit that referenced this pull request Apr 6, 2020
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.
fernandomg added a commit that referenced this pull request Apr 7, 2020
* 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
mmv08 added a commit that referenced this pull request Apr 8, 2020
* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>
mmv08 added a commit that referenced this pull request Apr 9, 2020
* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>
mmv08 added a commit that referenced this pull request Apr 16, 2020
* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
mmv08 added a commit that referenced this pull request Apr 24, 2020
* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
lukasschor added a commit that referenced this pull request Apr 27, 2020
* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
lukasschor added a commit that referenced this pull request Apr 27, 2020
* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* (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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
nicosampler added a commit that referenced this pull request Apr 27, 2020
* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* 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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* (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 8331f2a.

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

This reverts commit 03b81e3.

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Fix apps loader

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
lukasschor added a commit that referenced this pull request Apr 27, 2020
* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* (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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* (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…
nicosampler added a commit that referenced this pull request Apr 28, 2020
* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* (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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

Co-authored-by: Fernando <[email protected]>
Co-authored-by: nicolas <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

Co-authored-by: Mikhail Mikheev <[email protected]>
Co-authored-by: Fernando <[email protected]>
Co-authored-by: Agustin Pane <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>
Co-authored-by: Agustín Longoni <[email protected]>
Co-authored-by: lukasschor <[email protected]>
Co-authored-by: David Albela Pérez <[email protected]>
Co-authored-by: Uxio Fuentefria <[email protected]>
Co-authored-by: Mati Dastugue <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: lukasschor <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mikhail Mikheev <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* (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 li…
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
5 participants