Commit Graph

2500 Commits

Author SHA1 Message Date
Mikhail Mikheev 4c92fcbcde Merge branch 'dont-fetch-ownername-in-fetchTransactions' of github.com:gnosis/safe-react into 536-notifications-status-labels-sync 2020-04-24 17:35:34 +04:00
Mikhail Mikheev c45ae160ff pull from dev 2020-04-24 17:33:26 +04:00
Mikhail Mikheev 46b30c77f6 Merge branch 'fix/txTable-outgoingTx' of github.com:gnosis/safe-react into dont-fetch-ownername-in-fetchTransactions 2020-04-24 16:33:41 +04:00
Mikhail Mikheev 0b40190dfc dep buump 2020-04-24 16:33:02 +04:00
nicolas 162ff84108
Fix (#777) 2020-04-24 09:32:19 -03:00
Mikhail Mikheev 82decf54aa cherry-pick wc bridge change, bump package.json 2020-04-24 12:52:29 +04:00
Mati Dastugue da2fa8651c Update dashboard prop 2020-04-23 17:22:25 -03:00
Mati Dastugue 97800ffcea Added support for wallets dashboard 2020-04-23 15:09:39 -03:00
fernandomg 55eee73ea7 fix: proper amount display for tx in TxTable 2020-04-23 12:48:19 -03:00
fernandomg cdcdd07b23 fix: execute decodeParams for all sendTokenTxs 2020-04-23 12:47:19 -03:00
fernandomg c887c71b05 fix: batchRequest params order 2020-04-23 12:45:37 -03:00
Mikhail Mikheev b756ee66f1 Merge branch 'development' of github.com:gnosis/safe-react into dont-fetch-ownername-in-fetchTransactions 2020-04-23 18:25:05 +04:00
Mikhail Mikheev 2acef6993c remove extending transaction model with ownerName in extendedTransactionsSelector 2020-04-23 18:22:30 +04:00
Agustin Pane 9d784922f2
Feature #587 - App performance improvement (#738)
* Refactor Balances to functional component
Removes Balances props in Layout.jsx

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

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

* Adds new selectors: safeNameSelector, safeNeedsUpdateSelector, safeCurrentVersionSelector

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

* Removes unused redux connect

* Adds safeEthBalanceSelector

* Removes all the props from layout to settings

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

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

* Loads tabs components using react suspense

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

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

* Fixs load addressbook action

* Replaces safe with owners in manage owners

* Improves buildSafe promises calls
Improves the loadStorage calls

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

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

* Reduce the polling rate for fetching transactions

* Removes unused actions.js
Removes unused selector props

* Fixes owners column selector usage

* Fixes processTransaction usage

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

* Fix lint error

* Fix edit addressbook entry

* Fixs show send coins modal

* feature: batchRequest for incoming transactions

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

* Adds ensureOnceAsync for getGnosisSafeInstanceAt
Adds batch request for safe params

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

* Fixs ensureOnce/memoization

* refactor: make a generic generateBatchRequest method

Create a generic method to easily build web3 batch requests

* refactor: use `generateBatchRequest` in `getTokensBalances`

* Removes .toJS in edit entry

* Removes web3 from sendTransactions
Removes pascal case FetchTokens

* Replaces /layout import

* Replaces CheckForUpdates component with useCheckForUpdates hook

* Makes FetchTokens a hook

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

* Replaces INITIAL_STATUS with INITIAL_STATE

* Replaces regex
Adds spaces before return

* Adds wrapInSuspense

* Runs prettier

* Makes checkAndUpdateSafe use generateBatchRequests

* Makes checkAndUpdateSafe use generateBatchRequests

* Fixs check for updates with null address

* Fixs transaction details getNameFromAddressBook

* Fixes zIndex between cookies banner and transaction details

* fix: cast returned values to number

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

* Fix replace owner name

* Fix race condition with adbk load

* Fixes replaces owner

* Fixs apps

* Moved hooks into own folder

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

* Moves useLoadStore to safes/index

* Revert loadStore place change

* Fixes bug with fetchEtherBalance that causes updateSafe to be called

* remove useLoadStore, add useAnalytics hook

* remove React.memo from SafeView

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

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

* Removes unnecessary setSafeLoaded

* Removes unnecessary safeLoaded

* fix: Coins values and balances

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

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

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

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

* fix: Balance screen

Collectibles weren't loading when clicking on the link

Also, refactored setState usage, to properly update current state

* fix: featuresEnabled undefined

* fix: add/activate newly received tokens

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

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

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

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

* fix: prefetch txs data

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

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

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

* enhancement: fetch tokens when loading safe

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

* fix: load collectibles when switch to collectibles screen

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

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

* fix: fetch only if safe is ready

Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-04-23 11:18:06 -03:00
Mikhail Mikheev cff53e76c9 fix selector 2020-04-23 18:16:10 +04:00
Uxio Fuentefria c0422bd7d1 Rename incoming-transactions url to incoming-transfers 2020-04-23 18:15:20 +04:00
Mikhail Mikheev 0e9b6d2cc1 fix getNameFromAddressBook selector & selector calls 2020-04-23 18:14:49 +04:00
Mikhail Mikheev 171528d418 refactor transaction confirmation owner property 2020-04-23 17:48:09 +04:00
Mikhail Mikheev fe2e21d2d4 fix project compilation 2020-04-23 15:49:14 +04:00
Mikhail Mikheev c2ef1f3b50 pull from dev 2020-04-23 15:10:49 +04:00
Agustín Longoni 85f65f6216
Merge pull request #791 from gnosis/issue-773
(Enhancement) #773 Scroll bar in tabs that are not necessary
2020-04-22 17:55:09 -03:00
Mikhail Mikheev 38eb8ab5f0
Add gnosis wc bridge to onboard.js wallets options array (#790) 2020-04-22 23:03:15 +04:00
Agustín Longoni 124a91783e
fix error on Wrapper 2020-04-22 14:03:34 -03:00
Agustín Longoni c5a1e40216
Merge branch 'development' into issue-773 2020-04-22 13:03:04 -03:00
Mikhail Mikheev 71e4db1345 moving transaction related actions to transactions folder WIP 2020-04-22 18:38:58 +04:00
Mikhail Mikheev db37333f6f move whenfieldchanges to forms components 2020-04-22 18:24:41 +04:00
David Albela Pérez aee2a1fefb
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
2020-04-22 16:42:08 +04:00
David Albela Pérez 66dc95411d
Add region to travis CI develop (#787)
Enable region for s3 provider to allow upload development environment to different S3 regions
2020-04-22 13:17:22 +02:00
Agustín Longoni 035882e0c7 fix scroll and fix margin layout 2020-04-22 07:44:05 -03:00
nicolas 8ba0e18940
Manage Apps (#765)
* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

* ManageApps partial implementation

* update safe-react-components

* changes

* apps validator

* fix providedBy

* TextField in addApp

* fix checkbox error message

* validation

* adding app

* Manage Apps

* fix modal width

* update package.json

* update netlify url

* fix modal widh

* Set layout to Non-owners allowed error

* some fixes

* Apply suggestions from code review

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

* review changes

* fix condition

* Legal Disclaimer

* Better error message

* update yarn.lock

* Error message

* review fixes

* upgrade safe-react-components

* show for all environments

* Disclaimer changes

* review changes

* fix re-render

* visual changes

Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
2020-04-21 17:26:41 -03:00
Mikhail Mikheev db5c69be59 optimistic updates in createTransaction.js wip 2020-04-21 15:29:42 +04:00
Mikhail Mikheev d2f80ead61 Sync notifications and state: createTransaction WIP 2020-04-20 18:27:26 +04:00
Mikhail Mikheev 9d95198a20 Merge branch 'development' of github.com:gnosis/safe-react into 536-notifications-status-labels-sync 2020-04-20 15:20:54 +04:00
Mikhail Mikheev 83b60a60c1 dep bump 2020-04-20 15:19:19 +04:00
Mikhail Mikheev 204edd635d
Feature #322: Set safeTxGas for newly created transactions (#752)
* Set safeTxGas for newly created transactions

* extending estimation for nested calls WIP

* messing up things to implement safeTxGas estimation

* simplifying base gas calculations

* remove eslint disable

* messing things up to make things work

* bring estimateData back

* pass payload to requiredTxGas

* pass esimateData to estimateDataGasCosts

* remove console log

* use batch requests to estimate safeTxGas

* use const for txGasEstimation

* check the response in request simultion

* sidebar fix

* remove for loop
2020-04-20 14:54:09 +04:00
Mati Dastugue 2e5d1564a2
Merge pull request #774 from gnosis/feature/release-script
Create release.yml
2020-04-16 12:47:38 -03:00
Mati Dastugue 7da0e94fa9
Create release.yml
Created script for building desktop app
2020-04-16 12:38:27 -03:00
Mikhail Mikheev 3627fb2e81 wop wop 2020-04-16 18:41:00 +04:00
Mikhail Mikheev 83436e37b2
v1.9.5 (#771)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

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

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

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

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

fixes #678

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

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

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

* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX

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

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

fixes #573

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

* Replaces decimals from backend with decimals from blockchain

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

* Fixs missing symbol

* Add description comment

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

* Added unilogin provier + support for legacy path

* Bump onboardjs version

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

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
2020-04-16 15:11:24 +04:00
Mikhail Mikheev 4956f0e47e Merge branch 'master' of github.com:gnosis/safe-react into development 2020-04-16 12:36:55 +04:00
Mikhail Mikheev dd85d4a519
fallback to displaying custom tx when we fail to fetch token info (#767) 2020-04-16 12:34:35 +04:00
Mati Dastugue a18513a0a5
Added Unilogin provider + support for legacy paths (#719)
* Added unilogin provier + support for legacy path

* Bump onboardjs version
2020-04-16 12:15:03 +04:00
Agustin Pane 6bdbcd234e
#751 fix - Replaces decimals from backend with decimals from blockchain (#755)
* Replaces decimals from backend with decimals from blockchain

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

* Fixs missing symbol

* Add description comment
2020-04-14 16:03:14 -03:00
Fernando c40fa07696
(Fix) If backend returns `null` for addresses the Transaction ca… (#718)
This tends to solve any possible issue that there may be in the tx execution for the `gasToken` and `refundReceiver` nullish values.

fixes #573
2020-04-13 11:37:08 -03:00
nicolas 19dc9332df
Issue-595: Apps config from Manifest (#715)
* getting apps info from its manifest

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

* fixes

* navigate to TX Tab with an app makes a TX
2020-04-09 12:59:49 -03:00
Mikhail Mikheev 4aeb5df55b
v1.9.4 (#754)
* Bug: Invalid V in signature with eth_sign (#728)

* Fix invalid V with metamask/ledger

* DONT FORGET TO REVERT BEFORE MERGING: test deployment

* DONT FORGET TO REVERT BEFORE MERGING 2: test deployment

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

This reverts commit 8331f2a78f7fc8f53eb893899f16edd8238c68ff.

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

This reverts commit 03b81e31820ce4fe078a7131c2f0caa2af4870ac.

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

* cache every used provider, not only injected one

* package json update

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

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

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

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

* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file

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

* fix: change the order of the upgrade methods lookup

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

* fix: contract upgrade version lookup

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

* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard

* update package json (#743)

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

* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names

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

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

fixes #678

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

* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

* bump package json version to 1.9.4

Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-04-09 18:21:52 +04:00
Mikhail Mikheev 4bfe937761 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-04-09 18:03:29 +04:00
Mikhail Mikheev b1f50c7f3a
Bug #747: Don't use getLastTxNonce to fetch safe nonce (#750)
* don't use getLastTxNonce to fetch safe nonce

* fetch safe nonce in checkAndUpdateSafe

* checkAndUpdateSafe refactor

* remove nonce update logic from UPDATE_SAFE reducer

* handle the case when localSafe returns undefined

* handle the case when localSafe returns undefined in buildTransactionFrom

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

fixes #678
2020-04-09 12:45:29 +04:00
Fernando 1ac13c63dd
(Fix) Properly decode threshold value in tx details (#749)
* fix: Display new threshold value when changing its value

There was a typo for the `changeThreshold` action

fixes #746

* refactor: use a constant for safe methods names
2020-04-09 12:45:19 +04:00