* dep bump, enable strictNullChecks ts compiler option
* remove unused imports
* nullchecks errors wip
* fix clipboard func type errors
* fix send funds validation
* Update style load in ThresholdSettings
* Fix isValidAddress default state for SendCollectible
* fix OwnersColumn return type
* fix extractUsefulMethods typing
* Bug: incoming transactions do not load if it fails to fetch gas for a transaction (#1321)
* check if gas returned values are valid when loading token info for incoming tx
* Fix generateBatchRequests
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
(cherry picked from commit 372d27f5a6)
* Revert "Revert "Tech debt 1265: Enable strictNullChecks TS compiler option (#1301)" (#1335)"
This reverts commit 43bc4984b8.
* Fix safe clean load
Fix transaction nonce get
* Fix issue adding owners again after reloading the page
* Add viewedSafes correctly to current session
* Add typing and reduce dependency with immutable
* Rename SerializedSessionState to CurrentSessionState
* Remove immutable from currentSession
* Use Dispatch type defined using ThunkDispatch
* Remove if as parameter should always be defined
* Fix test typo issues
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* Set desktop app build on workflow_dispatch
* Update workflow_dispatch
* Add yarn cache to build desktop app
Upgrade electron to latest compatible version
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* Bump new onboard.js version
* bump new version
* Clean unnecessary dependencies from yarn.lock file
* Bump dependencies without breaking changes
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Adding storybook
* new layout components
* add preview body
* add styles
* extract walletInfo to a separated component
* remove unused component
* New Layout componentes refactor
* Return type in Root
* change story name
* adding back OpenHoc
* sort import
* fix margins
* split layout
* Move Layout related components to /components/SidebarLayout
* Adding new layout for real
* Some changes and refactor
* Move Modals from safe to sidebar
* move safeAddress logic from safe to sidebar
* move safe container from components
* List refactor
* sidebar navigation
* selected item
* list selected example
* add styles
* add text component to new tx button
* Sidebar without walletInfo
* fix footer and body margins
* add logo Safe Multisig
* update safe-react-components
* List colors and List Icon
* fix subItem
* update safe-react-components
* fix logo margin, add notConnected icon and badge Read Only
* fix merge problems
* add sidebar styles and icon notConnected
* fix readOnly
* fix QR tooltip info
* add Help Center link and fix margins
* Remove 'No safe loaded' text
* review changes
* fix import
* fix Help center margin
* add styles to address
* replace empty div with FlexSpacer component
* rename Sidebar by SafeListSidebar
* fix load and create safe position (top-left)
* Add comment to FlexSpacer
* fix Title margin Safe Creation Progress
* fix Read Only line-height
* review fixes
* review fixes
* rename component
* fix Help Center styles
* return type in DefaultBadge
* Fix types for list component (still wip)
* move sidebarList to a hook
* fix safe route container
* fix src version
* fix list typescript issue
* rename sidebarlayout to applayout
* sidebar fixes wip
* sidebar fixes wip
* remove unused function
* lift sidebar items state up
* fix broken imports
* remove unused files
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* Avoid constant creation of new web3 object
* rollback web3 version, small type fixes in ConnectButton
* Use web3 instance in getProviderInfo
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* typechain wip
* add types for multisend
* type definitions improvements
* type safe contract in estimateTxGasCosts
* contract type definitions wip
* SafeInstance truffle -> web3 migration
* fix calls for version
* transactions/send enhancements
* fix safe recor owner type
* Stepper type definitions wip
* dep bump
* stepper types wip
* refactoring stepper component to fix bug in load safe form
* stepper types wip, addressbook reducer types wip
* finally make it work
* Fix ownerlist component hook in load safe
* dep bump
* dep bump
* rollback types/history
* add types for gas calc
* debugging...
* fix using RO web3 for sending txs
* update package.json generate-types command
* add ts-ignore for stepperpage
* db
* dep bump
* as unknown as AbiItem -> as AbiItem[]
* use optional chaining for isExecution in gas esimations
* abiITem -> AbiItem[]
* fix safeVersion utils tests
* fix imports, put upgradeSafe test close to the actual code
* add comment about ts-ignore usage
* downgrade web3 version
* Fix: debounce fetch apps
* refactor: fix AddAppForm name and add missing types
* add `use-lodash-debounce` hook to test debounce functionality
I'm planning to remove this dependency, as it requires to also install `lodash.debounce`. I prefer to implement it ad-hoc.
* refactor AddAppForm to use the observable pattern
* memoize `getAppInfoFromUrl` to prevent requesting the same information over and over
* prevent requesting data if url is not valid
* remove logging
* prevent validating form before visiting the fields
* refactor AddAppForm
reorganize code
* fix: change `any` to `unknown`
* fix: `uitls.ts` types and imports
* refactor: rename `isSubmitDisabled` to `onSubmitButtonStatusChange` prop
* refactor: rename `agreement` to `agreementAccepted`
also, moved `initialValues` to a constant `INITIAL_VALUES` outside the component
* refactor: reimplement `useDebounce` hook in-app
* refactor: extract app manifest verification to a helper function
also fixed types
* fix: prevent accessing `contentWindow` if `iframe` is `null`
* fix: `getAppInfoFromOrigin` return type
also, removed the expected type for the `getAppInfoFromOrigin` calls as it is inferred
Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* Remove spaces
* Change naming convention to make clear that only edge whitespaces are removed
Fix function documentation in string util
* Add trim spaces from address input in AddToken and AddAsset
* Use validator type
* Trim spaces on Safe App links
Co-authored-by: Mati Dastugue <mdastugu@amazon.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* type validators
* safeSelector types
* history 5.0.0 breaking changes adaptation
* replace simpleMemoize with memoize from lodash because of typing issues
* add type definitions for history and react-router-dom
* type fixes
* yarn lock update
* fix router state
* more type improvements
* validator tests wip
* add tests for validators, remove duplicated validators
* add error messages to tests
* fix minValue error message for inclusive param
* Replace jsx.element with react.reactelement
* Fix uniqueAddress validator argument type
* remove comment in AddCustomToken validator
* use absolute import for saferecord in safe paage container
* Add `ArrayTypeInput` to support array type values
- also updated types for ContractInteraction/utils
* Update placeholder message
* Support fixed size arrays
- refactored how Field's key is generated due to conflicts with final-form library and `[]` in the name
- also simplified validation for array-like fields, as it messed with arguments of type `T[][2][][3]`
* Dep bump
* add deps to useEffect hook
* Revert "Dep bump"
This reverts commit f22795296cd7989ecda594ffef4478c2f5d92911.
* fix / redirect
* Fix currency fetch 400 error
* extract tab labels to components
* fix currency dropdown not showing, rename DropdownCurrency component to CurrencyDropdown
* Fix loader component type
* move steps to a separate file
* make confirmation banner green
* track safe creation in analytics
* add back button
* remove width style from backbutton
* remove width style from backbutton (prev was just commented)
* remove components-v2 and use safe-react-components
* fix duplicated import
* bring back addressinfo component because it was not included in safe-react-components
* Fix broken import (CurrencyDropdown component was renamed)
* add CustomIconText component to fix transaction tab crash
* bring back ListLayoutComponent
* 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>
* 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>
* 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
* 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>
* 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
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: 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>
* 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) 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>
* 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
* 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>
* (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>
* 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>
* 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>