Gnosis Safe - Public Release v1.9.0 (#713)
* (Fix) Wrong value for ERC-20 tokens transfers (#679)
The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.
fixes #678
* (Fix) send tx from address book (#677)
* fix: Send funds not working when selecting receipt from addressBook
Also, this commit includes an intent to unify/simplify SendModal component
fixes #632
* Set default value to txData for custom txs
fixes #632
* bump version in package.json (#683)
* Onboardjs - Get wallets by platform, fix ledger/trezor rpcUrls (#665)
* Added desktop support
* Added desktop option and logs for testing
* Get desktop mode from window object
* Add torus support and remove logs
* Update function name
* Upgrade onboardjs version
* fix ledger/trezor rpcUrls
* Bump version to 1.8.3
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* Master/dev conflict fix (#685)
* Added desktop support
* Added desktop option and logs for testing
* Get desktop mode from window object
* Add torus support and remove logs
* Update function name
* Upgrade onboardjs version
* v1.8.2 (#682)
* (Fix) Wrong value for ERC-20 tokens transfers (#679)
The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.
fixes #678
* (Fix) send tx from address book (#677)
* fix: Send funds not working when selecting receipt from addressBook
Also, this commit includes an intent to unify/simplify SendModal component
fixes #632
* Set default value to txData for custom txs
fixes #632
* bump version in package.json (#683)
Co-authored-by: Fernando <fernando.greco@gmail.com>
* fix ledger/trezor rpcUrls
* Bump version to 1.8.3
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
* (Fix) #423 - Pending transaction confirmation loop (#637)
* Fixs duplicated notifications
* Implements feedback, now the displayed txHash are stored on localstorage and once the first time we notify the user about it, they won't never appear again
* Uses the last time the user logged in
* Fix safe version null check
Fixs date string comparison
Adds the safe address to the check of last time logged in
* (Feature) Erc721 modal lists (#661)
* Add Assets sections
* (add) collectibles tab
* (add) criptokitty items
* (add) collectible items, definitive edition
* (fix) collectibles were overlapping with bottom banner
* (fix) wording
* (fix) responsive issues
* Install `async-sema` dependency
* Create collectible source classes
- source from mocked data and opensea, it's extendable to import information from other sources
* Update `Collectible` implementation to use new data source
* Create constants file to better handle env variables and default values
* Add description to item's cards
- also added a mocked class with real data
* Fix `saveTxToHistory`, remove hardcoded `CALL`
* Fix after merge development
* Set background color for collectible based on data info
- Changed `withStyles` in favor of a hook-like approach with `makeStyles`
* Enhance collectible card info and group title
* Use current safeAddress to query for collectibles information
- also migrated from `withStyles` to `makeStyles`
* Use proper key values for lists and set more significant names
* update yarn.lock after merge
* Fix linting error
* Move ethAsToken verification outside loop
* Use absolute route for `SendModal` import
* Move Collectibles into redux store
* Update yarn.lock file
* Selectable NFTs
* Divide the `collectible` store into `nftAssets` and `nftTokens`
- Also updated components to retain functionality
- Created a `textShortener` function for better presentation
* Update `yarn.lock`
* Update `yarn.lock`
* Fix item background color
* Clears the tokenID select field when the collectible selected changes
* Open Send modal from the assets section
* Use token name for the token selection dropdown
* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component
* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component
* Add openZeppelin contracts dependency
* Create ERC721 getter
* Fix types, default values and clean code
* Fix: properly refresh list of collectibles when switching safes
* Add ReviewCollectible step in send NFT
* Displays the assets in the manage list
* Fixs add custom token/asset modal cancel button
* Change items shadow
* Give option to choose what to send by clicking 'Send' button in AddressBook
* Disable [Send] button for Collectibles if not owner
* Set Coins as default option in assets tab
- also fixed styles for `Coins` option
* Use collectible icon in send modal
* Set default message when no assets available
- removed pagination feature
* Create SafeVersionProvider to better handle version-related tasks
Provides:
- current and latest versions,
- a boolean indicating a need for update,
- an upgradeSafe callback to trigger upgrade from any place,
- a list of enabled features, depending on the current version
- the latter needs a refactor like extract features outside the provider
and define constants for the features.
* Force build
* Update `yarn.lock`
* Disable Manage list for NFTs
* Implements manage list to add/remove assets
* Implements manage list to add/remove assets
* Merge branch 'feature/#469-ERC721-feature-implementation' of https://github.com/gnosis/safe-react into feature/#469-ERC721-feature-implementation
# Conflicts:
# src/routes/safe/components/Balances/Collectibles/index.jsx
# src/routes/safe/components/Balances/index.jsx
# src/utils/constants.js
* Implements blacklisted assets
* Fix container shadow
- Also fixes tables shadow, thanks to @gabitoesmiapodo
* Enable nested routes for balances (assets) tab
* Default to `/balance` if invalid nested path
* Disable [Send Collectible] button, if not supported by safe
* Change sub-menu buttons to clickable text
* Replace Paragraph with Link
* Fix invalid props errors for Link component
* Fallback to `transferFrom` if `safeTransferFrom` is not implemented
* Use `transfer` as fallback to ERC-721's `safeTransferFrom`
- need to identify ERC721 token using `transfer` and `name` methods
* Display failed transactions
* Use react.lazy for collectibles' modals
* Identify ERC-721 token transaction
* Adds initial components for AddCustomAsset support
* Fix Send Collectibles modal layout/behavior
- disable dropdown list if there's no item to pick
- fix placeholder for tokens list
- fix dropdown list styles
* Set default `isSuccessful` flag to `true`
* Fixs erc721Enabled check
* Adds margin to modal icon
Fix search bar
* Fix hidding buttons in coins table
* Fixs display all available assets by default
* Fixs modal assets
* Fixs blacklistedAssetsAddresses save to storage
Fixs show token button
Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
* Remove `SafeVersionProvider` (#694)
* (Feature) Safe Deployment #605 #111 #395 #606 #396 (#659)
* Stepper component
* proxyfactory web3 contract
* add styles to body steps
* Steps info
* Open component: moving from class to function
* remove opening route and rendering it in Open component instead
* recover safe creation from txHash in localStorage
* remove commented code
* restore commented code
* creatign TX fix
* fix createSafe then function
* fixing stepper
* remove unused code
* remove opening route and finishin both variants of create
* add loader dots svg
* add error state design and loader dots
* fix error section
* add description to steps
* adding etherscan link
* taking values from variables
* fix heigh in body content
* add success svg
* add check image on last step
* fix margin and heigt to body rows
* remove commented code
* remove commented code
* fix for #396
* Fix empty_code
* set error if getReceipt fails
* fixes
* Fix: remove txHash from pendingInfo on retry
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
* Updated modal description
* Update readme (#696)
* Bump 1.5.0 version of onboardjs
* Feature: #528 optimize network requests (#680)
* Generates a cache to avoid multiples getHumanFriendlyToken() for the same token address
* Adds etags implementation for transactions
* Caches outgoing and incoming safe transactions based on etag value
* Removes cachedSafeTransactions, cachedSafeIncommingTransactions
* Refactors getTokenInstance
* Avoid recreating tokens on fetchTokens() once we have them in redux
* Fixs error on catch
* Batch request tokens balances
* Fixs missing token names
Changes the tokens limit from 300 to 3000
* fix: failed to instantiate non-standard ERC-20 tokens
For the batchRequest of balances, we're just using the `balanceOf` method call. So having a simple ABI with that only method prevents errors with non-standard ERC-20 Tokens.
* Removes unnecessary action updateSafeThreshold
Removes unnecessary action fetchEtherBalance
* Updated comments in code
Replaces constant with directly dispatching action
* BatchRequest done right
* fix: invalid action name `savedToken` -> `saveToken`
* Renames getTokenInstance to getTokenInfos
Fixs first load of transactions are empty
* Move fetchTokenBalances to `Balances` and `SendModal` components
* fix: Incoming transaction type
Backend now changed the type from 'incoming' to one of: `'ERC721_TRANSFER', 'ERC20_TRANSFER', 'ETHER_TRANSFER'`
* fix: tokenInstance `symbol` and `decimal` extraction
* Fix property name `decimals` instead of `tokenDecimals`
* Standardize non-standard ERC20 tokens discovery
* fix: isStandardERC20
* Revert "Move fetchTokenBalances to `Balances` and `SendModal` components"
This reverts commit ed84bd92
* Fixs Typo INCOMING_TX_TYPES
Renames tokenInstance with localToken
* Renames getBatchBalances to getTokenBalances
Returns saved tokens instead of tokenInstance in getTokenInfos
* Remove promise returns
Co-authored-by: fernandomg <fernando.greco@gmail.com>
* Feature: Offchain signatures (#668)
* offchain signatures wip
* offchain signing wip
* offchain signatures wip
* offchain signatures wip
* save signatures to the history service
* fix eth signer & useEfefct hook
* offchain signatures wip
* signature check, mainnet testing wip
* dep update
* disable offchain signing for smart contract wallets
* Refactor EIP712 signer
* bring back .env.example
* Check if save version is >1.1.1
* use canTryoffchainSigning boolean variable, add comment about 4001 error
* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet
* remove TYPE when sending txs to history service
* add eth_signTypedData_v4 signer, dep bump, add missing await
* add comments about version check for canTryOffchainSigning variable
* hide "please sign notification"
* dep bump
* dep bump
* Check if connected is ledger before trying offchain signatures
* minor fixes, temp deployment to test trezor
* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets
* (Fix) Owner replacement transaction details (#688)
* fix: No threshold change for owners replacement
* fix: Extract added owner from addressBook
When replacing an owner, the added owner's name was the same as the removed one
* fix: Add or Update addressBook entry for the newly added owner
* Replace `.then` with `async/await`
* Optimize AddressBook entry `name` update
* Revert "Optimize AddressBook entry `name` update"
This reverts commit 00a75d15
* refactor: AddressBook entry from plain JS object to immutable Record
* fix: merge instead of set for the AddressBookEntry record
* refactor: addOrUpdateAddressBookEntry redux action
changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated
* Fix safe creation from walletConnect (#703)
* Fixes: Offchain signatures (#706)
* offchain signatures wip
* offchain signing wip
* offchain signatures wip
* offchain signatures wip
* save signatures to the history service
* fix eth signer & useEfefct hook
* offchain signatures wip
* signature check, mainnet testing wip
* dep update
* disable offchain signing for smart contract wallets
* Refactor EIP712 signer
* bring back .env.example
* Check if save version is >1.1.1
* use canTryoffchainSigning boolean variable, add comment about 4001 error
* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet
* remove TYPE when sending txs to history service
* add eth_signTypedData_v4 signer, dep bump, add missing await
* add comments about version check for canTryOffchainSigning variable
* hide "please sign notification"
* dep bump
* dep bump
* Check if connected is ledger before trying offchain signatures
* minor fixes, temp deployment to test trezor
* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets
* add personal signer
* prettier fixes
* offchain signatures fixes
* (Fix) New owners as `UNKNOWN` (#697)
* fix: No threshold change for owners replacement
* fix: Extract added owner from addressBook
When replacing an owner, the added owner's name was the same as the removed one
* fix: Add or Update addressBook entry for the newly added owner
* Replace `.then` with `async/await`
* Optimize AddressBook entry `name` update
* fix: store added owner in the addressBook
* Revert "Optimize AddressBook entry `name` update"
This reverts commit 00a75d15
* refactor: AddressBook entry from plain JS object to immutable Record
* fix: merge instead of set for the AddressBookEntry record
* refactor: addOrUpdateAddressBookEntry redux action
changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated
* refactor: update `addOrUpdateAddressBookEntry` call, due to signature change
* Bug: Eth balance not updating (#709)
* fix prop name for updating eth balance
* remove unneccessary index in import
* typo fixes in safe opening
* Don't reassign transaction in getAwaitingTransactions, check for another transaction executed with the same nonce and not only cancellation ones (#710)
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
2020-04-01 14:56:04 +00:00
# Gnosis Safe Multisig
2018-03-12 10:26:53 +00:00
Gnosis Safe - Public Release v1.9.0 (#713)
* (Fix) Wrong value for ERC-20 tokens transfers (#679)
The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.
fixes #678
* (Fix) send tx from address book (#677)
* fix: Send funds not working when selecting receipt from addressBook
Also, this commit includes an intent to unify/simplify SendModal component
fixes #632
* Set default value to txData for custom txs
fixes #632
* bump version in package.json (#683)
* Onboardjs - Get wallets by platform, fix ledger/trezor rpcUrls (#665)
* Added desktop support
* Added desktop option and logs for testing
* Get desktop mode from window object
* Add torus support and remove logs
* Update function name
* Upgrade onboardjs version
* fix ledger/trezor rpcUrls
* Bump version to 1.8.3
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
* Master/dev conflict fix (#685)
* Added desktop support
* Added desktop option and logs for testing
* Get desktop mode from window object
* Add torus support and remove logs
* Update function name
* Upgrade onboardjs version
* v1.8.2 (#682)
* (Fix) Wrong value for ERC-20 tokens transfers (#679)
The fix attempts to properly differentiate an ERC-721 from an ERC-20 token transaction by identifying if it's a `transfer` transaction looking for a `decimals` method in its code. It the later is not found, then it's considered an ERC-721.
fixes #678
* (Fix) send tx from address book (#677)
* fix: Send funds not working when selecting receipt from addressBook
Also, this commit includes an intent to unify/simplify SendModal component
fixes #632
* Set default value to txData for custom txs
fixes #632
* bump version in package.json (#683)
Co-authored-by: Fernando <fernando.greco@gmail.com>
* fix ledger/trezor rpcUrls
* Bump version to 1.8.3
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
* (Fix) #423 - Pending transaction confirmation loop (#637)
* Fixs duplicated notifications
* Implements feedback, now the displayed txHash are stored on localstorage and once the first time we notify the user about it, they won't never appear again
* Uses the last time the user logged in
* Fix safe version null check
Fixs date string comparison
Adds the safe address to the check of last time logged in
* (Feature) Erc721 modal lists (#661)
* Add Assets sections
* (add) collectibles tab
* (add) criptokitty items
* (add) collectible items, definitive edition
* (fix) collectibles were overlapping with bottom banner
* (fix) wording
* (fix) responsive issues
* Install `async-sema` dependency
* Create collectible source classes
- source from mocked data and opensea, it's extendable to import information from other sources
* Update `Collectible` implementation to use new data source
* Create constants file to better handle env variables and default values
* Add description to item's cards
- also added a mocked class with real data
* Fix `saveTxToHistory`, remove hardcoded `CALL`
* Fix after merge development
* Set background color for collectible based on data info
- Changed `withStyles` in favor of a hook-like approach with `makeStyles`
* Enhance collectible card info and group title
* Use current safeAddress to query for collectibles information
- also migrated from `withStyles` to `makeStyles`
* Use proper key values for lists and set more significant names
* update yarn.lock after merge
* Fix linting error
* Move ethAsToken verification outside loop
* Use absolute route for `SendModal` import
* Move Collectibles into redux store
* Update yarn.lock file
* Selectable NFTs
* Divide the `collectible` store into `nftAssets` and `nftTokens`
- Also updated components to retain functionality
- Created a `textShortener` function for better presentation
* Update `yarn.lock`
* Update `yarn.lock`
* Fix item background color
* Clears the tokenID select field when the collectible selected changes
* Open Send modal from the assets section
* Use token name for the token selection dropdown
* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component
* Refactor Balances tabs: reduces the amount of props received, exported tokens lists to a component
* Add openZeppelin contracts dependency
* Create ERC721 getter
* Fix types, default values and clean code
* Fix: properly refresh list of collectibles when switching safes
* Add ReviewCollectible step in send NFT
* Displays the assets in the manage list
* Fixs add custom token/asset modal cancel button
* Change items shadow
* Give option to choose what to send by clicking 'Send' button in AddressBook
* Disable [Send] button for Collectibles if not owner
* Set Coins as default option in assets tab
- also fixed styles for `Coins` option
* Use collectible icon in send modal
* Set default message when no assets available
- removed pagination feature
* Create SafeVersionProvider to better handle version-related tasks
Provides:
- current and latest versions,
- a boolean indicating a need for update,
- an upgradeSafe callback to trigger upgrade from any place,
- a list of enabled features, depending on the current version
- the latter needs a refactor like extract features outside the provider
and define constants for the features.
* Force build
* Update `yarn.lock`
* Disable Manage list for NFTs
* Implements manage list to add/remove assets
* Implements manage list to add/remove assets
* Merge branch 'feature/#469-ERC721-feature-implementation' of https://github.com/gnosis/safe-react into feature/#469-ERC721-feature-implementation
# Conflicts:
# src/routes/safe/components/Balances/Collectibles/index.jsx
# src/routes/safe/components/Balances/index.jsx
# src/utils/constants.js
* Implements blacklisted assets
* Fix container shadow
- Also fixes tables shadow, thanks to @gabitoesmiapodo
* Enable nested routes for balances (assets) tab
* Default to `/balance` if invalid nested path
* Disable [Send Collectible] button, if not supported by safe
* Change sub-menu buttons to clickable text
* Replace Paragraph with Link
* Fix invalid props errors for Link component
* Fallback to `transferFrom` if `safeTransferFrom` is not implemented
* Use `transfer` as fallback to ERC-721's `safeTransferFrom`
- need to identify ERC721 token using `transfer` and `name` methods
* Display failed transactions
* Use react.lazy for collectibles' modals
* Identify ERC-721 token transaction
* Adds initial components for AddCustomAsset support
* Fix Send Collectibles modal layout/behavior
- disable dropdown list if there's no item to pick
- fix placeholder for tokens list
- fix dropdown list styles
* Set default `isSuccessful` flag to `true`
* Fixs erc721Enabled check
* Adds margin to modal icon
Fix search bar
* Fix hidding buttons in coins table
* Fixs display all available assets by default
* Fixs modal assets
* Fixs blacklistedAssetsAddresses save to storage
Fixs show token button
Co-authored-by: fernandomg <fernando.greco@gmail.com>
Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
* Remove `SafeVersionProvider` (#694)
* (Feature) Safe Deployment #605 #111 #395 #606 #396 (#659)
* Stepper component
* proxyfactory web3 contract
* add styles to body steps
* Steps info
* Open component: moving from class to function
* remove opening route and rendering it in Open component instead
* recover safe creation from txHash in localStorage
* remove commented code
* restore commented code
* creatign TX fix
* fix createSafe then function
* fixing stepper
* remove unused code
* remove opening route and finishin both variants of create
* add loader dots svg
* add error state design and loader dots
* fix error section
* add description to steps
* adding etherscan link
* taking values from variables
* fix heigh in body content
* add success svg
* add check image on last step
* fix margin and heigt to body rows
* remove commented code
* remove commented code
* fix for #396
* Fix empty_code
* set error if getReceipt fails
* fixes
* Fix: remove txHash from pendingInfo on retry
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
* Updated modal description
* Update readme (#696)
* Bump 1.5.0 version of onboardjs
* Feature: #528 optimize network requests (#680)
* Generates a cache to avoid multiples getHumanFriendlyToken() for the same token address
* Adds etags implementation for transactions
* Caches outgoing and incoming safe transactions based on etag value
* Removes cachedSafeTransactions, cachedSafeIncommingTransactions
* Refactors getTokenInstance
* Avoid recreating tokens on fetchTokens() once we have them in redux
* Fixs error on catch
* Batch request tokens balances
* Fixs missing token names
Changes the tokens limit from 300 to 3000
* fix: failed to instantiate non-standard ERC-20 tokens
For the batchRequest of balances, we're just using the `balanceOf` method call. So having a simple ABI with that only method prevents errors with non-standard ERC-20 Tokens.
* Removes unnecessary action updateSafeThreshold
Removes unnecessary action fetchEtherBalance
* Updated comments in code
Replaces constant with directly dispatching action
* BatchRequest done right
* fix: invalid action name `savedToken` -> `saveToken`
* Renames getTokenInstance to getTokenInfos
Fixs first load of transactions are empty
* Move fetchTokenBalances to `Balances` and `SendModal` components
* fix: Incoming transaction type
Backend now changed the type from 'incoming' to one of: `'ERC721_TRANSFER', 'ERC20_TRANSFER', 'ETHER_TRANSFER'`
* fix: tokenInstance `symbol` and `decimal` extraction
* Fix property name `decimals` instead of `tokenDecimals`
* Standardize non-standard ERC20 tokens discovery
* fix: isStandardERC20
* Revert "Move fetchTokenBalances to `Balances` and `SendModal` components"
This reverts commit ed84bd92
* Fixs Typo INCOMING_TX_TYPES
Renames tokenInstance with localToken
* Renames getBatchBalances to getTokenBalances
Returns saved tokens instead of tokenInstance in getTokenInfos
* Remove promise returns
Co-authored-by: fernandomg <fernando.greco@gmail.com>
* Feature: Offchain signatures (#668)
* offchain signatures wip
* offchain signing wip
* offchain signatures wip
* offchain signatures wip
* save signatures to the history service
* fix eth signer & useEfefct hook
* offchain signatures wip
* signature check, mainnet testing wip
* dep update
* disable offchain signing for smart contract wallets
* Refactor EIP712 signer
* bring back .env.example
* Check if save version is >1.1.1
* use canTryoffchainSigning boolean variable, add comment about 4001 error
* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet
* remove TYPE when sending txs to history service
* add eth_signTypedData_v4 signer, dep bump, add missing await
* add comments about version check for canTryOffchainSigning variable
* hide "please sign notification"
* dep bump
* dep bump
* Check if connected is ledger before trying offchain signatures
* minor fixes, temp deployment to test trezor
* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets
* (Fix) Owner replacement transaction details (#688)
* fix: No threshold change for owners replacement
* fix: Extract added owner from addressBook
When replacing an owner, the added owner's name was the same as the removed one
* fix: Add or Update addressBook entry for the newly added owner
* Replace `.then` with `async/await`
* Optimize AddressBook entry `name` update
* Revert "Optimize AddressBook entry `name` update"
This reverts commit 00a75d15
* refactor: AddressBook entry from plain JS object to immutable Record
* fix: merge instead of set for the AddressBookEntry record
* refactor: addOrUpdateAddressBookEntry redux action
changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated
* Fix safe creation from walletConnect (#703)
* Fixes: Offchain signatures (#706)
* offchain signatures wip
* offchain signing wip
* offchain signatures wip
* offchain signatures wip
* save signatures to the history service
* fix eth signer & useEfefct hook
* offchain signatures wip
* signature check, mainnet testing wip
* dep update
* disable offchain signing for smart contract wallets
* Refactor EIP712 signer
* bring back .env.example
* Check if save version is >1.1.1
* use canTryoffchainSigning boolean variable, add comment about 4001 error
* move semver selector for safe version/offchain signatures to a constant, make use of empty_data for isContractWallet
* remove TYPE when sending txs to history service
* add eth_signTypedData_v4 signer, dep bump, add missing await
* add comments about version check for canTryOffchainSigning variable
* hide "please sign notification"
* dep bump
* dep bump
* Check if connected is ledger before trying offchain signatures
* minor fixes, temp deployment to test trezor
* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets
* add personal signer
* prettier fixes
* offchain signatures fixes
* (Fix) New owners as `UNKNOWN` (#697)
* fix: No threshold change for owners replacement
* fix: Extract added owner from addressBook
When replacing an owner, the added owner's name was the same as the removed one
* fix: Add or Update addressBook entry for the newly added owner
* Replace `.then` with `async/await`
* Optimize AddressBook entry `name` update
* fix: store added owner in the addressBook
* Revert "Optimize AddressBook entry `name` update"
This reverts commit 00a75d15
* refactor: AddressBook entry from plain JS object to immutable Record
* fix: merge instead of set for the AddressBookEntry record
* refactor: addOrUpdateAddressBookEntry redux action
changed signature to `addOrUpdateAddressBookEntry(entryAddress, entry)`
Where `entry` is an object with only the required fields to be updated
* refactor: update `addOrUpdateAddressBookEntry` call, due to signature change
* Bug: Eth balance not updating (#709)
* fix prop name for updating eth balance
* remove unneccessary index in import
* typo fixes in safe opening
* Don't reassign transaction in getAwaitingTransactions, check for another transaction executed with the same nonce and not only cancellation ones (#710)
Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
2020-04-01 14:56:04 +00:00
The most trusted platform to store digital assets on Ethereum
2018-03-12 10:26:53 +00:00
## Getting Started
2020-04-30 17:20:54 +00:00
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
2018-03-12 10:26:53 +00:00
### Prerequisites
What things you need to install the software and how to install them
```
2019-04-12 14:41:47 +00:00
yarn add truffle // recommended usage of -g flag
yarn add ganache-cli // recommended usage of -g flag
yarn add flow-type // recommended usage of -g flag
2018-03-12 10:26:53 +00:00
```
2019-04-12 14:41:47 +00:00
We use [yarn ](https://yarnpkg.com ) in our infrastacture, so we decided to go with yarn in the README
2019-09-25 11:15:45 +00:00
### Installing and running
2018-03-12 10:26:53 +00:00
A step by step series of examples that tell you have to get a development env running
2019-10-02 12:14:45 +00:00
Install dependencies for the project:
2018-03-12 10:26:53 +00:00
```
2019-04-12 14:41:47 +00:00
yarn install
2019-09-30 06:56:37 +00:00
```
2019-10-02 12:14:45 +00:00
For using the Rinkeby services:
2019-09-30 06:56:37 +00:00
```
2019-04-12 14:41:47 +00:00
yarn start
2018-03-12 10:26:53 +00:00
```
2019-10-02 12:14:45 +00:00
If you prefer using Mainnet ones:
2019-09-24 13:49:01 +00:00
```
2019-09-30 06:56:37 +00:00
yarn start-mainnet
2019-09-24 13:49:01 +00:00
```
2019-09-25 11:15:45 +00:00
### Building
2019-09-30 06:56:37 +00:00
For Rinkeby:
2019-09-25 11:15:45 +00:00
```
yarn build
```
2019-09-30 06:56:37 +00:00
For Mainnet:
2019-09-25 11:15:45 +00:00
```
2019-09-30 06:56:37 +00:00
yarn build-mainnet
2019-09-25 11:15:45 +00:00
```
2018-03-12 10:26:53 +00:00
## Running the tests
2019-07-20 17:45:17 +00:00
1. Run `transaction-history-service`
```
git clone https://github.com/gnosis/safe-transaction-service.git
2019-12-13 17:05:13 +00:00
cd safe-transaction-service
2019-07-20 17:45:17 +00:00
git checkout develop
docker-compose build
Development (#355)
* Adds cookie permissions to localStorage/redux state
* Adds action
* Adds files to git
* (fix) linting issues
* (update) flow-typed
* (update) .eslint and .flowconfig
* (add) cookie banner
* Finish cookie banner implementation
* (Add) checkbox's disabled style.
* Removes redux for cookiesStorage
* Fix cookieStore deletion
* Fixs cookies acceptance
* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages
* (remove) unused library
* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie
* (fix) added correct polished library and import, updated flow-typed
* (update) removed polish flow type, added js-cookie flow type
* Add link to cookie policy, use generic links for legal docs
* Remove link to cookie policy from sidebar, link cookie policy in the banner
* Let the user re-open the cookie banner
* remove withMutations from cookies reducer, move utils/cookies to logic/cookies
* Now the sidebar closes when the cookie banner is toggled
* Feature #169: Intercom (#301)
* Implements intercom
Adds REACT_APP_INTERCOM_ID_MAINNET and REACT_APP_INTERCOM_ID_RINKEBY env vars
* Adds .env.example
* Adds intercom env vars
* Updates env vars
Replaces "rinkeby" and "mainnet" with "non-production" and "production"
* Now loads intercom after the user accepted the analytics
* Add env variable for production intercom id
* Update .env.example
* Removes react-intercom
Fixs getIntercomId with default dev appID
Now loads intercom as script
* Renegerate flow-types
* Remove 'Hide zero balances' (#310)
* Use medium font size for 'select an asset' label (#312)
* Feature #272: Google Analytics (#299)
* Adds google analytics tracking for every route
* Adds cookies acceptance check before tracking
* Fix react-ga dependency
* Fix cookieStore deletion
* Merge with #189-cookie-banner
* Fixs react ga version
Refactored HOC with hooks
* Fix TYPO
* Fix path for cookies utils
* Fix imports
* remove flow type definition for polish
* Add GA ID log
* Fix load GA After cookies acceptance
* Feature #224: Activate tokens automatically (#300)
* Replace 'Manage Tokens' with 'Manage List'
* prevent 301 redirects
* Add `BLACKLISTED_TOKENS` key to persist through immortal
* Add store/action to extract _activate tokens by its balance_
- keeps already activated tokens
- discards blacklisted tokens
- adds tokens whose vales are bigger than zero and are not blacklisted
* Add `blacklistedTokens` list to safe's store
* Display activeTokensByBalance in 'Balances' screen
* Enable token's blacklisting functionality in Tokens List
* Retrieve balance from API
* Rename action to `activateTokensByBalance`
* Fix linting errors
- line too long
- required return
* Do not persist a separate list into `BLACKLISTED_TOKENS`
* Typo fix (#326)
* Fix security vulnerability: Remove uglifyjs, use terser plugin (#327)
* Remove uglifyjs, use terser plugin
* fix css-loader config
* Feature #256: Sticky header (#308)
* Add sticky header
* Remove react-headroom, set position to fixed for header
* Regenerate yarn lock
* Remove unused headroom style from root.scss
* Pull from dev, conflict fixes
* Update welcome text (#323)
* Feature #137: Tx list improvements (#222)
* Fix swapOwners threshold displayed as hex in tx list
* Refactor spinner in empty table
* Fix number of rows per page in table pagination
* Add use of EtherscanLink component
* Set short version of strings in tx list
* Adjust styles in tx list
* Add more styles to table
* WIP
* An attempt to fix #204 by showing UNKNOWN instead of failed to fetch token symbol
* Table pagination style fixes
* Show confirm transaction button in owner list
* Update dependencies
* Add confirmation icons to owner list in tx list
* exclude unneeded stuff from travis.yml
* Adds cookie permissions to localStorage/redux state
* Update dependencies
* Adds action
* Adds files to git
* (fix) linting issues
* (update) flow-typed
* (update) .eslint and .flowconfig
* (add) cookie banner
* Finish cookie banner implementation
* (Add) checkbox's disabled style.
* Removes redux for cookiesStorage
* Fix cookieStore deletion
* Increase TO_EXP for bignumber.js
* Fixs cookies acceptance
* Fixs cookies banner verbiage
Fix "x" in wrong place for snackbar messages
* (fix) added correct polished library and import, updated flow-typed
* (update) removed polish flow type, added js-cookie flow type
* Add link to cookie policy, use generic links for legal docs
* Remove link to cookie policy from sidebar, link cookie policy in the banner
* Mock Safe creation transaction
* Format code
* Fix break statement
* Remove deployment of storybook
* Let the user re-open the cookie banner
* Update tx status messages and visual confirmation progress
* Fix svg in tx confirmation progress
* Add styles to tx type in tx list
* Replace nonce in tx list with tx id
* Update opacity of cancelled tx
* Fix short version of address
* remove withMutations from cookies reducer, move utils/cookies to logic/cookies
* Now the sidebar closes when the cookie banner is toggled
* Fix styles in tx list
* Add Pending status in tx description
* (remove) unused library
* Adds cookies utils
Replaces localStorage with cookies
Adds js-cookie
* Set 25 rows per page in tx list by default
* Align tx table
* Adjust tx table and tx details borders
* Fix fetching transactions to show Safe creation tx alone
* Fix failed Safe creation transaction
* Add styles to tx data
* Refactor and fix owner list in transaction
* Refactor use of theme variables
* Remove storybook files
* Update dependencies
* Fix warnings
* Fix dependencies
* Update file-loader config
* Fix owner colors in the tx confirmation progress
* Fix transaction type icon height
* Tx list adjustments
* Update readme
* (Feature) Etherscan button icon (#331)
* (add) new open on etherscan button icon
* (remove) unused asset
* (fix) icon background
* Feature #239: Replace early access label with network label (#311)
* Remove early access label
* Revert "Remove early access label"
This reverts commit 34682f0f6d9c1974a6e45c2a31358864931d9c1e.
* Replace early access label with network label
* Capitalzie first letter of the network name
* Adds threshold update on checkAndUpdateSafe (#320)
* Feature #159: Pending transaction that requires user confirmation (#330)
* Creates a new notification: waitingConfirmation
Adds key as optional parameter for notification
Implemented getAwaitingTransactions to get the transactions that needs to be confirmed by the current user
Not fetchTransactions action also dispatch a notification for awaiting transactions
Improved performance of routes/safe/container/index to avoid re-rendering
* Removes notification logic on fetchTransactions
Adds notificationsMiddleware
* Moves fetchTransaction to container
* Removes unused param on fetchTransactions
* Fixs null safe check
* Fixs middleware declaration
* Removes lodash
* Changes cancelled transaction detection logic
* Feature #122: Multisig migration (#315)
* Adds query-string package.json
Parses query string on open layout
* Implements load all the values on openSafe view from param querys
* Adds query params validation
* Moves query parse logic to open.jsx
* Changes default no metamask component on open page
* Replaces global isNaN
* Fix threshold parsing validation
* Updates the welcome component with new verbiage for open
* Renames isOpenSafe to isOldMultisigMigration
* Merge branch 'development' of https://github.com/gnosis/safe-react into 122-multisig-migration
# Conflicts:
# src/routes/open/components/Layout.jsx
* Merge branch 'development' of https://github.com/gnosis/safe-react into 159-pending-transactions
# Conflicts:
# src/routes/safe/components/Transactions/index.jsx
# yarn.lock
* set anonymizeIp to true (#335)
* Feature #180: Predict transaction nonce (#293)
* Dep bump
* Fetch transactions when safe view is mounted
* eslint fix
* Calculate new tx nonce from latest tx in service
* Fix tx cancellation, allow passing nonce to createTransaction
* dep bump
* Refactor createTransaction/processTransaction to use object as argument
* Adopting transactions table to new send tx flow with predicted nonces
* dep bump, disable esModule in file-loader options after new v5 release
* Don't show older tx annotation for already executed txs
* sort tx by nonce
* get new safe nonce after tx execution
* Bugfixes
* remove whitespace for showOlderTxAnnotation
* Feature #329: Rename to Multisig (#334)
* Rename to Multisig
* migration text fix
* replace safe for teams with multisig
* Fixs race condition (#341)
Fixs typo
* (Feature) Incoming transactions (#333)
* Add `blockNumber` to transactions model
* Create `incomingTransaction` node in store and load it along with `transactions`
* Add incoming transfers to the Transactions table
* Rename `transactionHash` to `executionTxHash` for better incoming/outgoing txs unification in Transactions table
* Add incoming transactions details
* Add transaction type icon in table row
* Add snackbar notification for incoming txs
* Make incoming transaction snackbar to show on any tab
* Use makeStyles hooks
* Fix incoming amounts conversion from wei
* Make concurrent promise calls
* Use date to calculate transactions ids
* Prevent repeating messages
- also move logic to display snack bar into the notifications middleware
* Merge transactions and incomingTxs to the transactions selector
* Show 'Multiple incoming transfers' if they are more than 3
* Prevent incoming transactions snack bar for first-timer users
* Set ID as the default order
* Use constant for _incoming_ type
* Feature #154: Fiat Balances (#290)
* Adds DropdownCurrency
Adds redux store for currencyValues
Adds Value column on the assets table
Adds mocked currency values
* (add) base currency dropdown
* (add) dropdown styles
* Refactors data fetching of the balances list
Now uses the endpoint
* Fix column value styling
* Adds support for ECB currency values
* Fixs list overflow
* Changes endpoint url
Adds decimals for balance values
* (fix) remove inline style
* (add) currencies dropdown search field
* (fix) list items' hover color
* Implements filter search
* Fix warning on dropdown template
* Saves selected currency in localStorage
* Remove spaces on curly braces
Add alt
Renames rowItem to cellItem
Improves fetchCurrenciesRates handling
* Removes withMutations
* Removes middleware
Export style to another file for dropdownCurrency
* Adds classNames
* Fix incomming transactions fetching (#346)
* Feature: Activate fortmatic (#339)
* Add fortmatic integration to web3connect
* add fortmatic
* Safe open form improvements: limit calling initContracts to 1 time
* update .env.example
* Feature #336: Confirmation required notification for non-owners fix (#338)
* Refactors grantedSelector with isUserOwner function
Checks if the user is owner of the safe before sending notification
* Adds safeParamAddressFromStateSelector
Refactors notificationsMiddleware with new selector
* Remove old size check
* safe notifications middleware fixes
* add apt-get update to travis yml
* (Fix) Incoming transactions inline-styles (#344)
* Remove inline styles
* Replace ternary with logical && operator
* use cn as shortcut for classnames
2019-12-16 13:04:42 +00:00
# it comes enabled by default in docker-compose
sudo service postgresql stop
2019-07-20 17:45:17 +00:00
docker-compose up -d
```
Check that the service is running at https://localhost:8000
2019-05-31 13:58:35 +00:00
2019-07-20 17:45:17 +00:00
2. Migrate Safe Contracts:
2019-05-31 13:58:35 +00:00
```
git clone https://github.com/gnosis/safe-contracts.git
cd safe-contracts
yarn
npx truffle migrate
```
2019-07-20 17:45:17 +00:00
3. Migrate Token Contracts for the tests:
2019-05-31 13:58:35 +00:00
Inside `safe-react` directory
```
2019-06-25 14:18:42 +00:00
npx truffle migrate
2019-05-31 13:58:35 +00:00
```
2019-07-17 13:16:40 +00:00
4. Run the tests:
2018-03-12 10:26:53 +00:00
```
2019-04-12 14:41:47 +00:00
yarn test
2018-03-12 10:26:53 +00:00
```
### Break down into end to end tests
Explain what these tests test and why
```
Give an example
```
### And coding style tests
Explain what these tests test and why
```
Give an example
```
## Deployment
Add additional notes about how to deploy this on a live system
## Built With
* [Truffle React Box ](https://github.com/truffle-box/react-box ) - The web framework used
* [Ganache ](https://github.com/trufflesuite/ganache-cli ) - Fast Ethereum RPC client
* [React ](https://reactjs.org/ ) - A JS library for building user interfaces
2020-08-05 07:30:57 +00:00
* [Material UI 4.X ](https://material-ui.com/ ) - React components that implement Google's Material Design
2018-03-12 10:26:53 +00:00
* [redux, immutable, reselect, final-form ](https://redux.js.org/ ) - React ecosystem libraries
2019-12-09 12:31:05 +00:00
* [Flow ](https://flow.org/ ) - Static Type Checker
2018-03-12 10:26:53 +00:00
## Contributing
Please read [CONTRIBUTING.md ](https://gist.github.com/PurpleBooth/b24679402957c63ec426 ) for details on our code of conduct, and the process for submitting pull requests to us.
## Versioning
We use [SemVer ](http://semver.org/ ) for versioning. For the versions available, see the [tags on this repository ](https://github.com/gnosis/gnosis-team-safe/tags ).
## Authors
2019-10-02 12:14:45 +00:00
- Germán Martínez([germartinez](https://github.com/germartinez))
- Mikhail Mikheev([mikheevm](https://github.com/mikheevm))
See the full list of [contributors ](https://github.com/gnosis/gnosis-team-safe/contributors ) who participated in this project.
2018-03-12 10:26:53 +00:00
## License
This project is licensed under the MIT License - see the [LICENSE.md ](LICENSE.md ) file for details
## Acknowledgments
* Thanks for Gnosis Team for providing the Safe contracts.