Commit Graph

226 Commits

Author SHA1 Message Date
nicolas 49dc19bb94
Fix apps (#823)
* v2.0.0 (#806)

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

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

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

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

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

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

fixes #678

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

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

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

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

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

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

fixes #573

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

* Replaces decimals from backend with decimals from blockchain

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

* Fixs missing symbol

* Add description comment

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

* Added unilogin provier + support for legacy path

* Bump onboardjs version

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

* Create release.yml

Created script for building desktop app

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

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

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

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

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

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

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

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

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

* Enable region for staging s3 providers

* fix error on Wrapper

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

* Rename incoming-transactions url to incoming-transfers

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

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

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

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

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

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

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

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

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

* Loads tabs components using react suspense

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

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

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

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

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

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

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

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

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

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

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

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

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

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

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

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

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

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

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

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

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

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

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

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

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

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

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

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

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

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

* fix: prefetch txs data

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

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

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

* enhancement: fetch tokens when loading safe

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

* fix: load collectibles when switch to collectibles screen

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

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

* fix: fetch only if safe is ready

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

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

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

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

* Update CI Desktop script

* Update CI script for windows

* Development v2 fixes (#822)

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

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

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

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

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

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

fixes #678

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

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

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

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

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

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

fixes #573

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

* Replaces decimals from backend with decimals from blockchain

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

* Fixs missing symbol

* Add description comment

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

* Added unilogin provier + support for legacy path

* Bump onboardjs version

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

* Create release.yml

Created script for building desktop app

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

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

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

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

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

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

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

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

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

* Enable region for staging s3 providers

* fix error on Wrapper

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

* Rename incoming-transactions url to incoming-transfers

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

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

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

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

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

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

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

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

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

* Loads tabs components using react suspense

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

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

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

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

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

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

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

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

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

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

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

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

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

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

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

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

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

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

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

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

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

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

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

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

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

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

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

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

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

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

* fix: prefetch txs data

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

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

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

* enhancement: fetch tokens when loading safe

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

* fix: load collectibles when switch to collectibles screen

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

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

* fix: fetch only if safe is ready

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

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

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

* Update yarn script + SAFE_APPS env variable

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

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

* add check for openethereum/parity revert messages

* fix isEstimationSuccessful check

* fix estimation check if revert msg is from openethereum

* Issue 796 (#807)

* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

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

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

* Fix master conflicts (#819)

* v2.0.0 (#806)

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

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

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

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

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

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

fixes #678

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

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

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

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

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

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

fixes #573

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

* Replaces decimals from backend with decimals from blockchain

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

* Fixs missing symbol

* Add description comment

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

* Added unilogin provier + support for legacy path

* Bump onboardjs version

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

* Create release.yml

Created script for building desktop app

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

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

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

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

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

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

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

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

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

* Enable region for staging s3 providers

* fix error on Wrapper

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

* Rename incoming-transactions url to incoming-transfers

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

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

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

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

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

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

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

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

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

* Loads tabs components using react suspense

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

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

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

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

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

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

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

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

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

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

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

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

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

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

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

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

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

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

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

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

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

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

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

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

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

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

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

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

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

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

* fix: prefetch txs data

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

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

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

* enhancement: fetch tokens when loading safe

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

* fix: load collectibles when switch to collectibles screen

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

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

* fix: fetch only if safe is ready

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

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

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

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

* Update CI Desktop script

* Update CI script for windows

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

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

* Fix apps loader

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-27 15:34:57 -03:00
nicolas 9363485dea
Fix master conflicts (#819)
* v2.0.0 (#806)

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

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

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

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

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

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

fixes #678

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

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

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

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

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

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

fixes #573

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

* Replaces decimals from backend with decimals from blockchain

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

* Fixs missing symbol

* Add description comment

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

* Added unilogin provier + support for legacy path

* Bump onboardjs version

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

* Create release.yml

Created script for building desktop app

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

* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop

* Manage Apps (#765)

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

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

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

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

* fix scroll and fix margin layout

* Add region to travis CI develop (#787)

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

* Feature/travis ci s3 region (#789)

* Add region to travis CI develop

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

* Enable region for staging s3 providers

* fix error on Wrapper

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

* Rename incoming-transactions url to incoming-transfers

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

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

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

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

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

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

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

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

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

* Loads tabs components using react suspense

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

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

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

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

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

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

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

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

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

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

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

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

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

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

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

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

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

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

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

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

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

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

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

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

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

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

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

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

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

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

* fix: prefetch txs data

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

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

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

* enhancement: fetch tokens when loading safe

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

* fix: load collectibles when switch to collectibles screen

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

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

* fix: fetch only if safe is ready

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

* Fix (#777)

* fix: batchRequest params order

* fix: execute decodeParams for all sendTokenTxs

* fix: proper amount display for tx in TxTable

* Uses formatAmount

* Removes unused code
Fixs params props safe address form

* Fixs composeValidators
Adds composeValidators for apps section

* Makes composeValidatorsApps a wrapper

* Moves composeValidatorsApps to managesApps.js

* Desktop app (#745)

* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

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

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

* Update CI Desktop script

* Update CI script for windows

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: Uxio Fuentefria <uxio@gnosis.pm>
Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-27 18:32:03 +02:00
nicolas 5014e86c3a
Issue 796 (#807)
* consume gnosis componentes from npm

* set safe-apps url from environment variable

* fix apps padding and border radius

* Apps updates

* update disclaimer

* fix Loader in TXList

* Fix invalid origin

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
2020-04-27 18:28:10 +04:00
Mikhail Mikheev 22f31b1173 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-04-24 18:28:19 +04:00
Mati Dastugue c57885d489
Desktop app (#745)
* Set up electron app

* Update dependencies

* Update package.json

* Added https support

* Add support for Ledger

* Updated certs

* Added auto updates messages

* Update auto-updater method

* Update package.json

* Added build resources

* Update preload

* Update Ledger method on mac

* Update build

* Merge with develop

* Added support for Portis

* Fix electron error and updater

* Update auto updater

* Fix dependencies

* Merge with develop

* Change auto update functionality

* Edit package.json and added github actions

* Updated github actions

* Fixed Torus + Update github actions

* Updated release.yml

* Try only ubuntu

* Update package.json

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated safe-contracts

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* v1.9.6

* Updated deploy branch

* Updated script

Co-authored-by: Mati Dastugue <matias.dastugue@mercadolibre.com>
2020-04-24 18:10:37 +04:00
Mikhail Mikheev 82decf54aa cherry-pick wc bridge change, bump package.json 2020-04-24 12:52:29 +04:00
Mikhail Mikheev 38eb8ab5f0
Add gnosis wc bridge to onboard.js wallets options array (#790) 2020-04-22 23:03:15 +04:00
nicolas 8ba0e18940
Manage Apps (#765)
* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

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

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
2020-04-21 17:26:41 -03:00
Mikhail Mikheev 204edd635d
Feature #322: Set safeTxGas for newly created transactions (#752)
* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop
2020-04-20 14:54:09 +04:00
Mikhail Mikheev 83436e37b2
v1.9.5 (#771)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

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

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

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

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

fixes #678

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

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

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

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

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

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

fixes #573

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

* Replaces decimals from backend with decimals from blockchain

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

* Fixs missing symbol

* Add description comment

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

* Added unilogin provier + support for legacy path

* Bump onboardjs version

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

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
2020-04-16 15:11:24 +04:00
Mati Dastugue a18513a0a5
Added Unilogin provider + support for legacy paths (#719)
* Added unilogin provier + support for legacy path

* Bump onboardjs version
2020-04-16 12:15:03 +04:00
Mikhail Mikheev b1f50c7f3a
Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)
* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4
2020-04-09 17:58:58 +04:00
Fernando b0849ee97f
fix: check for `decimals` method in transferredTokens (#748)
Previously we were looking for `decimals` hash in the contract `code`.
There are some contracts like USDC who happen to be behind a FiatTokenProxy, making it upgradable.
By directly calling the `decimals()` method, we interact with the contract and can be sure that the `decimals()` method is present.

fixes #678
2020-04-09 12:45:29 +04:00
Mikhail Mikheev 74d48c40ac
v1.9.3 (#744)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-04-08 19:56:42 +04:00
Mikhail Mikheev b8bfeab588
Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)
* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard
2020-04-08 19:30:55 +04:00
Fernando 0441ce2ec7
(Fix) Transaction not automatically executed (#716)
* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file
2020-04-06 11:30:07 -03:00
Mikhail Mikheev 8ff6695562
Gnosis Safe - Public Release v1.9.0 (#713)
* (Fix) Wrong value for ERC-20 tokens transfers (#679)

The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.

fixes #678

* (Fix) send tx from address book (#677)

* fix: Send funds not working when selecting receipt from addressBook

Also, this commit includes an intent to unify/simplify SendModal component

fixes #632

* Set default value to txData for custom txs

fixes #632

* bump version in package.json (#683)

* Onboardjs - Get wallets by platform, fix ledger/trezor rpcUrls (#665)

* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

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

* Master/dev conflict fix (#685)

* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* v1.8.2 (#682)

* (Fix) Wrong value for ERC-20 tokens transfers (#679)

The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.

fixes #678

* (Fix) send tx from address book (#677)

* fix: Send funds not working when selecting receipt from addressBook

Also, this commit includes an intent to unify/simplify SendModal component

fixes #632

* Set default value to txData for custom txs

fixes #632

* bump version in package.json (#683)

Co-authored-by: Fernando <fernando.greco@gmail.com>

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>

* (Fix) #423 - Pending transaction confirmation loop (#637)

* Fixs duplicated notifications

* Implements feedback, now the displayed txHash are stored on localstorage and once the first time we notify the user about it, they won't never appear again

* Uses the last time the user logged in

* Fix safe version null check
Fixs date string comparison
Adds the safe address to the check of last time logged in

* (Feature) Erc721 modal lists (#661)

* Add Assets sections

* (add) collectibles tab

* (add) criptokitty items

* (add) collectible items, definitive edition

* (fix) collectibles were overlapping with bottom banner

* (fix) wording

* (fix) responsive issues

* Install `async-sema` dependency

* Create collectible source classes

- source from mocked data and opensea, it's extendable to import information from other sources

* Update `Collectible` implementation to use new data source

* Create constants file to better handle env variables and default values

* Add description to item's cards

- also added a mocked class with real data

* Fix `saveTxToHistory`, remove hardcoded `CALL`

* Fix after merge development

* Set background color for collectible based on data info

- Changed `withStyles` in favor of a hook-like approach with `makeStyles`

* Enhance collectible card info and group title

* Use current safeAddress to query for collectibles information

- also migrated from `withStyles` to `makeStyles`

* Use proper key values for lists and set more significant names

* update yarn.lock after merge

* Fix linting error

* Move ethAsToken verification outside loop

* Use absolute route for `SendModal` import

* Move Collectibles into redux store

* Update yarn.lock file

* Selectable NFTs

* Divide the `collectible` store into `nftAssets` and `nftTokens`

- Also updated components to retain functionality
- Created a `textShortener` function for better presentation

* Update `yarn.lock`

* Update `yarn.lock`

* Fix item background color

* Clears the tokenID select field when the collectible selected changes

* Open Send modal from the assets section

* Use token name for the token selection dropdown

* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component

* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component

* Add openZeppelin contracts dependency

* Create ERC721 getter

* Fix types, default values and clean code

* Fix: properly refresh list of collectibles when switching safes

* Add ReviewCollectible step in send NFT

* Displays the assets in the manage list

* Fixs add custom token/asset modal cancel button

* Change items shadow

* Give option to choose what to send by clicking 'Send' button in AddressBook

* Disable [Send] button for Collectibles if not owner

* Set Coins as default option in assets tab

- also fixed styles for `Coins` option

* Use collectible icon in send modal

* Set default message when no assets available

- removed pagination feature

* Create SafeVersionProvider to better handle version-related tasks

Provides:
- current and latest versions,
- a boolean indicating a need for update,
- an upgradeSafe callback to trigger upgrade from any place,
- a list of enabled features, depending on the current version
  - the latter needs a refactor like extract features outside the provider
   and define constants for the features.

* Force build

* Update `yarn.lock`

* Disable Manage list for NFTs

* Implements manage list to add/remove assets

* Implements manage list to add/remove assets

* Merge branch 'feature/#469-ERC721-feature-implementation' of https://github.com/gnosis/safe-react into feature/#469-ERC721-feature-implementation

# Conflicts:
#	src/routes/safe/components/Balances/Collectibles/index.jsx
#	src/routes/safe/components/Balances/index.jsx
#	src/utils/constants.js

* Implements blacklisted assets

* Fix container shadow

- Also fixes tables shadow, thanks to @gabitoesmiapodo

* Enable nested routes for balances (assets) tab

* Default to `/balance` if invalid nested path

* Disable [Send Collectible] button, if not supported by safe

* Change sub-menu buttons to clickable text

* Replace Paragraph with Link

* Fix invalid props errors for Link component

* Fallback to `transferFrom` if `safeTransferFrom` is not implemented

* Use `transfer` as fallback to ERC-721's `safeTransferFrom`

- need to identify ERC721 token using `transfer` and `name` methods

* Display failed transactions

* Use react.lazy for collectibles' modals

* Identify ERC-721 token transaction

* Adds initial components for AddCustomAsset support

* Fix Send Collectibles modal layout/behavior

- disable dropdown list if there's no item to pick
- fix placeholder for tokens list
- fix dropdown list styles

* Set default `isSuccessful` flag to `true`

* Fixs erc721Enabled check

* Adds margin to modal icon
Fix search bar

* Fix hidding buttons in coins table

* Fixs display all available assets by default

* Fixs modal assets

* Fixs blacklistedAssetsAddresses save to storage
Fixs show token button

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>

* Remove `SafeVersionProvider` (#694)

* (Feature) Safe Deployment #605 #111 #395 #606 #396 (#659)

* Stepper component

* proxyfactory web3 contract

* add styles to body steps

* Steps info

* Open component: moving from class to function

* remove opening route and rendering it in Open component instead

* recover safe creation from txHash in localStorage

* remove commented code

* restore commented code

* creatign TX fix

* fix createSafe then function

* fixing stepper

* remove unused code

* remove opening route and finishin both variants of create

* add loader dots svg

* add error state design and loader dots

* fix error section

* add description to steps

* adding etherscan link

* taking values from variables

* fix heigh in body content

* add success svg

* add check image on last step

* fix margin and heigt to body rows

* remove commented code

* remove commented code

* fix for #396

* Fix empty_code

* set error if getReceipt fails

* fixes

* Fix: remove txHash from pendingInfo on retry

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>

* Updated modal description

* Update readme (#696)

* Bump 1.5.0 version of onboardjs

* Feature: #528 optimize network requests (#680)

* Generates a cache to avoid multiples getHumanFriendlyToken() for the same token address

* Adds etags implementation for transactions

* Caches outgoing and incoming safe transactions based on etag value

* Removes cachedSafeTransactions, cachedSafeIncommingTransactions

* Refactors getTokenInstance

* Avoid recreating tokens on fetchTokens() once we have them in redux

* Fixs error on catch

* Batch request tokens balances

* Fixs missing token names
Changes the tokens limit from 300 to 3000

* fix: failed to instantiate non-standard ERC-20 tokens

For the batchRequest of balances, we're just using the `balanceOf` method call. So having a simple ABI with that only method prevents errors with non-standard ERC-20 Tokens.

* Removes unnecessary action updateSafeThreshold
Removes unnecessary action fetchEtherBalance

* Updated comments in code
Replaces constant with directly dispatching action

* BatchRequest done right

* fix: invalid action name `savedToken` -> `saveToken`

* Renames getTokenInstance to getTokenInfos
Fixs first load of transactions are empty

* Move fetchTokenBalances to `Balances` and `SendModal` components

* fix: Incoming transaction type

Backend now changed the type from 'incoming' to one of: `'ERC721_TRANSFER', 'ERC20_TRANSFER', 'ETHER_TRANSFER'`

* fix: tokenInstance `symbol` and `decimal` extraction

* Fix property name `decimals` instead of `tokenDecimals`

* Standardize non-standard ERC20 tokens discovery

* fix: isStandardERC20

* Revert "Move fetchTokenBalances to `Balances` and `SendModal` components"

This reverts commit ed84bd92

* Fixs Typo INCOMING_TX_TYPES
Renames tokenInstance with localToken

* Renames getBatchBalances to getTokenBalances
Returns saved tokens instead of tokenInstance in getTokenInfos

* Remove promise returns

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

* Feature: Offchain signatures (#668)

* offchain signatures wip

* offchain signing wip

* offchain signatures wip

* offchain signatures wip

* save signatures to the history service

* fix eth signer & useEfefct hook

* offchain signatures wip

* signature check, mainnet testing wip

* dep update

* disable offchain signing for smart contract wallets

* Refactor EIP712 signer

* bring back .env.example

* Check if save version is >1.1.1

* use canTryoffchainSigning boolean variable, add comment about 4001 error

* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet

* remove TYPE when sending txs to history service

* add eth_signTypedData_v4 signer, dep bump, add missing await

* add comments about version check for canTryOffchainSigning variable

* hide "please sign notification"

* dep bump

* dep bump

* Check if connected is ledger before trying offchain signatures

* minor fixes, temp deployment to test trezor

* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets

* (Fix) Owner replacement transaction details (#688)

* fix: No threshold change for owners replacement

* fix: Extract added owner from addressBook

When replacing an owner, the added owner's name was the same as the removed one

* fix: Add or Update addressBook entry for the newly added owner

* Replace `.then` with `async/await`

* Optimize AddressBook entry `name` update

* Revert "Optimize AddressBook entry `name` update"

This reverts commit 00a75d15

* refactor: AddressBook entry from plain JS object to immutable Record

* fix: merge instead of set for the AddressBookEntry record

* refactor: addOrUpdateAddressBookEntry redux action

changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated

* Fix safe creation from walletConnect (#703)

* Fixes: Offchain signatures (#706)

* offchain signatures wip

* offchain signing wip

* offchain signatures wip

* offchain signatures wip

* save signatures to the history service

* fix eth signer & useEfefct hook

* offchain signatures wip

* signature check, mainnet testing wip

* dep update

* disable offchain signing for smart contract wallets

* Refactor EIP712 signer

* bring back .env.example

* Check if save version is >1.1.1

* use canTryoffchainSigning boolean variable, add comment about 4001 error

* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet

* remove TYPE when sending txs to history service

* add eth_signTypedData_v4 signer, dep bump, add missing await

* add comments about version check for canTryOffchainSigning variable

* hide "please sign notification"

* dep bump

* dep bump

* Check if connected is ledger before trying offchain signatures

* minor fixes, temp deployment to test trezor

* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets

* add personal signer

* prettier fixes

* offchain signatures fixes

* (Fix) New owners as `UNKNOWN` (#697)

* fix: No threshold change for owners replacement

* fix: Extract added owner from addressBook

When replacing an owner, the added owner's name was the same as the removed one

* fix: Add or Update addressBook entry for the newly added owner

* Replace `.then` with `async/await`

* Optimize AddressBook entry `name` update

* fix: store added owner in the addressBook

* Revert "Optimize AddressBook entry `name` update"

This reverts commit 00a75d15

* refactor: AddressBook entry from plain JS object to immutable Record

* fix: merge instead of set for the AddressBookEntry record

* refactor: addOrUpdateAddressBookEntry redux action

changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated

* refactor: update `addOrUpdateAddressBookEntry` call, due to signature change

* Bug: Eth balance not updating (#709)

* fix prop name for updating eth balance

* remove unneccessary index in import

* typo fixes in safe opening

* Don't reassign transaction in getAwaitingTransactions, check for another transaction executed with the same nonce and not only cancellation ones (#710)

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
2020-04-01 18:56:04 +04:00
Mikhail Mikheev f7bcec5376 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-04-01 18:48:17 +04:00
Mikhail Mikheev a6b70a1663
Feature: Offchain signatures (#668)
* offchain signatures wip

* offchain signing wip

* offchain signatures wip

* offchain signatures wip

* save signatures to the history service

* fix eth signer & useEfefct hook

* offchain signatures wip

* signature check, mainnet testing wip

* dep update

* disable offchain signing for smart contract wallets

* Refactor EIP712 signer

* bring back .env.example

* Check if save version is >1.1.1

* use canTryoffchainSigning boolean variable, add comment about 4001 error

* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet

* remove TYPE when sending txs to history service

* add eth_signTypedData_v4 signer, dep bump, add missing await

* add comments about version check for canTryOffchainSigning variable

* hide "please sign notification"

* dep bump

* dep bump

* Check if connected is ledger before trying offchain signatures

* minor fixes, temp deployment to test trezor

* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets
2020-03-31 15:19:40 +04:00
Mati Dastugue 0786060488 Bump 1.5.0 version of onboardjs 2020-03-27 15:18:01 -03:00
Mati Dastugue 95d2cb7c19 Updated modal description 2020-03-26 13:45:36 -03:00
nicolas 18a6525bc6
(Feature) Safe Deployment #605 #111 #395 #606 #396 (#659)
* Stepper component

* proxyfactory web3 contract

* add styles to body steps

* Steps info

* Open component: moving from class to function

* remove opening route and rendering it in Open component instead

* recover safe creation from txHash in localStorage

* remove commented code

* restore commented code

* creatign TX fix

* fix createSafe then function

* fixing stepper

* remove unused code

* remove opening route and finishin both variants of create

* add loader dots svg

* add error state design and loader dots

* fix error section

* add description to steps

* adding etherscan link

* taking values from variables

* fix heigh in body content

* add success svg

* add check image on last step

* fix margin and heigt to body rows

* remove commented code

* remove commented code

* fix for #396

* Fix empty_code

* set error if getReceipt fails

* fixes

* Fix: remove txHash from pendingInfo on retry

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-03-26 10:53:20 -03:00
Mikhail Mikheev 975892ea9d
v1.8.3 (#684)
* (Fix) Wrong value for ERC-20 tokens transfers (#679)

The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.

fixes #678

* (Fix) send tx from address book (#677)

* fix: Send funds not working when selecting receipt from addressBook

Also, this commit includes an intent to unify/simplify SendModal component

fixes #632

* Set default value to txData for custom txs

fixes #632

* bump version in package.json (#683)

* Onboardjs - Get wallets by platform, fix ledger/trezor rpcUrls (#665)

* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

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

* Master/dev conflict fix (#685)

* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* v1.8.2 (#682)

* (Fix) Wrong value for ERC-20 tokens transfers (#679)

The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.

fixes #678

* (Fix) send tx from address book (#677)

* fix: Send funds not working when selecting receipt from addressBook

Also, this commit includes an intent to unify/simplify SendModal component

fixes #632

* Set default value to txData for custom txs

fixes #632

* bump version in package.json (#683)

Co-authored-by: Fernando <fernando.greco@gmail.com>

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
2020-03-24 13:51:47 +04:00
Mati Dastugue bf075305ba
Onboardjs - Get wallets by platform, fix ledger/trezor rpcUrls (#665)
* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-03-24 13:37:54 +04:00
Fernando 5359794e21
(Feature) erc721 feature implementation (#570)
* Add Assets sections

* (add) collectibles tab

* (add) criptokitty items

* (add) collectible items, definitive edition

* (fix) collectibles were overlapping with bottom banner

* (fix) wording

* (fix) responsive issues

* Install `async-sema` dependency

* Create collectible source classes

- source from mocked data and opensea, it's extendable to import information from other sources

* Update `Collectible` implementation to use new data source

* Create constants file to better handle env variables and default values

* Add description to item's cards

- also added a mocked class with real data

* Fix `saveTxToHistory`, remove hardcoded `CALL`

* Fix after merge development

* Set background color for collectible based on data info

- Changed `withStyles` in favor of a hook-like approach with `makeStyles`

* Enhance collectible card info and group title

* Use current safeAddress to query for collectibles information

- also migrated from `withStyles` to `makeStyles`

* Use proper key values for lists and set more significant names

* update yarn.lock after merge

* Fix linting error

* Move ethAsToken verification outside loop

* Use absolute route for `SendModal` import

* Move Collectibles into redux store

* Update yarn.lock file

* Selectable NFTs

* Divide the `collectible` store into `nftAssets` and `nftTokens`

- Also updated components to retain functionality
- Created a `textShortener` function for better presentation

* Update `yarn.lock`

* Update `yarn.lock`

* Fix item background color

* Clears the tokenID select field when the collectible selected changes

* Open Send modal from the assets section

* Use token name for the token selection dropdown

* Add openZeppelin contracts dependency

* Create ERC721 getter

* Fix types, default values and clean code

* Fix: properly refresh list of collectibles when switching safes

* Add ReviewCollectible step in send NFT

* Change items shadow

* Give option to choose what to send by clicking 'Send' button in AddressBook

* Disable [Send] button for Collectibles if not owner

* Set Coins as default option in assets tab

- also fixed styles for `Coins` option

* Use collectible icon in send modal

* Set default message when no assets available

- removed pagination feature

* Create SafeVersionProvider to better handle version-related tasks

Provides:
- current and latest versions,
- a boolean indicating a need for update,
- an upgradeSafe callback to trigger upgrade from any place,
- a list of enabled features, depending on the current version
  - the latter needs a refactor like extract features outside the provider
   and define constants for the features.

* Force build

* Update `yarn.lock`

* Disable Manage list for NFTs

* Fix container shadow

- Also fixes tables shadow, thanks to @gabitoesmiapodo

* Enable nested routes for balances (assets) tab

* Default to `/balance` if invalid nested path

* Disable [Send Collectible] button, if not supported by safe

* Change sub-menu buttons to clickable text

* Replace Paragraph with Link

* Fix invalid props errors for Link component

* Fallback to `transferFrom` if `safeTransferFrom` is not implemented

* Use `transfer` as fallback to ERC-721's `safeTransferFrom`

- need to identify ERC721 token using `transfer` and `name` methods

* Display failed transactions

* Use react.lazy for collectibles' modals

* Identify ERC-721 token transaction

* Fix Send Collectibles modal layout/behavior

- disable dropdown list if there's no item to pick
- fix placeholder for tokens list
- fix dropdown list styles

* Set default `isSuccessful` flag to `true`

* Save version related values into store

- each safe has its `currentVersion`, `needsUpdate` and `featuresEnabled`
- and safes store has the `latestMasterContractVersion`

* Migrate Balance to use store-provided values

* Migrate Settings to use store-provided values

* Migrate ChooseTxType to use store-provided values

* Remove SafeVersionProvider

Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
Co-authored-by: apane <agustin.pane@gmail.com>
2020-03-18 17:24:24 -03:00
Mati Dastugue 497b672633
Upgrade onboardjs version to 1.3.4 (#654) 2020-03-13 13:27:59 +04:00
Mikhail Mikheev 97343670f6 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-03-11 16:49:33 +04:00
Richard Meissner dd27cd48bf
Sync master dev (#656)
* v1.7.3 (#611)

* Fix #597: USD value not load (#609)

* Converts all the addresses to checksum values

* Fix for empty address

* fix the order of transactions, change updateSafe to upgradeSafe to avoid naming confusion with the updateSafe action (#610)

* Fix #596: Notification when safe is already updated (#599)

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

* Fixs Padding
Removes the red dot if the user is not an owner

Co-authored-by: Fernando <fernando.greco@gmail.com>

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>

* Update package.json (#612)

* Add public url to prod webpack config (#615)

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

* cherry pick new travis yml merge commit (#620)

* V1.7.5 release (#641)

* use hash history

* update package json

* BUG: App index.html cached on production (#642)

* remove caching for webapp index.html

* keep --delete flag

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
2020-03-11 14:23:16 +04:00
Mikhail Mikheev 4707c2da8e
V1.7.5 release (#641)
* use hash history

* update package json
2020-03-06 17:24:02 +01:00
Mikhail Mikheev 0a987c29bf
Bump dependencies (#639) 2020-03-06 14:49:08 +01:00
Mikhail Mikheev 8adf6c266e
Feature: replace web3connect with onboardjs (#456)
* init onboard.js

* dep bump

* initial replacement of web3connect with onboard.js

* use averta font in the modal

* update onboard.js, add handlers for session murder

* update preferred wallets

* implement reconnecting to injected provider

* fix duplicate wallet disconnected notification

* update onboard dep

* onboardjs fixes

* test onboard js with hw

* add https to rpcUrl

* Added saved wallet and transactions validation

* made Transactions validation

* bnc-onboard version updated

* Fix lock/unlock problem

* bump onboardjs version

* fixed material-ui lab version

* Update onboard version

* Added hw wallets integration

* Updated preferred wallets

* Add ledger modal

* Merge with dev

* Update onboard

* BUmp new version of onboardjs

* Added some logs

* Added some logs

* Update onboardjs version fix ledger connection

* Update onboardjs version fix ledger connection

* Bump new onboardjs version

* Update new version

* Made improvements

* yarn.lock regenration

* remove https=true

* Remove comments and added some improvements

* Updated package.json dep

* Removed unused deps

* Remove web3connect dep

Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
2020-03-04 09:45:54 -03:00
nicolas d5b64849b4
(feature): [Safe Apps] App Transaction List Details (#601)
* Adding IconText component

* Get origin for TXs in Redux

* Adding Icon and name app to transaction list

* Fix customTx condition

* Fix HTML element for text

* simplify condition
2020-02-28 15:46:31 +01:00
Gabriel Rodríguez Alsina 2a8ec9d4db
(add) linter sorting rules (#614)
* (add) linter sorting rules

* (fix) linting errors according to the new rules

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-28 10:58:40 +01:00
Mikhail Mikheev 549febe801
cherry pick new travis yml merge commit (#620) 2020-02-27 16:37:43 +01:00
Mikhail Mikheev 2c019d1931
Repare new dev and staging enviroments to deploy (#618)
* Repare new dev and staging enviroments to deploy

  - Add to `deploy_pull_requests.sh` to the new path.
  - Replace upload-dir to deploy staging to the new path.

* add /app/ public path for the webapp, remove duplicate yarn build from travis

* add basename to app

* deploy pr to /app

* update travis

* linter error fixes

* fix travis build script

Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
2020-02-27 16:21:17 +01:00
Agustin Pane cf1ae7486b
Bug: #482 - Address book Custom transactions Recipient validation (#577)
* (fix) text input bottom border

* Fix #482 input

* Merge branch 'development' of https://github.com/gnosis/safe-react into fix/#482-address-book

# Conflicts:
#	src/components/forms/TextField/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/AddressBookInput/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/SendFunds/TokenSelectField/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/SendFunds/index.jsx
#	yarn.lock

* Fix custom tx addresses filtering

* Merge branch 'development' of https://github.com/gnosis/safe-react into fix/#482-address-book

# Conflicts:
#	yarn.lock

* Remove console logs
Fixed prettier issues

* Remove unnecessary template string

* Fix `tokenAddress` string conversion

* Use `secondaryBackground` value

Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-26 18:58:02 +01:00
Fernando fc312fdc46
Upgrade version to 1.7.2 and update yarn.lock (#590) 2020-02-19 13:32:04 -03:00
Fernando fd5334669a
(Fix) Send form fails to load (#574)
* Fix material-ui/lab version

* Fix breaking changes introduced in commit b960dbf3cf36774a878239c9fed800b58d08abcd

* Fix web3connect version to `1.0.0-beta.25`
2020-02-18 18:33:16 +01:00
nicolas bb2f612490
fixing web3connect version in 1.0.0-beta.25 (#575) 2020-02-18 19:31:56 +04:00
Gabriel Rodríguez Alsina 6df5e72135
(Fix) Enforce linting and formatting (#564)
* (remove) unused / old packages / linting script

* (add) eslint / prettier packages and plugins

* (fix) eslint / prettier config

* (add) prettier / eslint scripts

* (fix) linting and formatting problems

* (remove) unused files

* (fix) linting problem that needed to be addressed manually

* (add) pre commit hooks

* (fix) lint-staged config

* (fix) config

* (fix) config

* (check) if pre config formatting works

* Add nvmrc and update yarn.lock

* Update `yarn.lock`

* Make jsx-a11y/no-autofocus report as warn

* Apply lint:fix to project

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-02-17 19:20:43 -03:00
Agustin Pane dcf4acc686
Feature: #505 - Registry Migration (#569)
* Updates ethereum-ens dependency

* Remove try catch

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-02-17 18:52:26 +04:00
Agustin Pane 2698dcb6e8
#474 Feature: upgrade contract version from interface (#544)
* Adds update safe modal

* Implements update safe transaction

* Moves the safeMasterCopyAddress and defaultFallbackHandlerAddress to a constant

* Adds mainnet network
Refactor logic

* Removes the update button to non-owners

* Updates safe-contracts package
Removes hardcoded addresses

* Refactor upgradeSafeToLastVersion
Refactor getSafeVersion
Refactor getEncodedMultiSendCallData
Removes unused constants

Adds tests for getEncodedMultiSendCallData and checkIfSafeNeedUpdate

* Adds retro-compatibility with v1.0.0

* Improves test description

* Fixs comments

* Fix typo
Removes spread

* Exports proxy code to historicProxyCode.js

* Updates yarn.lock
2020-02-17 16:56:23 +04:00
Agustin Pane 504770d4cd
Bug #522: Autofill contact address (#567)
Works as intent ended, the address is automatically filled when you add a new address from a Tx.

Checked the Address book functionality in general making sure nothing broke by this fix.
2020-02-14 10:09:14 -03:00
nicolas c94bf4edbd
#495 adding apps tab (#527)
* Adding prettier file

* Adding styled-components

* Adding DELEGATE_CALL and optionally redirect to TXs tabs when calling createTransactions

* Adding Apps tab

* lazy loading apps tab

* Fix: Dynamic load of Apps tab

* Improve eslint-prettier config

* Apps tabs: refactor and styling

* remove harcoded gasLimit for production

* review fixes

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-02-13 10:43:28 -03:00
Fernando 8891dddc05
V1.7.0 (#531) (#547)
* Adds cookie permissions to localStorage/redux state

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Let the user re-open the cookie banner

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Feature #169: Intercom (#301)

* Implements intercom
Adds REACT_APP_INTERCOM_ID_MAINNET and REACT_APP_INTERCOM_ID_RINKEBY env vars

* Adds .env.example

* Adds intercom env vars

* Updates env vars
Replaces "rinkeby" and "mainnet" with "non-production" and "production"

* Now loads intercom after the user accepted the analytics

* Add env variable for production intercom id

* Update .env.example

* Removes react-intercom
Fixs getIntercomId with default dev appID
Now loads intercom as script

* Renegerate flow-types

* Remove 'Hide zero balances' (#310)

* Use medium font size for 'select an asset' label (#312)

* Feature #272: Google Analytics (#299)

* Adds google analytics tracking for every route

* Adds cookies acceptance check before tracking

* Fix react-ga dependency

* Fix cookieStore deletion

* Merge with #189-cookie-banner

* Fixs react ga version
Refactored HOC with hooks

* Fix TYPO

* Fix path for cookies utils

* Fix imports

* remove flow type definition for polish

* Add GA ID log

* Fix load GA After cookies acceptance

* Feature #224: Activate tokens automatically (#300)

* Replace 'Manage Tokens' with 'Manage List'

* prevent 301 redirects

* Add `BLACKLISTED_TOKENS` key to persist through immortal

* Add store/action to extract _activate tokens by its balance_

- keeps already activated tokens
- discards blacklisted tokens
- adds tokens whose vales are bigger than zero and are not blacklisted

* Add `blacklistedTokens` list to safe's store

* Display activeTokensByBalance in 'Balances' screen

* Enable token's blacklisting functionality in Tokens List

* Retrieve balance from API

* Rename action to `activateTokensByBalance`

* Fix linting errors

- line too long
- required return

* Do not persist a separate list into `BLACKLISTED_TOKENS`

* Typo fix (#326)

* Fix security vulnerability: Remove uglifyjs, use terser plugin (#327)

* Remove uglifyjs, use terser plugin

* fix css-loader config

* Feature #256: Sticky header (#308)

* Add sticky header

* Remove react-headroom, set position to fixed for header

* Regenerate yarn lock

* Remove unused headroom style from root.scss

* Pull from dev, conflict fixes

* Update welcome text (#323)

* Feature #137: Tx list improvements (#222)

* Fix swapOwners threshold displayed as hex in tx list

* Refactor spinner in empty table

* Fix number of rows per page in table pagination

* Add use of EtherscanLink component

* Set short version of strings in tx list

* Adjust styles in tx list

* Add more styles to table

* WIP

* An attempt to fix #204 by showing UNKNOWN instead of failed to fetch token symbol

* Table pagination style fixes

* Show confirm transaction button in owner list

* Update dependencies

* Add confirmation icons to owner list in tx list

* exclude unneeded stuff from travis.yml

* Adds cookie permissions to localStorage/redux state

* Update dependencies

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Increase TO_EXP for bignumber.js

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Mock Safe creation transaction

* Format code

* Fix break statement

* Remove deployment of storybook

* Let the user re-open the cookie banner

* Update tx status messages and visual confirmation progress

* Fix svg in tx confirmation progress

* Add styles to tx type in tx list

* Replace nonce in tx list with tx id

* Update opacity of cancelled tx

* Fix short version of address

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Fix styles in tx list

* Add Pending status in tx description

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* Set 25 rows per page in tx list by default

* Align tx table

* Adjust tx table and tx details borders

* Fix fetching transactions to show Safe creation tx alone

* Fix failed Safe creation transaction

* Add styles to tx data

* Refactor and fix owner list in transaction

* Refactor use of theme variables

* Remove storybook files

* Update dependencies

* Fix warnings

* Fix dependencies

* Update file-loader config

* Fix owner colors in the tx confirmation progress

* Fix transaction type icon height

* Tx list adjustments

* Update readme

* (Feature) Etherscan button icon (#331)

* (add) new open on etherscan button icon

* (remove) unused asset

* (fix) icon background

* Feature #239: Replace early access label with network label (#311)

* Remove early access label

* Revert "Remove early access label"

This reverts commit 34682f0f6d9c1974a6e45c2a31358864931d9c1e.

* Replace early access label with network label

* Capitalzie first letter of the network name

* Adds threshold update on checkAndUpdateSafe (#320)

* Feature #159: Pending transaction that requires user confirmation (#330)

* Creates a new notification: waitingConfirmation
Adds key as optional parameter for notification
Implemented getAwaitingTransactions to get the transactions that needs to be confirmed by the current user
Not fetchTransactions action also dispatch a notification for awaiting transactions
Improved performance of routes/safe/container/index to avoid re-rendering

* Removes notification logic on fetchTransactions
Adds notificationsMiddleware

* Moves fetchTransaction to container

* Removes unused param on fetchTransactions

* Fixs null safe check

* Fixs middleware declaration

* Removes lodash

* Changes cancelled transaction detection logic

* Feature #122: Multisig migration (#315)

* Adds query-string package.json
Parses query string on open layout

* Implements load all the values on openSafe view from param querys

* Adds query params validation

* Moves query parse logic to open.jsx

* Changes default no metamask component on open page

* Replaces global isNaN

* Fix threshold parsing validation

* Updates the welcome component with new verbiage for open

* Renames isOpenSafe to isOldMultisigMigration

* Merge branch 'development' of https://github.com/gnosis/safe-react into 122-multisig-migration

# Conflicts:
#	src/routes/open/components/Layout.jsx

* Merge branch 'development' of https://github.com/gnosis/safe-react into 159-pending-transactions

# Conflicts:
#	src/routes/safe/components/Transactions/index.jsx
#	yarn.lock

* set anonymizeIp to true (#335)

* Feature #180: Predict transaction nonce (#293)

* Dep bump

* Fetch transactions when safe view is mounted

* eslint fix

* Calculate new tx nonce from latest tx in service

* Fix tx cancellation, allow passing nonce to createTransaction

* dep bump

* Refactor createTransaction/processTransaction to use object as argument

* Adopting transactions table to new send tx flow with predicted nonces

* dep bump, disable esModule in file-loader options after new v5 release

* Don't show older tx annotation for already executed txs

* sort tx by nonce

* get new safe nonce after tx execution

* Bugfixes

* remove whitespace for showOlderTxAnnotation

* Feature #329: Rename to Multisig (#334)

* Rename to Multisig

* migration text fix

* replace safe for teams with multisig

* Fixs race condition (#341)

Fixs typo

* (Feature) Incoming transactions (#333)

* Add `blockNumber` to transactions model

* Create `incomingTransaction` node in store and load it along with `transactions`

* Add incoming transfers to the Transactions table

* Rename `transactionHash` to `executionTxHash` for better incoming/outgoing txs unification in Transactions table

* Add incoming transactions details

* Add transaction type icon in table row

* Add snackbar notification for incoming txs

* Make incoming transaction snackbar to show on any tab

* Use makeStyles hooks

* Fix incoming amounts conversion from wei

* Make concurrent promise calls

* Use date to calculate transactions ids

* Prevent repeating messages

- also move logic to display snack bar into the notifications middleware

* Merge transactions and incomingTxs to the transactions selector

* Show 'Multiple incoming transfers' if they are more than 3

* Prevent incoming transactions snack bar for first-timer users

* Set ID as the default order

* Use constant for _incoming_ type

* Feature #154: Fiat Balances (#290)

* Adds DropdownCurrency
Adds redux store for currencyValues
Adds Value column on the assets table
Adds mocked currency values

* (add) base currency dropdown

* (add) dropdown styles

* Refactors data fetching of the balances list
Now uses the endpoint

* Fix column value styling

* Adds support for ECB currency values

* Fixs list overflow

* Changes endpoint url
Adds decimals for balance values

* (fix) remove inline style

* (add) currencies dropdown search field

* (fix) list items' hover color

* Implements filter search

* Fix warning on dropdown template

* Saves selected currency in localStorage

* Remove spaces on curly braces
Add alt
Renames rowItem to cellItem
Improves fetchCurrenciesRates handling

* Removes withMutations

* Removes middleware
Export style to another file for dropdownCurrency

* Adds classNames

* Fix incomming transactions fetching (#346)

* Feature: Activate fortmatic (#339)

* Add fortmatic integration to web3connect

* add fortmatic

* Safe open form improvements: limit calling initContracts to 1 time

* update .env.example

* Feature #336: Confirmation required notification for non-owners fix (#338)

* Refactors grantedSelector with isUserOwner function
Checks if the user is owner of the safe before sending notification

* Adds safeParamAddressFromStateSelector
Refactors notificationsMiddleware with new selector

* Remove old size check

* safe notifications middleware fixes

* add apt-get update to travis yml

* (Fix) Incoming transactions inline-styles (#344)

* Remove inline styles

* Replace ternary with logical && operator

* use cn as shortcut for classnames

* Makes minMaxLength 2 to AddCustomToken (#363)

* Fixs ETH display on balances list (#360)

* Bug #348: Safelist entries get removed (#358)

* Fix balances saved to localStorage not in format [tokenAdd, balance] but [balance]

* Updates localStorage version value

* Use submission instead of execution date to sort outgoing txs (#364)

* Feature #190: Sidebar improvements (#347)

* Change icons
Adds checked icon

* Adds safeParamAddressFromStateSelector for get current safe selected
Implements check icon on sidebar

* Remove overflow on sidebar
Start alignments

* Removes headerPlaceholder

* Improves header

* Improves header

* Fix header style

* use sameAddress function to check address eqaulity when fetching transactions (#365)

* Bug #352: Owner shown multiple times (#367)

* Ensure lowercased string comparison for owners' addresses

* Use `sameAddress` for addresses comparison

* Use transaction value as a string (#369)

* Update isTokenTransfer to use value as a string

* Rename error message

* Update dependencies

* Refactor

* Fix alternative token abi and token address for incoming transactions (#373)

* Bug #313: Payload breaks ui (#371)

* Makes minMaxLength 2 to AddCustomToken

* Fix styling

* Fix typo

* Feature #200: Show version number (#370)

* Add `dotenv-expand` as a dependency

* Add app version to sidebar

* Add hardcoded latest safe version to env variables

* Add `semver` to compare current vs latest version

* Add Safe version to Safe Details

* Adjustments in version number

* Fix transaction description value (#377)

* Fix transaction description value

* Remove duplicated symbols

* fix checkAndUpdateSafe logic (#379)

* Update .env.example

* update package json version

* update package json version

* Fix app version in side bar

* add REACT_APP_APP_VERSION global env var

* add react_app_version to build script

* remove react_app_app_version from build-mainnet

* Change label for cancelled tx to 'cancelled' (#393)

* Feature 309: Listen for web3connect disconnect event (#324)

* add 'disconnect' event listener for web3connect

* Update web3connect, set preventDuplicate to true for disconnected message

Co-authored-by: Germán Martínez <germartinez@users.noreply.github.com>

* #359: Remove separate entry for owners in localStorage (#392)

* Wip

* fetchTransactions fix

* fix p > div > p nesting, fix displaying undefined as currency

* fix duplicate import

* #391: Display address book (#398)

* Development (#378)

* Adds cookie permissions to localStorage/redux state

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Let the user re-open the cookie banner

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Feature #169: Intercom (#301)

* Implements intercom
Adds REACT_APP_INTERCOM_ID_MAINNET and REACT_APP_INTERCOM_ID_RINKEBY env vars

* Adds .env.example

* Adds intercom env vars

* Updates env vars
Replaces "rinkeby" and "mainnet" with "non-production" and "production"

* Now loads intercom after the user accepted the analytics

* Add env variable for production intercom id

* Update .env.example

* Removes react-intercom
Fixs getIntercomId with default dev appID
Now loads intercom as script

* Renegerate flow-types

* Remove 'Hide zero balances' (#310)

* Use medium font size for 'select an asset' label (#312)

* Feature #272: Google Analytics (#299)

* Adds google analytics tracking for every route

* Adds cookies acceptance check before tracking

* Fix react-ga dependency

* Fix cookieStore deletion

* Merge with #189-cookie-banner

* Fixs react ga version
Refactored HOC with hooks

* Fix TYPO

* Fix path for cookies utils

* Fix imports

* remove flow type definition for polish

* Add GA ID log

* Fix load GA After cookies acceptance

* Feature #224: Activate tokens automatically (#300)

* Replace 'Manage Tokens' with 'Manage List'

* prevent 301 redirects

* Add `BLACKLISTED_TOKENS` key to persist through immortal

* Add store/action to extract _activate tokens by its balance_

- keeps already activated tokens
- discards blacklisted tokens
- adds tokens whose vales are bigger than zero and are not blacklisted

* Add `blacklistedTokens` list to safe's store

* Display activeTokensByBalance in 'Balances' screen

* Enable token's blacklisting functionality in Tokens List

* Retrieve balance from API

* Rename action to `activateTokensByBalance`

* Fix linting errors

- line too long
- required return

* Do not persist a separate list into `BLACKLISTED_TOKENS`

* Typo fix (#326)

* Fix security vulnerability: Remove uglifyjs, use terser plugin (#327)

* Remove uglifyjs, use terser plugin

* fix css-loader config

* Feature #256: Sticky header (#308)

* Add sticky header

* Remove react-headroom, set position to fixed for header

* Regenerate yarn lock

* Remove unused headroom style from root.scss

* Pull from dev, conflict fixes

* Update welcome text (#323)

* Feature #137: Tx list improvements (#222)

* Fix swapOwners threshold displayed as hex in tx list

* Refactor spinner in empty table

* Fix number of rows per page in table pagination

* Add use of EtherscanLink component

* Set short version of strings in tx list

* Adjust styles in tx list

* Add more styles to table

* WIP

* An attempt to fix #204 by showing UNKNOWN instead of failed to fetch token symbol

* Table pagination style fixes

* Show confirm transaction button in owner list

* Update dependencies

* Add confirmation icons to owner list in tx list

* exclude unneeded stuff from travis.yml

* Adds cookie permissions to localStorage/redux state

* Update dependencies

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Increase TO_EXP for bignumber.js

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Mock Safe creation transaction

* Format code

* Fix break statement

* Remove deployment of storybook

* Let the user re-open the cookie banner

* Update tx status messages and visual confirmation progress

* Fix svg in tx confirmation progress

* Add styles to tx type in tx list

* Replace nonce in tx list with tx id

* Update opacity of cancelled tx

* Fix short version of address

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Fix styles in tx list

* Add Pending status in tx description

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* Set 25 rows per page in tx list by default

* Align tx table

* Adjust tx table and tx details borders

* Fix fetching transactions to show Safe creation tx alone

* Fix failed Safe creation transaction

* Add styles to tx data

* Refactor and fix owner list in transaction

* Refactor use of theme variables

* Remove storybook files

* Update dependencies

* Fix warnings

* Fix dependencies

* Update file-loader config

* Fix owner colors in the tx confirmation progress

* Fix transaction type icon height

* Tx list adjustments

* Update readme

* (Feature) Etherscan button icon (#331)

* (add) new open on etherscan button icon

* (remove) unused asset

* (fix) icon background

* Feature #239: Replace early access label with network label (#311)

* Remove early access label

* Revert "Remove early access label"

This reverts commit 34682f0f6d9c1974a6e45c2a31358864931d9c1e.

* Replace early access label with network label

* Capitalzie first letter of the network name

* Adds threshold update on checkAndUpdateSafe (#320)

* Feature #159: Pending transaction that requires user confirmation (#330)

* Creates a new notification: waitingConfirmation
Adds key as optional parameter for notification
Implemented getAwaitingTransactions to get the transactions that needs to be confirmed by the current user
Not fetchTransactions action also dispatch a notification for awaiting transactions
Improved performance of routes/safe/container/index to avoid re-rendering

* Removes notification logic on fetchTransactions
Adds notificationsMiddleware

* Moves fetchTransaction to container

* Removes unused param on fetchTransactions

* Fixs null safe check

* Fixs middleware declaration

* Removes lodash

* Changes cancelled transaction detection logic

* Feature #122: Multisig migration (#315)

* Adds query-string package.json
Parses query string on open layout

* Implements load all the values on openSafe view from param querys

* Adds query params validation

* Moves query parse logic to open.jsx

* Changes default no metamask component on open page

* Replaces global isNaN

* Fix threshold parsing validation

* Updates the welcome component with new verbiage for open

* Renames isOpenSafe to isOldMultisigMigration

* Merge branch 'development' of https://github.com/gnosis/safe-react into 122-multisig-migration

# Conflicts:
#	src/routes/open/components/Layout.jsx

* Merge branch 'development' of https://github.com/gnosis/safe-react into 159-pending-transactions

# Conflicts:
#	src/routes/safe/components/Transactions/index.jsx
#	yarn.lock

* set anonymizeIp to true (#335)

* Feature #180: Predict transaction nonce (#293)

* Dep bump

* Fetch transactions when safe view is mounted

* eslint fix

* Calculate new tx nonce from latest tx in service

* Fix tx cancellation, allow passing nonce to createTransaction

* dep bump

* Refactor createTransaction/processTransaction to use object as argument

* Adopting transactions table to new send tx flow with predicted nonces

* dep bump, disable esModule in file-loader options after new v5 release

* Don't show older tx annotation for already executed txs

* sort tx by nonce

* get new safe nonce after tx execution

* Bugfixes

* remove whitespace for showOlderTxAnnotation

* Feature #329: Rename to Multisig (#334)

* Rename to Multisig

* migration text fix

* replace safe for teams with multisig

* Fixs race condition (#341)

Fixs typo

* (Feature) Incoming transactions (#333)

* Add `blockNumber` to transactions model

* Create `incomingTransaction` node in store and load it along with `transactions`

* Add incoming transfers to the Transactions table

* Rename `transactionHash` to `executionTxHash` for better incoming/outgoing txs unification in Transactions table

* Add incoming transactions details

* Add transaction type icon in table row

* Add snackbar notification for incoming txs

* Make incoming transaction snackbar to show on any tab

* Use makeStyles hooks

* Fix incoming amounts conversion from wei

* Make concurrent promise calls

* Use date to calculate transactions ids

* Prevent repeating messages

- also move logic to display snack bar into the notifications middleware

* Merge transactions and incomingTxs to the transactions selector

* Show 'Multiple incoming transfers' if they are more than 3

* Prevent incoming transactions snack bar for first-timer users

* Set ID as the default order

* Use constant for _incoming_ type

* Feature #154: Fiat Balances (#290)

* Adds DropdownCurrency
Adds redux store for currencyValues
Adds Value column on the assets table
Adds mocked currency values

* (add) base currency dropdown

* (add) dropdown styles

* Refactors data fetching of the balances list
Now uses the endpoint

* Fix column value styling

* Adds support for ECB currency values

* Fixs list overflow

* Changes endpoint url
Adds decimals for balance values

* (fix) remove inline style

* (add) currencies dropdown search field

* (fix) list items' hover color

* Implements filter search

* Fix warning on dropdown template

* Saves selected currency in localStorage

* Remove spaces on curly braces
Add alt
Renames rowItem to cellItem
Improves fetchCurrenciesRates handling

* Removes withMutations

* Removes middleware
Export style to another file for dropdownCurrency

* Adds classNames

* Fix incomming transactions fetching (#346)

* Feature: Activate fortmatic (#339)

* Add fortmatic integration to web3connect

* add fortmatic

* Safe open form improvements: limit calling initContracts to 1 time

* update .env.example

* Feature #336: Confirmation required notification for non-owners fix (#338)

* Refactors grantedSelector with isUserOwner function
Checks if the user is owner of the safe before sending notification

* Adds safeParamAddressFromStateSelector
Refactors notificationsMiddleware with new selector

* Remove old size check

* safe notifications middleware fixes

* add apt-get update to travis yml

* (Fix) Incoming transactions inline-styles (#344)

* Remove inline styles

* Replace ternary with logical && operator

* use cn as shortcut for classnames

* Makes minMaxLength 2 to AddCustomToken (#363)

* Fixs ETH display on balances list (#360)

* Bug #348: Safelist entries get removed (#358)

* Fix balances saved to localStorage not in format [tokenAdd, balance] but [balance]

* Updates localStorage version value

* Use submission instead of execution date to sort outgoing txs (#364)

* Feature #190: Sidebar improvements (#347)

* Change icons
Adds checked icon

* Adds safeParamAddressFromStateSelector for get current safe selected
Implements check icon on sidebar

* Remove overflow on sidebar
Start alignments

* Removes headerPlaceholder

* Improves header

* Improves header

* Fix header style

* use sameAddress function to check address eqaulity when fetching transactions (#365)

* Bug #352: Owner shown multiple times (#367)

* Ensure lowercased string comparison for owners' addresses

* Use `sameAddress` for addresses comparison

* Use transaction value as a string (#369)

* Update isTokenTransfer to use value as a string

* Rename error message

* Update dependencies

* Refactor

* Fix alternative token abi and token address for incoming transactions (#373)

* Bug #313: Payload breaks ui (#371)

* Makes minMaxLength 2 to AddCustomToken

* Fix styling

* Fix typo

* Feature #200: Show version number (#370)

* Add `dotenv-expand` as a dependency

* Add app version to sidebar

* Add hardcoded latest safe version to env variables

* Add `semver` to compare current vs latest version

* Add Safe version to Safe Details

* Adjustments in version number

* Fix transaction description value (#377)

* Fix transaction description value

* Remove duplicated symbols

* fix checkAndUpdateSafe logic (#379)

* Update .env.example

* update package json version

* update package json version

* Fix app version in side bar

* add REACT_APP_APP_VERSION global env var

* add react_app_version to build script

* remove react_app_app_version from build-mainnet

* Adds basic addressBook table

* Implements redux and localStorage for addressBook

* Disables loading page on empty address book

* Fix address display

* Updates defaultRowsPerPage to 25

* Removes unused pops
Renames AddressBookEntry with AddressBookEntry

* Replaces updateAddressBook with addAddressBook

Co-authored-by: Germán Martínez <germartinez@users.noreply.github.com>

* Fix signatures order in tx data

* Reverse fix signatures order in tx data

* Fix signatures order in txData (#429)

* Fix signatures order in tx data

* extract generateSignaturesFromTxConfirmations to a separate file, rewrite test for signatures

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

* #383: Create/Edit/Delete entry (#399)

* Development (#378)

* Adds cookie permissions to localStorage/redux state

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Let the user re-open the cookie banner

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Feature #169: Intercom (#301)

* Implements intercom
Adds REACT_APP_INTERCOM_ID_MAINNET and REACT_APP_INTERCOM_ID_RINKEBY env vars

* Adds .env.example

* Adds intercom env vars

* Updates env vars
Replaces "rinkeby" and "mainnet" with "non-production" and "production"

* Now loads intercom after the user accepted the analytics

* Add env variable for production intercom id

* Update .env.example

* Removes react-intercom
Fixs getIntercomId with default dev appID
Now loads intercom as script

* Renegerate flow-types

* Remove 'Hide zero balances' (#310)

* Use medium font size for 'select an asset' label (#312)

* Feature #272: Google Analytics (#299)

* Adds google analytics tracking for every route

* Adds cookies acceptance check before tracking

* Fix react-ga dependency

* Fix cookieStore deletion

* Merge with #189-cookie-banner

* Fixs react ga version
Refactored HOC with hooks

* Fix TYPO

* Fix path for cookies utils

* Fix imports

* remove flow type definition for polish

* Add GA ID log

* Fix load GA After cookies acceptance

* Feature #224: Activate tokens automatically (#300)

* Replace 'Manage Tokens' with 'Manage List'

* prevent 301 redirects

* Add `BLACKLISTED_TOKENS` key to persist through immortal

* Add store/action to extract _activate tokens by its balance_

- keeps already activated tokens
- discards blacklisted tokens
- adds tokens whose vales are bigger than zero and are not blacklisted

* Add `blacklistedTokens` list to safe's store

* Display activeTokensByBalance in 'Balances' screen

* Enable token's blacklisting functionality in Tokens List

* Retrieve balance from API

* Rename action to `activateTokensByBalance`

* Fix linting errors

- line too long
- required return

* Do not persist a separate list into `BLACKLISTED_TOKENS`

* Typo fix (#326)

* Fix security vulnerability: Remove uglifyjs, use terser plugin (#327)

* Remove uglifyjs, use terser plugin

* fix css-loader config

* Feature #256: Sticky header (#308)

* Add sticky header

* Remove react-headroom, set position to fixed for header

* Regenerate yarn lock

* Remove unused headroom style from root.scss

* Pull from dev, conflict fixes

* Update welcome text (#323)

* Feature #137: Tx list improvements (#222)

* Fix swapOwners threshold displayed as hex in tx list

* Refactor spinner in empty table

* Fix number of rows per page in table pagination

* Add use of EtherscanLink component

* Set short version of strings in tx list

* Adjust styles in tx list

* Add more styles to table

* WIP

* An attempt to fix #204 by showing UNKNOWN instead of failed to fetch token symbol

* Table pagination style fixes

* Show confirm transaction button in owner list

* Update dependencies

* Add confirmation icons to owner list in tx list

* exclude unneeded stuff from travis.yml

* Adds cookie permissions to localStorage/redux state

* Update dependencies

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Increase TO_EXP for bignumber.js

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Mock Safe creation transaction

* Format code

* Fix break statement

* Remove deployment of storybook

* Let the user re-open the cookie banner

* Update tx status messages and visual confirmation progress

* Fix svg in tx confirmation progress

* Add styles to tx type in tx list

* Replace nonce in tx list with tx id

* Update opacity of cancelled tx

* Fix short version of address

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Fix styles in tx list

* Add Pending status in tx description

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* Set 25 rows per page in tx list by default

* Align tx table

* Adjust tx table and tx details borders

* Fix fetching transactions to show Safe creation tx alone

* Fix failed Safe creation transaction

* Add styles to tx data

* Refactor and fix owner list in transaction

* Refactor use of theme variables

* Remove storybook files

* Update dependencies

* Fix warnings

* Fix dependencies

* Update file-loader config

* Fix owner colors in the tx confirmation progress

* Fix transaction type icon height

* Tx list adjustments

* Update readme

* (Feature) Etherscan button icon (#331)

* (add) new open on etherscan button icon

* (remove) unused asset

* (fix) icon background

* Feature #239: Replace early access label with network label (#311)

* Remove early access label

* Revert "Remove early access label"

This reverts commit 34682f0f6d9c1974a6e45c2a31358864931d9c1e.

* Replace early access label with network label

* Capitalzie first letter of the network name

* Adds threshold update on checkAndUpdateSafe (#320)

* Feature #159: Pending transaction that requires user confirmation (#330)

* Creates a new notification: waitingConfirmation
Adds key as optional parameter for notification
Implemented getAwaitingTransactions to get the transactions that needs to be confirmed by the current user
Not fetchTransactions action also dispatch a notification for awaiting transactions
Improved performance of routes/safe/container/index to avoid re-rendering

* Removes notification logic on fetchTransactions
Adds notificationsMiddleware

* Moves fetchTransaction to container

* Removes unused param on fetchTransactions

* Fixs null safe check

* Fixs middleware declaration

* Removes lodash

* Changes cancelled transaction detection logic

* Feature #122: Multisig migration (#315)

* Adds query-string package.json
Parses query string on open layout

* Implements load all the values on openSafe view from param querys

* Adds query params validation

* Moves query parse logic to open.jsx

* Changes default no metamask component on open page

* Replaces global isNaN

* Fix threshold parsing validation

* Updates the welcome component with new verbiage for open

* Renames isOpenSafe to isOldMultisigMigration

* Merge branch 'development' of https://github.com/gnosis/safe-react into 122-multisig-migration

# Conflicts:
#	src/routes/open/components/Layout.jsx

* Merge branch 'development' of https://github.com/gnosis/safe-react into 159-pending-transactions

# Conflicts:
#	src/routes/safe/components/Transactions/index.jsx
#	yarn.lock

* set anonymizeIp to true (#335)

* Feature #180: Predict transaction nonce (#293)

* Dep bump

* Fetch transactions when safe view is mounted

* eslint fix

* Calculate new tx nonce from latest tx in service

* Fix tx cancellation, allow passing nonce to createTransaction

* dep bump

* Refactor createTransaction/processTransaction to use object as argument

* Adopting transactions table to new send tx flow with predicted nonces

* dep bump, disable esModule in file-loader options after new v5 release

* Don't show older tx annotation for already executed txs

* sort tx by nonce

* get new safe nonce after tx execution

* Bugfixes

* remove whitespace for showOlderTxAnnotation

* Feature #329: Rename to Multisig (#334)

* Rename to Multisig

* migration text fix

* replace safe for teams with multisig

* Fixs race condition (#341)

Fixs typo

* (Feature) Incoming transactions (#333)

* Add `blockNumber` to transactions model

* Create `incomingTransaction` node in store and load it along with `transactions`

* Add incoming transfers to the Transactions table

* Rename `transactionHash` to `executionTxHash` for better incoming/outgoing txs unification in Transactions table

* Add incoming transactions details

* Add transaction type icon in table row

* Add snackbar notification for incoming txs

* Make incoming transaction snackbar to show on any tab

* Use makeStyles hooks

* Fix incoming amounts conversion from wei

* Make concurrent promise calls

* Use date to calculate transactions ids

* Prevent repeating messages

- also move logic to display snack bar into the notifications middleware

* Merge transactions and incomingTxs to the transactions selector

* Show 'Multiple incoming transfers' if they are more than 3

* Prevent incoming transactions snack bar for first-timer users

* Set ID as the default order

* Use constant for _incoming_ type

* Feature #154: Fiat Balances (#290)

* Adds DropdownCurrency
Adds redux store for currencyValues
Adds Value column on the assets table
Adds mocked currency values

* (add) base currency dropdown

* (add) dropdown styles

* Refactors data fetching of the balances list
Now uses the endpoint

* Fix column value styling

* Adds support for ECB currency values

* Fixs list overflow

* Changes endpoint url
Adds decimals for balance values

* (fix) remove inline style

* (add) currencies dropdown search field

* (fix) list items' hover color

* Implements filter search

* Fix warning on dropdown template

* Saves selected currency in localStorage

* Remove spaces on curly braces
Add alt
Renames rowItem to cellItem
Improves fetchCurrenciesRates handling

* Removes withMutations

* Removes middleware
Export style to another file for dropdownCurrency

* Adds classNames

* Fix incomming transactions fetching (#346)

* Feature: Activate fortmatic (#339)

* Add fortmatic integration to web3connect

* add fortmatic

* Safe open form improvements: limit calling initContracts to 1 time

* update .env.example

* Feature #336: Confirmation required notification for non-owners fix (#338)

* Refactors grantedSelector with isUserOwner function
Checks if the user is owner of the safe before sending notification

* Adds safeParamAddressFromStateSelector
Refactors notificationsMiddleware with new selector

* Remove old size check

* safe notifications middleware fixes

* add apt-get update to travis yml

* (Fix) Incoming transactions inline-styles (#344)

* Remove inline styles

* Replace ternary with logical && operator

* use cn as shortcut for classnames

* Makes minMaxLength 2 to AddCustomToken (#363)

* Fixs ETH display on balances list (#360)

* Bug #348: Safelist entries get removed (#358)

* Fix balances saved to localStorage not in format [tokenAdd, balance] but [balance]

* Updates localStorage version value

* Use submission instead of execution date to sort outgoing txs (#364)

* Feature #190: Sidebar improvements (#347)

* Change icons
Adds checked icon

* Adds safeParamAddressFromStateSelector for get current safe selected
Implements check icon on sidebar

* Remove overflow on sidebar
Start alignments

* Removes headerPlaceholder

* Improves header

* Improves header

* Fix header style

* use sameAddress function to check address eqaulity when fetching transactions (#365)

* Bug #352: Owner shown multiple times (#367)

* Ensure lowercased string comparison for owners' addresses

* Use `sameAddress` for addresses comparison

* Use transaction value as a string (#369)

* Update isTokenTransfer to use value as a string

* Rename error message

* Update dependencies

* Refactor

* Fix alternative token abi and token address for incoming transactions (#373)

* Bug #313: Payload breaks ui (#371)

* Makes minMaxLength 2 to AddCustomToken

* Fix styling

* Fix typo

* Feature #200: Show version number (#370)

* Add `dotenv-expand` as a dependency

* Add app version to sidebar

* Add hardcoded latest safe version to env variables

* Add `semver` to compare current vs latest version

* Add Safe version to Safe Details

* Adjustments in version number

* Fix transaction description value (#377)

* Fix transaction description value

* Remove duplicated symbols

* fix checkAndUpdateSafe logic (#379)

* Update .env.example

* update package json version

* update package json version

* Fix app version in side bar

* add REACT_APP_APP_VERSION global env var

* add react_app_version to build script

* remove react_app_app_version from build-mainnet

* Adds basic addressBook table

* Implements redux and localStorage for addressBook

* Disables loading page on empty address book

* Fix address display

* Adds logic for add entry

* Implements update localStorage and redux state on new entry created

* Updates default row per page

* Renames createEntry modal to createEditEntryModal
Implements edit entry logic

* Fix save/edit entry notification verbiage

* Implements delete entry

* Finish delete entry implementation
Moves update/remove/add entry logic to redux

* Updates defaultRowsPerPage to 25

* Implements sendFunds modal within addressBook
Refactors safeSelector with safeParamAddressFromStateSelector

* Removes unused addressBook container

* Removes unused pops
Renames AddressBookEntry with AddressBookEntry

* Replaces updateAddressBook with addAddressBook

* Fix duplicated entry validation

* Fix edit entry

* Refactor redux addressBook, now saves the data for each safe

* Refactors create/edit/delete entry, now the addressbook is global for all the safes

* Refactor, uses immutable

* Adds variable for hideBorderBottom

* Adds disabled bin icon
Disable the delete button for owner entries

* Adds getAddressBookListSelector

* Simplifies validator logic

* Makes AddressBookEntry an immutable js list

* Fix conflicts in yarn.lock

Co-authored-by: Germán Martínez <germartinez@users.noreply.github.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* Add trailing `/` to urls (#433)

* Fix #349:  Cancel btn grey (#438)

* Development (#378)

* Adds cookie permissions to localStorage/redux state

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Let the user re-open the cookie banner

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Feature #169: Intercom (#301)

* Implements intercom
Adds REACT_APP_INTERCOM_ID_MAINNET and REACT_APP_INTERCOM_ID_RINKEBY env vars

* Adds .env.example

* Adds intercom env vars

* Updates env vars
Replaces "rinkeby" and "mainnet" with "non-production" and "production"

* Now loads intercom after the user accepted the analytics

* Add env variable for production intercom id

* Update .env.example

* Removes react-intercom
Fixs getIntercomId with default dev appID
Now loads intercom as script

* Renegerate flow-types

* Remove 'Hide zero balances' (#310)

* Use medium font size for 'select an asset' label (#312)

* Feature #272: Google Analytics (#299)

* Adds google analytics tracking for every route

* Adds cookies acceptance check before tracking

* Fix react-ga dependency

* Fix cookieStore deletion

* Merge with #189-cookie-banner

* Fixs react ga version
Refactored HOC with hooks

* Fix TYPO

* Fix path for cookies utils

* Fix imports

* remove flow type definition for polish

* Add GA ID log

* Fix load GA After cookies acceptance

* Feature #224: Activate tokens automatically (#300)

* Replace 'Manage Tokens' with 'Manage List'

* prevent 301 redirects

* Add `BLACKLISTED_TOKENS` key to persist through immortal

* Add store/action to extract _activate tokens by its balance_

- keeps already activated tokens
- discards blacklisted tokens
- adds tokens whose vales are bigger than zero and are not blacklisted

* Add `blacklistedTokens` list to safe's store

* Display activeTokensByBalance in 'Balances' screen

* Enable token's blacklisting functionality in Tokens List

* Retrieve balance from API

* Rename action to `activateTokensByBalance`

* Fix linting errors

- line too long
- required return

* Do not persist a separate list into `BLACKLISTED_TOKENS`

* Typo fix (#326)

* Fix security vulnerability: Remove uglifyjs, use terser plugin (#327)

* Remove uglifyjs, use terser plugin

* fix css-loader config

* Feature #256: Sticky header (#308)

* Add sticky header

* Remove react-headroom, set position to fixed for header

* Regenerate yarn lock

* Remove unused headroom style from root.scss

* Pull from dev, conflict fixes

* Update welcome text (#323)

* Feature #137: Tx list improvements (#222)

* Fix swapOwners threshold displayed as hex in tx list

* Refactor spinner in empty table

* Fix number of rows per page in table pagination

* Add use of EtherscanLink component

* Set short version of strings in tx list

* Adjust styles in tx list

* Add more styles to table

* WIP

* An attempt to fix #204 by showing UNKNOWN instead of failed to fetch token symbol

* Table pagination style fixes

* Show confirm transaction button in owner list

* Update dependencies

* Add confirmation icons to owner list in tx list

* exclude unneeded stuff from travis.yml

* Adds cookie permissions to localStorage/redux state

* Update dependencies

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Increase TO_EXP for bignumber.js

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Mock Safe creation transaction

* Format code

* Fix break statement

* Remove deployment of storybook

* Let the user re-open the cookie banner

* Update tx status messages and visual confirmation progress

* Fix svg in tx confirmation progress

* Add styles to tx type in tx list

* Replace nonce in tx list with tx id

* Update opacity of cancelled tx

* Fix short version of address

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Fix styles in tx list

* Add Pending status in tx description

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* Set 25 rows per page in tx list by default

* Align tx table

* Adjust tx table and tx details borders

* Fix fetching transactions to show Safe creation tx alone

* Fix failed Safe creation transaction

* Add styles to tx data

* Refactor and fix owner list in transaction

* Refactor use of theme variables

* Remove storybook files

* Update dependencies

* Fix warnings

* Fix dependencies

* Update file-loader config

* Fix owner colors in the tx confirmation progress

* Fix transaction type icon height

* Tx list adjustments

* Update readme

* (Feature) Etherscan button icon (#331)

* (add) new open on etherscan button icon

* (remove) unused asset

* (fix) icon background

* Feature #239: Replace early access label with network label (#311)

* Remove early access label

* Revert "Remove early access label"

This reverts commit 34682f0f6d9c1974a6e45c2a31358864931d9c1e.

* Replace early access label with network label

* Capitalzie first letter of the network name

* Adds threshold update on checkAndUpdateSafe (#320)

* Feature #159: Pending transaction that requires user confirmation (#330)

* Creates a new notification: waitingConfirmation
Adds key as optional parameter for notification
Implemented getAwaitingTransactions to get the transactions that needs to be confirmed by the current user
Not fetchTransactions action also dispatch a notification for awaiting transactions
Improved performance of routes/safe/container/index to avoid re-rendering

* Removes notification logic on fetchTransactions
Adds notificationsMiddleware

* Moves fetchTransaction to container

* Removes unused param on fetchTransactions

* Fixs null safe check

* Fixs middleware declaration

* Removes lodash

* Changes cancelled transaction detection logic

* Feature #122: Multisig migration (#315)

* Adds query-string package.json
Parses query string on open layout

* Implements load all the values on openSafe view from param querys

* Adds query params validation

* Moves query parse logic to open.jsx

* Changes default no metamask component on open page

* Replaces global isNaN

* Fix threshold parsing validation

* Updates the welcome component with new verbiage for open

* Renames isOpenSafe to isOldMultisigMigration

* Merge branch 'development' of https://github.com/gnosis/safe-react into 122-multisig-migration

# Conflicts:
#	src/routes/open/components/Layout.jsx

* Merge branch 'development' of https://github.com/gnosis/safe-react into 159-pending-transactions

# Conflicts:
#	src/routes/safe/components/Transactions/index.jsx
#	yarn.lock

* set anonymizeIp to true (#335)

* Feature #180: Predict transaction nonce (#293)

* Dep bump

* Fetch transactions when safe view is mounted

* eslint fix

* Calculate new tx nonce from latest tx in service

* Fix tx cancellation, allow passing nonce to createTransaction

* dep bump

* Refactor createTransaction/processTransaction to use object as argument

* Adopting transactions table to new send tx flow with predicted nonces

* dep bump, disable esModule in file-loader options after new v5 release

* Don't show older tx annotation for already executed txs

* sort tx by nonce

* get new safe nonce after tx execution

* Bugfixes

* remove whitespace for showOlderTxAnnotation

* Feature #329: Rename to Multisig (#334)

* Rename to Multisig

* migration text fix

* replace safe for teams with multisig

* Fixs race condition (#341)

Fixs typo

* (Feature) Incoming transactions (#333)

* Add `blockNumber` to transactions model

* Create `incomingTransaction` node in store and load it along with `transactions`

* Add incoming transfers to the Transactions table

* Rename `transactionHash` to `executionTxHash` for better incoming/outgoing txs unification in Transactions table

* Add incoming transactions details

* Add transaction type icon in table row

* Add snackbar notification for incoming txs

* Make incoming transaction snackbar to show on any tab

* Use makeStyles hooks

* Fix incoming amounts conversion from wei

* Make concurrent promise calls

* Use date to calculate transactions ids

* Prevent repeating messages

- also move logic to display snack bar into the notifications middleware

* Merge transactions and incomingTxs to the transactions selector

* Show 'Multiple incoming transfers' if they are more than 3

* Prevent incoming transactions snack bar for first-timer users

* Set ID as the default order

* Use constant for _incoming_ type

* Feature #154: Fiat Balances (#290)

* Adds DropdownCurrency
Adds redux store for currencyValues
Adds Value column on the assets table
Adds mocked currency values

* (add) base currency dropdown

* (add) dropdown styles

* Refactors data fetching of the balances list
Now uses the endpoint

* Fix column value styling

* Adds support for ECB currency values

* Fixs list overflow

* Changes endpoint url
Adds decimals for balance values

* (fix) remove inline style

* (add) currencies dropdown search field

* (fix) list items' hover color

* Implements filter search

* Fix warning on dropdown template

* Saves selected currency in localStorage

* Remove spaces on curly braces
Add alt
Renames rowItem to cellItem
Improves fetchCurrenciesRates handling

* Removes withMutations

* Removes middleware
Export style to another file for dropdownCurrency

* Adds classNames

* Fix incomming transactions fetching (#346)

* Feature: Activate fortmatic (#339)

* Add fortmatic integration to web3connect

* add fortmatic

* Safe open form improvements: limit calling initContracts to 1 time

* update .env.example

* Feature #336: Confirmation required notification for non-owners fix (#338)

* Refactors grantedSelector with isUserOwner function
Checks if the user is owner of the safe before sending notification

* Adds safeParamAddressFromStateSelector
Refactors notificationsMiddleware with new selector

* Remove old size check

* safe notifications middleware fixes

* add apt-get update to travis yml

* (Fix) Incoming transactions inline-styles (#344)

* Remove inline styles

* Replace ternary with logical && operator

* use cn as shortcut for classnames

* Makes minMaxLength 2 to AddCustomToken (#363)

* Fixs ETH display on balances list (#360)

* Bug #348: Safelist entries get removed (#358)

* Fix balances saved to localStorage not in format [tokenAdd, balance] but [balance]

* Updates localStorage version value

* Use submission instead of execution date to sort outgoing txs (#364)

* Feature #190: Sidebar improvements (#347)

* Change icons
Adds checked icon

* Adds safeParamAddressFromStateSelector for get current safe selected
Implements check icon on sidebar

* Remove overflow on sidebar
Start alignments

* Removes headerPlaceholder

* Improves header

* Improves header

* Fix header style

* use sameAddress function to check address eqaulity when fetching transactions (#365)

* Bug #352: Owner shown multiple times (#367)

* Ensure lowercased string comparison for owners' addresses

* Use `sameAddress` for addresses comparison

* Use transaction value as a string (#369)

* Update isTokenTransfer to use value as a string

* Rename error message

* Update dependencies

* Refactor

* Fix alternative token abi and token address for incoming transactions (#373)

* Bug #313: Payload breaks ui (#371)

* Makes minMaxLength 2 to AddCustomToken

* Fix styling

* Fix typo

* Feature #200: Show version number (#370)

* Add `dotenv-expand` as a dependency

* Add app version to sidebar

* Add hardcoded latest safe version to env variables

* Add `semver` to compare current vs latest version

* Add Safe version to Safe Details

* Adjustments in version number

* Fix transaction description value (#377)

* Fix transaction description value

* Remove duplicated symbols

* fix checkAndUpdateSafe logic (#379)

* Update .env.example

* update package json version

* update package json version

* Fix app version in side bar

* add REACT_APP_APP_VERSION global env var

* add react_app_version to build script

* remove react_app_app_version from build-mainnet

* Fix hover btn color

* Make hover status on danger buttons global

Co-authored-by: Germán Martínez <germartinez@users.noreply.github.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>

* #386: Addressbook transaction details (#407)

* Development (#378)

* Adds cookie permissions to localStorage/redux state

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Let the user re-open the cookie banner

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Feature #169: Intercom (#301)

* Implements intercom
Adds REACT_APP_INTERCOM_ID_MAINNET and REACT_APP_INTERCOM_ID_RINKEBY env vars

* Adds .env.example

* Adds intercom env vars

* Updates env vars
Replaces "rinkeby" and "mainnet" with "non-production" and "production"

* Now loads intercom after the user accepted the analytics

* Add env variable for production intercom id

* Update .env.example

* Removes react-intercom
Fixs getIntercomId with default dev appID
Now loads intercom as script

* Renegerate flow-types

* Remove 'Hide zero balances' (#310)

* Use medium font size for 'select an asset' label (#312)

* Feature #272: Google Analytics (#299)

* Adds google analytics tracking for every route

* Adds cookies acceptance check before tracking

* Fix react-ga dependency

* Fix cookieStore deletion

* Merge with #189-cookie-banner

* Fixs react ga version
Refactored HOC with hooks

* Fix TYPO

* Fix path for cookies utils

* Fix imports

* remove flow type definition for polish

* Add GA ID log

* Fix load GA After cookies acceptance

* Feature #224: Activate tokens automatically (#300)

* Replace 'Manage Tokens' with 'Manage List'

* prevent 301 redirects

* Add `BLACKLISTED_TOKENS` key to persist through immortal

* Add store/action to extract _activate tokens by its balance_

- keeps already activated tokens
- discards blacklisted tokens
- adds tokens whose vales are bigger than zero and are not blacklisted

* Add `blacklistedTokens` list to safe's store

* Display activeTokensByBalance in 'Balances' screen

* Enable token's blacklisting functionality in Tokens List

* Retrieve balance from API

* Rename action to `activateTokensByBalance`

* Fix linting errors

- line too long
- required return

* Do not persist a separate list into `BLACKLISTED_TOKENS`

* Typo fix (#326)

* Fix security vulnerability: Remove uglifyjs, use terser plugin (#327)

* Remove uglifyjs, use terser plugin

* fix css-loader config

* Feature #256: Sticky header (#308)

* Add sticky header

* Remove react-headroom, set position to fixed for header

* Regenerate yarn lock

* Remove unused headroom style from root.scss

* Pull from dev, conflict fixes

* Update welcome text (#323)

* Feature #137: Tx list improvements (#222)

* Fix swapOwners threshold displayed as hex in tx list

* Refactor spinner in empty table

* Fix number of rows per page in table pagination

* Add use of EtherscanLink component

* Set short version of strings in tx list

* Adjust styles in tx list

* Add more styles to table

* WIP

* An attempt to fix #204 by showing UNKNOWN instead of failed to fetch token symbol

* Table pagination style fixes

* Show confirm transaction button in owner list

* Update dependencies

* Add confirmation icons to owner list in tx list

* exclude unneeded stuff from travis.yml

* Adds cookie permissions to localStorage/redux state

* Update dependencies

* Adds action

* Adds files to git

* (fix) linting issues

* (update) flow-typed

* (update) .eslint and .flowconfig

* (add) cookie banner

* Finish cookie banner implementation

* (Add) checkbox's disabled style.

* Removes redux for cookiesStorage

* Fix cookieStore deletion

* Increase TO_EXP for bignumber.js

* Fixs cookies acceptance

* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages

* (fix) added correct polished library and import, updated flow-typed

* (update) removed polish flow type, added js-cookie flow type

* Add link to cookie policy, use generic links for legal docs

* Remove link to cookie policy from sidebar, link cookie policy in the banner

* Mock Safe creation transaction

* Format code

* Fix break statement

* Remove deployment of storybook

* Let the user re-open the cookie banner

* Update tx status messages and visual confirmation progress

* Fix svg in tx confirmation progress

* Add styles to tx type in tx list

* Replace nonce in tx list with tx id

* Update opacity of cancelled tx

* Fix short version of address

* remove withMutations from cookies reducer, move utils/cookies to logic/cookies

* Now the sidebar closes when the cookie banner is toggled

* Fix styles in tx list

* Add Pending status in tx description

* (remove) unused library

* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie

* Set 25 rows per page in tx list by default

* Align tx table

* Adjust tx table and tx details borders

* Fix fetching transactions to show Safe creation tx alone

* Fix failed Safe creation transaction

* Add styles to tx data

* Refactor and fix owner list in transaction

* Refactor use of theme variables

* Remove storybook files

* Update dependencies

* Fix warnings

* Fix dependencies

* Update file-loader config

* Fix owner colors in the tx confirmation progress

* Fix transaction type icon height

* Tx list adjustments

* Update readme

* (Feature) Etherscan button icon (#331)

* (add) new open on etherscan button icon

* (remove) unused asset

* (fix) icon background

* Feature #239: Replace early access label with network label (#311)

* Remove early access label

* Revert "Remove early access label"

…

Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Paul Cowgill <pauldavidcowgill@gmail.com>
Co-authored-by: Germán Martínez <germartinez@users.noreply.github.com>
Co-authored-by: Uxío <Uxio0@users.noreply.github.com>
2020-02-10 20:22:36 +04:00
Gabriel Rodríguez Alsina 165a088b1b
(Fix) Basic mobile responsiveness (#532)
* (fix) header mobile version

* (fix) send / receive responsive

* (fix) footer overflowing

* (fix) responsive settings menu

* (fix) scrolling menu tabs

* (fix) responsive tables

* (fix) a few modal windows' responsive issues

* (remove) unused files

* (fix) sidebar responsive

* (fix) load safe responsive

* (fix) create safe responsiveness

* (fix) text wrap

* (fix) remove modal responsiveness

* (fix) name wrap

* (update) yarn.lock
2020-02-06 12:40:29 -03:00
Agustin Pane 16b3dc0f2a
#533 Checksum addresses request (#538)
* Sets the default safe address to checksum version

* Sets the default safe address to checksum version
2020-02-06 17:40:25 +04:00
Mikhail Mikheev 2f456258e4 conflict fixes 2020-02-05 17:57:58 +04:00
Gabriel Rodríguez Alsina 05e580a6bf
(add) Tabs' Icons (#507)
* (add) tab's icons

* (add) svg icons

* (add) script to format staged files only

* (change) icon's names

* (fix) tabs' icons

* (simplfy) css

* (update) menu's icons

* (fix) change owner's badge styles

* (fix) menu item's text

* (fix) menu items' padding

* (fix) badge color

* (fix) menu badge
2020-02-04 17:49:52 -03:00
fernandomg b3d386406c Merge branch 'development'
# Conflicts:
#	package.json
#	src/components/ConnectButton/index.jsx
#	src/components/Sidebar/LegalLinks.jsx
#	src/routes/safe/components/Settings/SafeDetails/index.jsx
#	src/routes/safe/components/Transactions/TxsTable/ExpandedTx/TxDescription/index.jsx
#	src/routes/safe/container/actions.js
#	src/routes/safe/container/index.jsx
#	src/routes/safe/container/selector.js
#	src/routes/safe/store/actions/createTransaction.js
#	src/routes/safe/store/actions/fetchSafe.js
#	src/store/index.js
#	yarn.lock
2020-02-04 13:55:45 -03:00