Commit Graph

2092 Commits

Author SHA1 Message Date
Mikhail Mikheev b8bfeab588
Feature: Use eth_sign for hardware wallets connected via onboard.js (#742)
* Use eth_sign for hardware wallets

* install onboard.js with fix from forked repo

* rebuild yarn.lock to fix cached onboard

* update bnc-onboard
2020-04-08 19:30:55 +04:00
Fernando e33d9fd9bb
(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
2020-04-07 18:45:42 -03:00
Fernando 0441ce2ec7
(Fix) Transaction not automatically executed (#716)
* feature: action/reducer to UPDATE_SAFE_NONCE

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

* chore: update `yarn.lock`

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

* refactor: use `SAFE_REDUCER_ID` constant

* refactor: remove `updateSafeNonce` file
2020-04-06 11:30:07 -03:00
Fernando ba49c97fb2
(Fix) Adapt app to back-end changes (#736)
* refactor: Set success status to `201` (CREATED)

* refactor: return `null` when there's no latestTx
2020-04-06 11:29:34 -03:00
Mikhail Mikheev 727b16481f
BUG: Only injected providers are cached as last used provider (#733)
* cache every used provider, not only injected one

* package json update
2020-04-03 19:53:58 +04:00
Mikhail Mikheev 94a56d2ebd
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.
2020-04-03 19:23:04 +04:00
Fernando aa2a386690
Bump version to `1.9.1` (#724) 2020-04-02 18:54:28 +04:00
Fernando 13b0874319
(Fix) set `INCOMING` as the default `type` for incoming txs (#722) 2020-04-02 11:43:20 -03:00
Mikhail Mikheev 04333ea127
bump package json version (#714) 2020-04-01 21:33:59 +04:00
Mikhail Mikheev f7bcec5376 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-04-01 18:48:17 +04:00
Mikhail Mikheev ef525f6da8
Don't reassign transaction in getAwaitingTransactions, check for another transaction executed with the same nonce and not only cancellation ones (#710) 2020-04-01 18:44:35 +04:00
Mikhail Mikheev 1d9683eb12
Bug: Eth balance not updating (#709)
* fix prop name for updating eth balance

* remove unneccessary index in import

* typo fixes in safe opening
2020-04-01 14:38:38 +04:00
Fernando 315d516123
(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
2020-04-01 12:07:17 +04:00
Mikhail Mikheev 31a1565637
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
2020-03-31 18:16:29 +04:00
nicolas fad5e10c2e
Fix safe creation from walletConnect (#703) 2020-03-31 15:41:45 +04:00
Fernando f1235738c0
(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
2020-03-31 15:20:17 +04:00
Mikhail Mikheev a6b70a1663
Feature: Offchain signatures (#668)
* offchain signatures wip

* offchain signing wip

* offchain signatures wip

* offchain signatures wip

* save signatures to the history service

* fix eth signer & useEfefct hook

* offchain signatures wip

* signature check, mainnet testing wip

* dep update

* disable offchain signing for smart contract wallets

* Refactor EIP712 signer

* bring back .env.example

* Check if save version is >1.1.1

* use canTryoffchainSigning boolean variable, add comment about 4001 error

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

* remove TYPE when sending txs to history service

* add eth_signTypedData_v4 signer, dep bump, add missing await

* add comments about version check for canTryOffchainSigning variable

* hide "please sign notification"

* dep bump

* dep bump

* Check if connected is ledger before trying offchain signatures

* minor fixes, temp deployment to test trezor

* add hardwareWallet boolean property to wallet model, disable offchain signatures for hw wallets
2020-03-31 15:19:40 +04:00
Agustin Pane c73dafe3ce
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>
2020-03-30 13:14:04 -03:00
Mati Dastugue 58130760c4
Merge pull request #698 from gnosis/fix/modal-info
Customize the info shown in the Onboardjs modal
2020-03-30 12:37:30 -03:00
Mati Dastugue 0786060488 Bump 1.5.0 version of onboardjs 2020-03-27 15:18:01 -03:00
Mati Dastugue afe0f6d8ad Merge branch 'development' of github.com:gnosis/safe-react into fix/modal-info 2020-03-27 15:13:41 -03:00
Germán Martínez 0c5afc0793
Add missing env variables (#699)
* Add mising env variables to .env.example

* Update .env.example

* Update .env.example
2020-03-27 19:12:13 +04:00
lukasschor accc9fbc15
Update readme (#696) 2020-03-27 13:53:20 +04:00
Mati Dastugue 95d2cb7c19 Updated modal description 2020-03-26 13:45:36 -03:00
nicolas 18a6525bc6
(Feature) Safe Deployment #605 #111 #395 #606 #396 (#659)
* Stepper component

* proxyfactory web3 contract

* add styles to body steps

* Steps info

* Open component: moving from class to function

* remove opening route and rendering it in Open component instead

* recover safe creation from txHash in localStorage

* remove commented code

* restore commented code

* creatign TX fix

* fix createSafe then function

* fixing stepper

* remove unused code

* remove opening route and finishin both variants of create

* add loader dots svg

* add error state design and loader dots

* fix error section

* add description to steps

* adding etherscan link

* taking values from variables

* fix heigh in body content

* add success svg

* add check image on last step

* fix margin and heigt to body rows

* remove commented code

* remove commented code

* fix for #396

* Fix empty_code

* set error if getReceipt fails

* fixes

* Fix: remove txHash from pendingInfo on retry

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustín Longoni <agustin.longoni@altoros.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>
2020-03-26 10:53:20 -03:00
Fernando c19b29854f
Remove `SafeVersionProvider` (#694) 2020-03-26 16:25:07 +04:00
Agustin Pane b5bc0304f3
(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>
2020-03-25 17:40:31 -03:00
Agustin Pane 5d7fa6428f
(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
2020-03-25 15:31:35 +04:00
Mikhail Mikheev 975892ea9d
v1.8.3 (#684)
* (Fix) Wrong value for ERC-20 tokens transfers (#679)

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

fixes #678

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

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

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

fixes #632

* Set default value to txData for custom txs

fixes #632

* bump version in package.json (#683)

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

* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

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

* Master/dev conflict fix (#685)

* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* v1.8.2 (#682)

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

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

fixes #678

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

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

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

fixes #632

* Set default value to txData for custom txs

fixes #632

* bump version in package.json (#683)

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

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

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

Co-authored-by: Fernando <fernando.greco@gmail.com>
Co-authored-by: Mati Dastugue <matias.dastugue@altoros.com>
2020-03-24 13:51:47 +04:00
Mikhail Mikheev 6b6aba041b Merge branch 'development' of github.com:gnosis/safe-react into development 2020-03-24 13:42:19 +04:00
Mikhail Mikheev ad99ae31e8 Merge branch 'master' of github.com:gnosis/safe-react into development 2020-03-24 13:42:04 +04:00
Mikhail Mikheev 4859e47999
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>
2020-03-24 13:41:32 +04:00
Mati Dastugue bf075305ba
Onboardjs - Get wallets by platform, fix ledger/trezor rpcUrls (#665)
* Added desktop support

* Added desktop option and logs for testing

* Get desktop mode from window object

* Add torus support and remove logs

* Update function name

* Upgrade onboardjs version

* fix ledger/trezor rpcUrls

* Bump version to 1.8.3

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
2020-03-24 13:37:54 +04:00
Mikhail Mikheev 39bcf37cd0
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>
2020-03-23 16:02:03 +04:00
Mikhail Mikheev 9dd33d5c23
bump version in package.json (#683) 2020-03-23 15:12:24 +04:00
Fernando a0ce9683dd
(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
2020-03-20 17:06:27 -03:00
Fernando c4cc79c682
(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
2020-03-20 12:46:12 -03:00
Fernando 7fae339f42
Merge pull request #673 from gnosis/development
Set version to 1.8.1 (#672)
2020-03-19 14:07:41 -03:00
Fernando 29fbe383f8
Set version to 1.8.1 (#672)
* Set version to 1.8.1
2020-03-19 14:01:13 -03:00
Fernando 8744dec10c
Merge pull request #671 from gnosis/development
Fix #670
2020-03-19 11:32:18 -03:00
Fernando 6389536cbd
Merge pull request #670 from gnosis/feature/#669-display-nft-disconnected
(Fix) Collectibles not displayed while disconnected
2020-03-19 11:20:39 -03:00
fernandomg ccfb3bd3b2 fix: collectibles not displayed while disconnected
Instead of picking the network Id from the web3 provider, we rely on the network name specified in the env variable.

fixes issue #669
2020-03-19 11:05:06 -03:00
Fernando f4bdf2f3c5
Merge pull request #666 from gnosis/development
Merge development into master
2020-03-18 18:51:03 -03:00
Fernando f582ccb950
Merge pull request #667 from gnosis/master-m-dev
Sync master with dev
2020-03-18 18:26:44 -03:00
fernandomg efebbac5d7 Merge branch 'master' into master-m-dev
# Conflicts:
#	package.json
#	src/components-v2/utils/modals/GenericModal/index.js
#	src/components/ConnectButton/index.jsx
#	src/logic/safe/utils/safeVersion.js
#	src/logic/tokens/store/actions/fetchTokens.js
#	src/routes/safe/components/AddressBook/index.jsx
#	src/routes/safe/components/Balances/SendModal/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/ChooseTxType/index.jsx
#	src/routes/safe/components/Balances/SendModal/screens/SendCustomTx/index.jsx
#	src/routes/safe/components/Balances/index.jsx
#	src/routes/safe/components/Balances/style.js
#	src/routes/safe/components/Layout.jsx
#	src/routes/safe/components/Settings/SafeDetails/index.jsx
#	src/routes/safe/components/Settings/UpdateSafeModal/index.jsx
#	src/routes/safe/components/Settings/index.jsx
#	src/routes/safe/components/Transactions/TxsTable/index.jsx
#	src/routes/safe/container/actions.js
#	src/routes/safe/container/index.jsx
#	src/routes/safe/store/actions/fetchSafe.js
#	src/routes/safe/store/actions/fetchTransactions.js
#	src/routes/safe/store/reducer/safe.js
#	src/store/index.js
#	yarn.lock
2020-03-18 18:20:22 -03:00
Fernando 5359794e21
(Feature) erc721 feature implementation (#570)
* Add Assets sections

* (add) collectibles tab

* (add) criptokitty items

* (add) collectible items, definitive edition

* (fix) collectibles were overlapping with bottom banner

* (fix) wording

* (fix) responsive issues

* Install `async-sema` dependency

* Create collectible source classes

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

* Update `Collectible` implementation to use new data source

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

* Add description to item's cards

- also added a mocked class with real data

* Fix `saveTxToHistory`, remove hardcoded `CALL`

* Fix after merge development

* Set background color for collectible based on data info

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

* Enhance collectible card info and group title

* Use current safeAddress to query for collectibles information

- also migrated from `withStyles` to `makeStyles`

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

* update yarn.lock after merge

* Fix linting error

* Move ethAsToken verification outside loop

* Use absolute route for `SendModal` import

* Move Collectibles into redux store

* Update yarn.lock file

* Selectable NFTs

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

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

* Update `yarn.lock`

* Update `yarn.lock`

* Fix item background color

* Clears the tokenID select field when the collectible selected changes

* Open Send modal from the assets section

* Use token name for the token selection dropdown

* Add openZeppelin contracts dependency

* Create ERC721 getter

* Fix types, default values and clean code

* Fix: properly refresh list of collectibles when switching safes

* Add ReviewCollectible step in send NFT

* Change items shadow

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

* Disable [Send] button for Collectibles if not owner

* Set Coins as default option in assets tab

- also fixed styles for `Coins` option

* Use collectible icon in send modal

* Set default message when no assets available

- removed pagination feature

* Create SafeVersionProvider to better handle version-related tasks

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

* Force build

* Update `yarn.lock`

* Disable Manage list for NFTs

* Fix container shadow

- Also fixes tables shadow, thanks to @gabitoesmiapodo

* Enable nested routes for balances (assets) tab

* Default to `/balance` if invalid nested path

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

* Change sub-menu buttons to clickable text

* Replace Paragraph with Link

* Fix invalid props errors for Link component

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

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

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

* Display failed transactions

* Use react.lazy for collectibles' modals

* Identify ERC-721 token transaction

* Fix Send Collectibles modal layout/behavior

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

* Set default `isSuccessful` flag to `true`

* Save version related values into store

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

* Migrate Balance to use store-provided values

* Migrate Settings to use store-provided values

* Migrate ChooseTxType to use store-provided values

* Remove SafeVersionProvider

Co-authored-by: Gabriel Rodriguez Alsina <gabriel.rodriguez@altoros.com>
Co-authored-by: apane <agustin.pane@gmail.com>
2020-03-18 17:24:24 -03:00
Mati Dastugue 497b672633
Upgrade onboardjs version to 1.3.4 (#654) 2020-03-13 13:27:59 +04:00
Germán Martínez 28fc81068f
Update links to docs (#634) 2020-03-11 17:17:12 +04:00
nicolas 3eb011b98f
processTransaction: add gasLimit in development (#657) 2020-03-11 17:15:34 +04:00
Fernando 3193cdc2b4
MERGE development into master (#648)
* Fix #597: USD value not load (#609)

* Converts all the addresses to checksum values

* Fix for empty address

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

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

* Bug: #482 - Address book Custom transactions Recipient validation (#577)

* (fix) text input bottom border

* Fix #482 input

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

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

* Fix custom tx addresses filtering

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

# Conflicts:
#	yarn.lock

* Remove console logs
Fixed prettier issues

* Remove unnecessary template string

* Fix `tokenAddress` string conversion

* Use `secondaryBackground` value

Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>

* (feature)  Adding origin for Apps Transactions (#576)

* Adding origin field when creates a TX

* refactor: replace list of arg by object in getApprovalTransaction and getExecutionTransaction function

* minor changes

* Allow execute if threshold is 1 for the first tx

- Related to issue #563
- `lastTx` is required due to #489

* - Normalizing logic between createTransaction and processTransaction
- Moving shared function to a new file

* Refactor `doesTxNeedApproval` back to the `isExecution`-related meaning

* Rename function and variable names

* Add tests for `getNewTxNonce` and `shouldExecuteTransaction` functions

* Pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

* Update Tests

- remove mocked `getGnosisSafeInstanceAt`
- pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

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

* (Feature) Add checks into CI (#594)

* Repare new dev and staging enviroments to deploy (#618)

* Repare new dev and staging enviroments to deploy

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

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

* add basename to app

* deploy pr to /app

* update travis

* linter error fixes

* fix travis build script

Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

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

* Rebase master onto development (#624)

* v1.7.3 (#611)

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

* Converts all the addresses to checksum values

* Fix for empty address

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

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

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

* Update package.json (#612)

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

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

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

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

* Bug: #482 - Address book Custom transactions Recipient validation (#577)

* (fix) text input bottom border

* Fix #482 input

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

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

* Fix custom tx addresses filtering

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

# Conflicts:
#	yarn.lock

* Remove console logs
Fixed prettier issues

* Remove unnecessary template string

* Fix `tokenAddress` string conversion

* Use `secondaryBackground` value

Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>

* (feature)  Adding origin for Apps Transactions (#576)

* Adding origin field when creates a TX

* refactor: replace list of arg by object in getApprovalTransaction and getExecutionTransaction function

* minor changes

* Allow execute if threshold is 1 for the first tx

- Related to issue #563
- `lastTx` is required due to #489

* - Normalizing logic between createTransaction and processTransaction
- Moving shared function to a new file

* Refactor `doesTxNeedApproval` back to the `isExecution`-related meaning

* Rename function and variable names

* Add tests for `getNewTxNonce` and `shouldExecuteTransaction` functions

* Pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

* Update Tests

- remove mocked `getGnosisSafeInstanceAt`
- pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

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

* (Feature) Add checks into CI (#594)

* Repare new dev and staging enviroments to deploy (#618)

* Repare new dev and staging enviroments to deploy

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

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

* add basename to app

* deploy pr to /app

* update travis

* linter error fixes

* fix travis build script

Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

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

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>

* (feature): [Safe Apps] App Transaction List Details (#601)

* Adding IconText component

* Get origin for TXs in Redux

* Adding Icon and name app to transaction list

* Fix customTx condition

* Fix HTML element for text

* simplify condition

* Bug: Accounts/Network are not updated in production build (#625)

* Adding Apps info to toast notification (#621)

* Adding APP_Name for APPs TXs in toast messages

* refactor: save appId instead of appName in origin field

* adding fallback icon and message to TX apps table

* review changes

* review fixes

* force build

* update Apps list info (#629)

* update Apps list info

* fix

* Feature: replace web3connect with onboardjs (#456)

* init onboard.js

* dep bump

* initial replacement of web3connect with onboard.js

* use averta font in the modal

* update onboard.js, add handlers for session murder

* update preferred wallets

* implement reconnecting to injected provider

* fix duplicate wallet disconnected notification

* update onboard dep

* onboardjs fixes

* test onboard js with hw

* add https to rpcUrl

* Added saved wallet and transactions validation

* made Transactions validation

* bnc-onboard version updated

* Fix lock/unlock problem

* bump onboardjs version

* fixed material-ui lab version

* Update onboard version

* Added hw wallets integration

* Updated preferred wallets

* Add ledger modal

* Merge with dev

* Update onboard

* BUmp new version of onboardjs

* Added some logs

* Added some logs

* Update onboardjs version fix ledger connection

* Update onboardjs version fix ledger connection

* Bump new onboardjs version

* Update new version

* Made improvements

* yarn.lock regenration

* remove https=true

* Remove comments and added some improvements

* Updated package.json dep

* Removed unused deps

* Remove web3connect dep

Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* Passing ethBalance to Apps component (#636)

* (Fix) Update safe modal verbiage (#633)

* Fixs verbiage in update safe modal

* Fixs yarn lock

* Bump dependencies (#639)

* Use hash history (#638)

* v1.7.3 (#611)

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

* Converts all the addresses to checksum values

* Fix for empty address

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

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

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

* Update package.json (#612)

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

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

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

* use hash history

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

* - Updates how the transactions are ordered, now orders by nonce and then by date (#640)

* (Fix) Lowercased safes address in URL (#631)

* Return checksummed addrress from `safeParamAddressFromState` selector

* Update `yarn.lock`

* Remove redundant `toChecksumAddress` call

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

* Rebase master into development (#647)

* v1.7.3 (#611)

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

* Converts all the addresses to checksum values

* Fix for empty address

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

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

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

* Update package.json (#612)

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

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

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

* V1.7.5 release (#641)

* use hash history

* update package json

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

* remove caching for webapp index.html

* keep --delete flag

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

* Bug: #482 - Address book Custom transactions Recipient validation (#577)

* (fix) text input bottom border

* Fix #482 input

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

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

* Fix custom tx addresses filtering

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

# Conflicts:
#	yarn.lock

* Remove console logs
Fixed prettier issues

* Remove unnecessary template string

* Fix `tokenAddress` string conversion

* Use `secondaryBackground` value

Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: Fernando <fernando.greco@gmail.com>

* (feature)  Adding origin for Apps Transactions (#576)

* Adding origin field when creates a TX

* refactor: replace list of arg by object in getApprovalTransaction and getExecutionTransaction function

* minor changes

* Allow execute if threshold is 1 for the first tx

- Related to issue #563
- `lastTx` is required due to #489

* - Normalizing logic between createTransaction and processTransaction
- Moving shared function to a new file

* Refactor `doesTxNeedApproval` back to the `isExecution`-related meaning

* Rename function and variable names

* Add tests for `getNewTxNonce` and `shouldExecuteTransaction` functions

* Pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

* Update Tests

- remove mocked `getGnosisSafeInstanceAt`
- pass `safeInstance` instead of `safeAddress` to `getNewTxNonce`

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

* (Feature) Add checks into CI (#594)

* Repare new dev and staging enviroments to deploy (#618)

* Repare new dev and staging enviroments to deploy

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

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

* add basename to app

* deploy pr to /app

* update travis

* linter error fixes

* fix travis build script

Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>

* (fix) sidebar contents' scrolling (#622)

* (add) linter sorting rules (#614)

* (add) linter sorting rules

* (fix) linting errors according to the new rules

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

* (feature): [Safe Apps] App Transaction List Details (#601)

* Adding IconText component

* Get origin for TXs in Redux

* Adding Icon and name app to transaction list

* Fix customTx condition

* Fix HTML element for text

* simplify condition

* Bug: Accounts/Network are not updated in production build (#625)

* Adding Apps info to toast notification (#621)

* Adding APP_Name for APPs TXs in toast messages

* refactor: save appId instead of appName in origin field

* adding fallback icon and message to TX apps table

* review changes

* review fixes

* force build

* update Apps list info (#629)

* update Apps list info

* fix

* Feature: replace web3connect with onboardjs (#456)

* init onboard.js

* dep bump

* initial replacement of web3connect with onboard.js

* use averta font in the modal

* update onboard.js, add handlers for session murder

* update preferred wallets

* implement reconnecting to injected provider

* fix duplicate wallet disconnected notification

* update onboard dep

* onboardjs fixes

* test onboard js with hw

* add https to rpcUrl

* Added saved wallet and transactions validation

* made Transactions validation

* bnc-onboard version updated

* Fix lock/unlock problem

* bump onboardjs version

* fixed material-ui lab version

* Update onboard version

* Added hw wallets integration

* Updated preferred wallets

* Add ledger modal

* Merge with dev

* Update onboard

* BUmp new version of onboardjs

* Added some logs

* Added some logs

* Update onboardjs version fix ledger connection

* Update onboardjs version fix ledger connection

* Bump new onboardjs version

* Update new version

* Made improvements

* yarn.lock regenration

* remove https=true

* Remove comments and added some improvements

* Updated package.json dep

* Removed unused deps

* Remove web3connect dep

Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>

* Passing ethBalance to Apps component (#636)

* (Fix) Update safe modal verbiage (#633)

* Fixs verbiage in update safe modal

* Fixs yarn lock

* Bump dependencies (#639)

* Use hash history (#638)

* v1.7.3 (#611)

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

* Converts all the addresses to checksum values

* Fix for empty address

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

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

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

* Update package.json (#612)

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

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

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

* use hash history

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

* - Updates how the transactions are ordered, now orders by nonce and then by date (#640)

* (Fix) Lowercased safes address in URL (#631)

* Return checksummed addrress from `safeParamAddressFromState` selector

* Update `yarn.lock`

* Remove redundant `toChecksumAddress` call

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

Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: francovenica <francovenica@gmail.com>

* Update safe relay and transaction endpoints

* Master into development (#655)

* Fix NODE_ENV development definition

  - Define develop build for development branches.
  - Use POSIX standard to call shell scripts in travis file.

* Mark travis shell scripts as executable

* Fix conditional statement at travis build.sh file

* Set development endpoints to stable staging backends

* Sync master dev (#656)

* v1.7.3 (#611)

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

* Converts all the addresses to checksum values

* Fix for empty address

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

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

* Fix notification of update if the safe is already updated

* Makes the notification clickable
Displays the notification for owners only

* Identify upgrade tx

* Add red badge to Settings tab

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

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

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

* Update package.json (#612)

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

* add public url to prod webpack config

* modify travis/webpack config to add public url

* add slash

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

* V1.7.5 release (#641)

* use hash history

* update package json

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

* remove caching for webapp index.html

* keep --delete flag

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

Co-authored-by: Agustin Pane <agustin.pane@gmail.com>
Co-authored-by: Mikhail Mikheev <mmvsha73@gmail.com>
Co-authored-by: Gabriel Rodríguez Alsina <gabitoesmiapodo@users.noreply.github.com>
Co-authored-by: nicolas <nicosampler@users.noreply.github.com>
Co-authored-by: David Albela Pérez <3659067+davidalbela@users.noreply.github.com>
Co-authored-by: lukasschor <lukas.schor@gnosis.pm>
Co-authored-by: Mati Dastugue <matiasdastugue@gmail.com>
Co-authored-by: francovenica <francovenica@gmail.com>
Co-authored-by: Richard Meissner <rmeissner@users.noreply.github.com>
2020-03-11 17:11:42 +04:00