* Remove unnecesary await
* Implement gas calculation for NON-GETH nodes
* Add tests
* Refactor estimateSafeTxGas: now getGasEstimationTxResponse calculates gas or throws errors based on the current node
* Refactor getOpenEthereumErrorDataResult to make it works with Nethermind
Updates tests
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Add config for EWC and Volta
* Join tests in same file
* change price oracle in volta
* add travis config for volta and ewc
* Update travis to build xDai only in master or version release
* Add PR environment by network
* simplify some constants assignments
* Add PUBLIC_URL overwrite for PRs
* Change PULL_REQUEST condition test
* Use absolute path for PUBLIC_URL
* Fix missing https://
* Adapt EWC/Volta config to use new gasPriceOracle format
* disable openZeppeling in volta and EWC
* Deploy EWC to staging
* Fix Portis, Fortmatic and Blocknative key refactor
* Set EWC deployment to release/2.14.0
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Removed containsMethodByHash condition check, now we always expect that safeTransferFrom is defined on the erc721 contract
* Types
* More types
* Add try catch on estimateGas
* Add try catch on submit transaction
* More types
* More types
* More types
* ReviewTx modal props
* Fix SendCollectible modal types
* Add guard for safeAddress
* Move some imports
* Fix DispatchReturn types
* Fix import of Dispatch
* Remove console log
* Adds logs
* Fix import
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Update calculateGasPrice to fetch from config
* Remove unused gas estimation function
* Remove unused gasCost estimate function
* Add gasParameter to gasPriceOracle
* sdk version update
* point sdk to a newer commit
* Update iframe message handler
* ConfirmTransactionModal tweaks to support params
* handle sendTransactionsWithParams, display safeTxGas in app tx modal
* new sdk version
* yarn lock update
* install libudev in travis
* update sdk version
* Estimating safeTxGas for Safe Apps Txs WIP
* safetxgas estimation warning wip
* gas estimation in confirm transaction modal
* yarn lock update
* review fixes
* Change estimation loading msg, use imported vars to index payload type
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* feat: Support for Volta and EWC
* chore: Store network ID in the ETHEREUM_NETWORK enum itself
* chore: forward tx and address to non-etherscan explorers
* fix test, avoid assigning enum to const
* (Feature) [xDai] - Create network-based configurations (#1420)
Co-authored-by: Matias Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Mati Dastugue <mdastugu@amazon.com>
* (Feature) [xDai] Use generic config (#1422)
Co-authored-by: Matias Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Mati Dastugue <mdastugu@amazon.com>
* fix function name after merge development
* (Feature) [xDai] - Contract interaction abi lookup (#1429)
* Filter Apps by network (#1433)
* Filter apps by network
* (Feature) [xDai] - Parametrize ethscan values (#1424)
* (Feature) [xDai] - Use parametrized network values (#1437)
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* (Feature) [xDai] - Use tx service for loading token info (#1435)
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* (Feature) [xDai] - Visually differentiate networks (#1431)
Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
* (Feature) [xDai] - Cosmetic fixes (#1449)
* Add staging configuration for deployment using xDai (#1459)
* Add staging xDai deployment to travis
* Add safe apps production url for xdai
* Add travis rule to build xDai on master or integration branch
* (Bugfix) Set min height to ListContentLayout wrapper #1447 (#1451)
* fix min-height app container and margin to info text at
bottom
* change css unit from % to vh
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
* disable OpenZepplin in xDai (#1465)
* remove any in config/index.ts (#1462)
* [xDai] Parametrize Native Coin (#1444)
* fix `generateBatchRequest` calls
* Fix some ETH harcoded values + Add tests
* Fix null or undefined value
* Move nativeCoin outside component + fix toTokenInput function
* Remove native coin from useEffect
Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* (Feature) [xDai] - Disable safe sections based on network config (#1468)
* Adds FEATURES enum
Renames features to disabledFeatures
* Uses FEATURES enum instead of hard-coded contract features
* Refactor enabledFeatures function, now checks that there are not disabled features by config before return the enabledFeatures result
* Adds SAFE_APPS and CONTRACT_INTERACTION to FEATURES enum
* Remove SAFE_APPS from sidebar if disabled
* Redirect user from /apps if safe apps are disabled
* Disables contract interaction from config
* Remove !remoteOwners
* Move settings to a constant
* Deploy from xDai integration branch only to xDai staging
* Fix .travis.yml warnings
* Update branch and condition for staging deployment
* Update xDai depoy condition
* (Feature) [xDai] - Fetch collectibles from Gnosis services (#1460)
* Add https to safe-xdai apps link
* make getExplorerInfo return values per network (#1470)
* (Fix) "Approve transaction" modal closes (#1477)
* add equality function to prevent re-renders
- I left the inline equalityFn, as an ad-hoc solution.
First, because we're going to remove this when https://github.com/gnosis/safe-react/issues/1479 is done
Second, because this way it infers the types defined in the useSelector generics
* (Fix) xDai feature issues (#1484)
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
* RPC interactions errors (#1475)
* Add options to httpProvider
* Add log when generateatchRequest fails
* add types to generateBarchRequest
* fix types in `generateBatchRequests`
* add `.d` for imports of definition files
* add `undefined` alternative value for `generateBatchRequests` ReturnValues
- also, fixed typing errors in related functions
* fix return values for `generateBatchRequests` in tests
Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* (Feature) xDai configs (#1489)
* (Feature) - Replaces ETH with network native coin (#1491)
* Remove networkInfo from the components
* Replaces humanReadableValue to fromTokenUnit
Co-authored-by: JosephBagaric <bagaricjos@gmail.com>
Co-authored-by: Matias Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Mati Dastugue <mdastugu@amazon.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: nicosampler <nf.dominguez.87@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* don't use nonce in tx reducer
* remove displaying of pending status if tx has no confirmations
* Fix test for transactions pending status
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Replaces old balanceUsd with fiatBalance and fiatCode on BalanceEndpoint API
* Update balance endpoint tests
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Upgrade dependencies without breaking changes
* Update electron and gnosis dependencies with minor changes
* Upgrade dependencies with minor changes and remove unnecessary electron dependency
* Upgrade truffle-contract to latest @truffle/contract
* Remove the auto adding owners when the safe loads
* Let the user add "invalid names" in the addressbook and also shows them on the addressbook
* Fix update name of safe if addressbook updated
* Removes unused addSafe action, replaces it with addOrUpdateSafe
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Update travis script to execute tests
* Update ReviewInformation components to remove type error
* Fix tests and import types without .d
* Upgrade dependencies with minor changes
* Fix addressbook types
Restructure addressbook store type
* Add more safe types
* Fix imports
* Removes .toJS() usage
* Fix condition for saving addressBook
* Types & remove send button from addressbook if user not an owner
* Add types for addressBook actions
Remove unused saveAndUpdateAddressBook action
* Refactor addressBook: make it global and removes immutableJS
Removes unused addAddressBook action
* Fix edit and remove entries style when user is not owner
* Adds and updates safe name in addressBook
* Adds checkIfOwnerWasDeletedFromAddressBook
Let the user remove owners users without adding them again each time the safe loads
* Simplify loadAddressBookFromStorage
* Fix compilation errors included in pr #1301
* Uses sameAddress function
* Add migration function for old stored address books
* Replaces shouldAvoidUpdatesNotifications with addAddressBookEntryOptions on addAddressBookEntry
* Unify return on getOwnersWithNameFromAddressBook
* Adds the addressbook names in safe load
* Reword shouldAvoidUpdatesNotifications
* Replaces adbk with addressBook
* Renames adbk to AddressBook
* Types on Open and Layout
* Remove unused actions and selectors
* Replaces initialValuesFrom to a hook and retrieves the ownerName
* Uses addressBook names in safe creation
* Fix owner name on creating safe
* Renames getNameFromAddressBook to getNameFromAddressBookSelector
* Fixs addOrUpdateAddressBookEntry action
* Updates addressbook on safe load
* Revert load update addressbook behaviour
* Renames checkIfOwnerWasDeletedFromAddressBook to checkIfEntryWasDeletedFromAddressBook
* Feedback
* Type review informaiton
* Adds ADD_OR_UPDATE_SAFE action
* Replaces addSafe with addOrUpdateSafe on addSafeHandler
* Exports isValidAddressBookName util function
* Adds isValidAddressBookName test
* Add tests for checkIfEntryWasDeletedFromAddressBook
* Fix saveAddressBook test
* Fix fetchSafeTokens.test.ts
* Add update individually safe props in addOrUpdate
* Fix updating addressbook entries on safe load/create
* Fix always loading safe as LOADED SAFE instead of safe name
* Fix adding owner as UNKNOWN on addressBook when adding new owner
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* use `updateSafe` instead of `addSafe`
* fix SAFE_UPDATE reducer
- treat every key individually
* allow to load owners on the first request
* Set UPDATE_SAFE to individually handling all props
* Handle List special case
* Add comment to list check
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* use `safeFeaturesEnabled` selector
also organized a bit the code (styles) and added Types for the `ChooseTxType` component
* fix `getGnosisSafeInstanceAt` return type
* add types to `safeStorage`
refactor `getSafeName`
* use redux selector to obtain master contract version
* fix return type
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Fix addressbook types
Restructure addressbook store type
* Add more safe types
* Fix imports
* Removes .toJS() usage
* Fix condition for saving addressBook
* Types & remove send button from addressbook if user not an owner
* Add types for addressBook actions
Remove unused saveAndUpdateAddressBook action
* Refactor addressBook: make it global and removes immutableJS
Add types
Removes unused addAddressBook action
* Remove todo
* Fix edit and remove entries style when user is not owner
* Adds and updates safe name in addressBook
* Adds checkIfOwnerWasDeletedFromAddressBook
Let the user remove owners users without adding them again each time the safe loads
* Simplify loadAddressBookFromStorage
* Fix compilation errors included in pr #1301
* Uses sameAddress function
* Add migration function for old stored address books
* Update tests
* Replaces shouldAvoidUpdatesNotifications with addAddressBookEntryOptions on addAddressBookEntry
* Update tests
* Unify return on getOwnersWithNameFromAddressBook
* Reword shouldAvoidUpdatesNotifications
* Replaces adbk with addressBook
* Fix condition
* Fix typos
* Fix typo
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* fix currency middleware, actinos, cleanup & bugfix
* mergeDeep in reducer
* dont modify state in add_safe if same already exists
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* Fix load current session
* Fixs useMemo usage in filteredData
* Type fetchTokens
* Type useFetchTokens
* Type setCurrencyBalances
* Fixs ADD_SAFE reducer for existing safe, uses mergeDeep instead of merge, now the active tokens for the safe are not overwritten
* Fix save selected currency
* Adds excludeSpamTokens param in fetchTokenCurrenciesBalances
* Adds onlyTrustedTokens param in fetchTokenCurrenciesBalances
* Merge with development
* Remove onlyTrustedTokens param
* Fix unnecesary changes
* Replace Dispatch with ThunkDispatch
* Fix import consistency
* Type containsMethodByHash
* Fix blacklisted addresses calculation
* Adds types on updateActiveTokens
Adds types on updateBlacklistedTokens
* Refactor Tokens to TokenList, makes it functional component
also fix blacklisted addresses calculation
* Refactor Tokens to TokenList, makes it functional component
also fix blacklisted addresses calculation
* Refactor AddCustomToken, add types
Removes actions from Tokens
* Fix warning on useEffect
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
* 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>
* fix: prevent runtime error when prev is `undefined`
* fix: prevent runtime error when prev is `undefined`
* fix: prevent runtime error when 'safes' is `undefined`
* fix: add `dataDecoded` to the mocked tx so information is properly displayed for known methods
* fix: set 'pending' status for tx being processed
- given that the confirmations key is no longer an empty array, tx status must be explicitly set this way
* fix: properly update mockedTx
* fix: hide buttons when tx is pending
* fix: type error
* Rollback patches trying to fix bug
Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* Add outgoing transaction fees in transaction details
* Convert fee from wei only when showing extended transaction
* Fix incoming transactions fee value to display correct value
* Add ETH symbol to fee on details
* 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>
* 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