Commit Graph

355 Commits

Author SHA1 Message Date
Sale Djenic 9b1e794e8f refactor(@desktop/settings-pivacy-security): privacy and security section updated 2022-02-01 11:47:43 +01:00
Sale Djenic 6e1438d241 refactor(@desktop/general): `globalUtils` instance added (changed old `utilsModel`) 2022-02-01 11:44:56 +01:00
Anthony Laibe fdca0da77d feat: saved address view
Connect list and change
Provide view API
Create events
2022-02-01 11:43:44 +01:00
Sale Djenic b3f8af8e06 refactor(@desktop/general): qml code referring to the old code base commented out
Qml code referring to the old code base commented out, but not deleted,
due to easier refactoring the rest of the app.
2022-02-01 11:42:42 +01:00
Alexandra Betouni f0b39ce4f6 Refactor: Moved openPopup function to Global
The openPopup function was declared in AppMain
and used via dynamic scoping in many places in the
application. Moved function to Global component
and updated all places to call it via Global instead.

Closes #4267
2022-02-01 11:38:46 +01:00
Alexandra Betouni 336f90a60f feat(desktop/wallet) Removed dynamic scoping from wallet
Removed all dynamic scoping parts in wallet section plus

- Renamed Config to Global and added more functions there
- Moved changeAppSectionBySectionType function to Global
  and updated all places where is used to call it from
  Global instead
- Moved openLink function to Global and updated all places
  where is used to call it from Global instead
- Moved errorSound to Global, introduced playErrorSound
  function  and updated all places where is used to call
  this function from Global instead

Closes #4245
2022-02-01 11:38:27 +01:00
Anthony Laibe 6c4fab1a20 fix(@wallet): delete account
fixes #4384
2022-01-10 15:58:57 +01:00
Anthony Laibe 8889bbdb08 fix(@wallet): tx history view
fixes #4385

Correctly display the date and if the node is an archival node
2022-01-10 15:58:36 +01:00
Anthony Laibe 5eb582b18c fix(@wallet): Collection without assets
fixes #3808

In some cases, the opensea API return collection for an owner without
assets, we handle this case in the UI
2022-01-06 15:16:32 +01:00
Alexandra Betouni a57fb330bd fix(dekstop/wallet) wrong account color displayed
In receive modal the account color was not corresponding to
the actual account color

* Updated StatusAccountSelector to use accounts from
  new backend
* Updated WalletHeader to use currentAccount from new
  backend

Closes #4071
2021-11-17 16:24:12 +02:00
Anthony Laibe df670bfcbb fix(desktop/wallet): new account with error 2021-11-16 10:07:15 +01:00
Jonathan Rainville 2d0c95feb3 fix: fix adding custom tokens
Fixes #4040 for real this time
2021-11-11 09:58:05 -05:00
Pascal Precht 7fcd280fe0 fix(@desktop/wallet): ensure NFT background colors are rendered correctly
Also adjust margins of collectible items to adhere to designs.

Fixes: #3981
2021-11-05 11:02:45 -04:00
Alexandra Betouni 6d944dfb69 fix (desktop/wallet) fix menu button add button
Closes #3980
2021-11-05 11:02:45 -04:00
Pascal Precht ca4c1904d8 fix(AddAccountWithSeedModal): ensure AccountSelector is working 2021-11-05 11:02:45 -04:00
Anthony Laibe 63963039eb fix(@desktop/wallet): make the receive modal use the old wallet
as it is not yet migrated
2021-11-05 11:02:45 -04:00
Sale Djenic 05cf431339 fixed issues after rebase 2021-11-05 11:02:45 -04:00
Anthony Laibe 59f604349c refactor(@wallet/desktop): refactor wallet with new architecture
refactor: wallet: connect current account

refactor(@wallet): load collection and connect to store

refactor(@wallet): add boilerplate for accounts creation/generation

refactor(@wallet): watch account

refactor(@wallet): Add account generation

refactor(@wallet): display all accounts

refactor(@wallet): switch account

refactor(@desktop): update current currency

refactor(@desktop/wallet): token action

refactor(@desktop/wallet): Add update account

refactor(@desktop/wallet): filter chat account from wallet

refactor(@desktop/wallet): Update currency attribute

refactor(@desktop/wallet): Fix display of various balances

refactor(@dekstop/wallet): handle current account changed

refactor(@wallet/desktop): add notify event on main section

refactor(@desktop/wallet): Push events from service

refactor(@desktop/wallet): handle all tokens event

refactor(@desktop/wallet): refresh accounts on event

refactor(@wallet/desktop): formatting of currency balances

refactor(@desktop/wallet): load collectible

refactor: refactor wallet transaction history to the new architecture

update status-lib

refactor: add back events for the transaction history

refactor: support multiple accounts in the transaction history
2021-11-05 11:02:45 -04:00
Iuri Matias 7c8f3f5923 add mnemonic module 2021-11-05 11:02:45 -04:00
Sale Djenic 3f6bb66536 refactor(@desktop/general): `globalSettings` moved to Nim 2021-11-05 11:02:45 -04:00
Sale Djenic f0b2ed6cca refactor(@desktop/general): `appSettings` moved to Nim 2021-11-05 11:02:45 -04:00
Anthony Laibe a7a56cf471 refactor(@desktop/wallet): connect ui and account token 2021-11-05 11:02:45 -04:00
Anthony Laibe 4bc61134c4 refactor(@desktop/wallet): Connect list account and qml 2021-11-05 11:02:45 -04:00
Anthony Laibe 4bbf19c470 refactor(@wallet/desktop): bind new token list to qml 2021-11-05 11:02:45 -04:00
Sale Djenic 37e9150021 Cleaning up the code, and removing leftovers 2021-11-05 11:02:45 -04:00
Sale Djenic 30f11c06d4 onboarding process updated, import account feature handled 2021-11-05 11:02:45 -04:00
Pascal Precht b91a423801 refactor: replace StatusWalletColor components with StatusQ components 2021-10-28 11:31:21 +02:00
Alexandra Betouni 426c116bac refactor(desktop) Made shared a QML module
Use it as import shared 1.0, import shared.controls 1.0
etc instead of import "../../../shared"

Closes #3934
2021-10-27 18:05:45 -04:00
Pascal Precht 8617c70742 refactor: remove AccountSelector and replace with StatusAccountSelector 2021-10-27 11:48:43 -04:00
Khushboo Mehta 7114240e72 refactor: Replace and remove StatusRoundButton under ui/shared/status
closes #3898
2021-10-26 18:58:16 +02:00
Pascal Precht 2db77fa31c refactor: replace StatusIcon and StatusLoadingIndicator with StatusQ components 2021-10-26 10:47:47 -04:00
Pascal Precht cbbbedcc79 cleanup: remove legacy `StatusCheckbox` 2021-10-26 10:47:16 -04:00
Khushboo Mehta ef4934cee4 refactor: Replace usage of StatusRadioButton under ui/shared to its corresponding StatusQ component
closes #3897
2021-10-26 14:37:15 +02:00
Pascal Precht 6db7b5be44 refactor(@desktop/wallet): replace legacy StatusButton with StatusQ StatusButton 2021-10-21 09:22:35 -04:00
Pascal Precht 87ea584b62 refactor: move `Timer` to ui/shared/controls 2021-10-14 12:51:27 -04:00
Pascal Precht e598df1d1e refactor: move `TextWithLabel` to ui/shared/panels 2021-10-14 12:51:27 -04:00
Pascal Precht e6df5c8b12 refactor: move `StyledTextEdit` to ui/shared/controls 2021-10-14 12:51:27 -04:00
Pascal Precht 61ccf9c757 refactor: move `StyledText` to ui/shared/panels 2021-10-14 12:51:27 -04:00
Pascal Precht ed73651db8 refactor: move `SplitViewHandle` and `StatusTabButton` to ui/shared/panels|controls respectively 2021-10-14 12:51:27 -04:00
Pascal Precht 4bb4708528 refactor: move `SearchBox` to ui/shared/controls 2021-10-14 12:51:27 -04:00
Pascal Precht 322a071aa3 refactor: move `SVGImage` to ui/shared/panels 2021-10-14 12:51:27 -04:00
Pascal Precht 4003f30d68 refactor: move `RoundedImage to ui/shared/panels 2021-10-14 12:51:27 -04:00
Pascal Precht fa3adb30e4 refactor: move `PopupMenu` to ui/shared/popups 2021-10-14 12:51:27 -04:00
Pascal Precht cbfe90947e refactor: move `ModalPopup` to ui/shared/popups 2021-10-14 12:51:27 -04:00
Pascal Precht bdc7c799d2 refactor: move `Input` to ui/shared/controls 2021-10-14 12:51:27 -04:00
Pascal Precht 5d05b415ba refactor: move view and panels components into controls if they belong there 2021-10-14 12:51:27 -04:00
Pascal Precht 00a61daabd refactor: move `Address` into ui/shared/panels 2021-10-14 12:51:27 -04:00
Pascal Precht 2d47223e1c refactor: move `AccountSelector` into ui/shared/panels 2021-10-14 12:51:27 -04:00
Pascal Precht 4e8f2303e6 refactor(@desktop/profile): introduce new QML and store structure in profile section
Closes #3712
2021-10-14 09:29:05 -04:00
Khushboo Mehta 80de3f75eb fix(@desktop/wallet): move QML Wallet section to new architecture
fixes #3714
2021-10-13 13:53:01 -04:00
¨Anthony e0c5e9b9b0 fix(@desktop/wallet): gas error position 2021-09-28 15:36:11 -04:00
Alexandra Betouni 4ee21ada05 feat(desktop) Added image function in Style
Introduced Style.svg() Style.png() Style.emoji() and
Style.icon() in Style.qml. Those should be used to
set the source in Images instead of using relative
paths. Usage:
Image {
   source: Style.svg("check)
   ....

Also moved all Singletons inside a new "utils"
folder and made it a QML module, to use
import utils 1.0 instead of relative paths

Closes #3678
2021-09-28 15:28:00 -04:00
Anthony Laibe 712c75f051 fix(@desktop/wallet): Fix backup warning
Also prevent backup warning to be double when we switch wallet 2 to 1
2021-09-20 12:18:16 -04:00
Richard Ramos 285f54dab6 EIP1559 2021-09-10 13:42:19 -04:00
Richard Ramos db3b7ecfd9 feat: Version Updating
Fixes #1290
2021-08-24 16:56:55 -04:00
Anthony Laibe c5d841f68d fix(@desktop/wallet): view in 'collectible' close modal
fixes #2644
2021-08-16 14:33:09 -04:00
Khushboo Mehta 09fb1a173c fix(@desktop/wallet) Truncate long wallet amount
Added logic to convert large amounts to Millions and Billions

fixes #2667
2021-08-13 15:03:24 +02:00
Anthony Laibe 08e3b330e5 fix(@desktop/wallet): correct position of not enough gas error
fixes #2714

Increase height of the modal and position the validator to below the previous
item
2021-07-28 16:03:10 -04:00
Andrei Smirnov a3979511e2 fix(@desktop/wallet): modal is not being closed when clicking Add Account 2021-07-20 10:05:52 -04:00
Anthony Laibe 4269b51ea6 feat(@desktop/wallet): display confirmation block count
fixes #2715
2021-07-19 13:33:32 -04:00
Sale Djenic 1acbc76cc9 chore(@desktop/general): run translation script
All untranslated properties are translated now using translation scripts.
2021-07-19 12:27:45 -04:00
Richard Ramos 065bd26786 fix: code review 2021-07-06 11:58:47 -04:00
Richard Ramos 5f7f899c3b refactor: separate slots for sending eth and tokens 2021-07-06 11:58:47 -04:00
Eric Mastro 77e501c478 fix(wallet): QML error when loading history
Fixes: #2725.

When clicking on the History tab for a wallet account, there was a QML error for `qrc:/app/AppLayouts/Wallet/WalletLayout.qml:113: TypeError: Property 'checkIfHistoryIsBeingFetched' of object HistoryTab_QMLTYPE_503(0x7fed35da2710) is not a function`. This must have been reintroduced when StatusQ objects were introduced. It has now been removed.

chore: change log level to warn for non-archival node
Previously, there was an error being logged for non-archival infura nodes being used (typically in dev). This log level has been reduced to a warning as the application still functions with non-archival nodes.
2021-07-06 11:28:00 -04:00
Pascal Precht 88ca3b9bbf refactor(WalletLayout): use StatusQ two panel layout 2021-06-30 15:08:26 +02:00
Jonathan Rainville b720a611c4 fix(wallet): fix loading of initial balances 2021-06-29 07:55:26 -04:00
Jonathan Rainville eb726a315c fix(hisotry): fix load more history button
Fixes #2754
2021-06-29 07:55:26 -04:00
Iuri Matias 6bcdb9ca54 refactor wallet views
add getSettings methods to src/status

fix issue with calling getSettings; document issue

remove most direct references to libstatus; document some common issues

remove most references to libstatus wallet

add mailserver layer to status lib; remove references to libstatus mailservers

remove libstatus accounts references

move types out of libstatus; remove libstatus types references

remove libstatus browser references

refactor libstatus utils references

remove more references to libstatus stickers

remove references to libstatus constants from src/app

remove more libstatus references from src/app

refactor token_list usage of libstatus

refactor stickers usage of libstatus

refactor chat usage of libstatus

remove libstatus references from the wallet view

remove logic from ens manager view

fix issue with import & namespace conflict

remove unnecessary imports

refactor provider view to not depend on libstatus

refactor provider view

refactor: move accounts specific code to its own section

fix account selection

move collectibles to their own module

update references to wallet transactions

refactor: move gas methods to their own file

refactor: extract tokens into their own file

refactor: extract ens to its own file

refactor: extract dappbrowser code to its own file

refactor: extract history related code to its own file

refactor: extract balance to its own file

refactor: extract utils to its own file

clean up wallet imports

fix: identicon for transaction commands
Fixes #2533
2021-06-17 16:11:01 -04:00
Eric Mastro 0b0a542828 fix: loading of wallet history, display of tx datetime
Fixes: #2539.

Transaction history is now correctly being fetched from status-go as per mobile. Firstly, when accounts are added (ie as watch accounts), `wallet_checkRecentHistory` must be called first so that the status-go db is populated. After that, `wallet_getTransfersByAddress` can be called. On app load, when we run the `initBalance` logic, we are calling `wallet_getTransfersByAddress`, asking for the last 20 transactions with the `loadMore` parameter set to false. When the user navigates to the Wallet > History tab, they can then click “Load More” to fetch more transactions from status-go. Once the number of transactions returns false below the expected amount, the remaining transactions to fetch have been exhausted and the “Load More” button is disabled.

feat: add non-archival node warning to the UI to indicate to the user that they may not have complete results

feat: set active account to the added account
Once an account is added to the wallet, that newly added account is selected as the active account.

1. The “load more” button is active when new transactions that aren’t already displayed are returned from `wallet_getTransfersByAddress`. This is the only way to enable or disable the “Load more” button as status-go is not able to return information regarding whether or not there are more transactions to be fetched. The downside to this is that lets say the last page of transactions is returned, but there are no more pages left. These returned txs are not currently displayed, so the “load more” button will still be enabled. However, the next click of the button will return 0 results, thus disabling it. It’s effectively an extra click to get to the disabled state.
2. For more information on how the `toBlock` parameter operates for the `wallet_getTransfersForAddress` RPC call, see https://notes.status.im/XmENTrVRRaqhwE4gK0m8Mg?view.
2021-06-10 10:47:03 +10:00
Jonathan Rainville bee54e628f feat(Activity center): add placeholder activity center
Fixes #2608
2021-05-31 15:54:18 -04:00
Richard Ramos 19d4279237 use new wallet api to receive wallet signals 2021-05-18 15:24:05 -04:00
Eric Mastro ee1287b71d fix: prevent crash on generate account wrong password
Fixes #2448.

Currently, if a wrong password is entered when generating a wallet account, the app will crash due to attempting to decode a `GeneratedAccount ` from an rpc response containing only an error.

With this PR, we are detecting if an error is returned in the response, and if so, raising a StatusGoException. This exception is caught in the call chain, and translated in to a `StatusGoError` which is serialised and sent to the QML view, where it is parsed and displayed as an invalid password error in the input box.

refactor: remove string return values as error messages in wallet model
In the wallet model, we were passing back empty strings for no error, or an error as a string. This is not only confusing, but does not benefit from leaning on the compiler and strong types. One has to read the entire code to understand if a string result is returned when there is no error instead of implicitly being able to understand there is no return type.

To alleviate this, account creation fundtions that do not need to return a value have been changed to a void return type, and raise `StatusGoException` if there is an error encountered. This can be caught in the call chain and used as necessary (ie to pass to QML).

refactor: move invalid password string detection to Utils
Currently, we are reading returned view model values and checking to see if they include a known string from Status Go that means there was an invalid password used. This string was placed in the codebased in mulitple locations.

This PR moves the string check to a Utils function and updates all the references to use the function in Utils.
2021-05-14 10:27:37 -04:00
Eric Mastro daabef3a3c fix: do not show watch-only accounts as “from address”
Fixes: #2257.

If a user had selected a watch-only address in the wallet, the backend `walletModel.currentAccount` property would also change. When loading a transaction modal, this property was used to set the `selectedAccount` value for the “from” `AccountSelector`, regardless if the account was a watch-only address.

This PR updates the logic for `selectedAccount` such that it will only allow the account to be selected if it is not a watch-only account.
2021-04-29 12:36:39 -04:00
Pascal Precht aa8d9a7f48 feat: introduce StatusLoadingIndicator component
A `StatusIcon` that rotates infinitely and can be used for indicating
pending states.

Usage:

```
StatusLoadingIndicator {
    width: 24 // default: 17
    height: 24 // default: 17
    color: "red" // default: loading asset color
}
```

This also removes `LoadingImage` component from `ui/shared`.

Closes #2360
2021-04-27 14:56:09 -04:00
Eric Mastro 58e292e9ab fix: Add close button to seed backup warning
Fixes: #2248.

Add a close button to the seed backup warning banner in the wallet. The banner will reappear upon application restart as long as the seed hasn’t already been backed up (`profileModel.mnemonic.isBackedUp`).

A new .svg with a white outline needed to be added as well because the original “close.svg” had a purple outline, which would show up when the ColorOverlay applied to the close button had an opacity less than 1.0.
2021-04-21 17:59:27 -04:00
Pascal Precht aeedc87368 feat: introduce global settings
This commit introces global settings that apply across accounts used
inside the application. This is useful when settings like the selected
locale should b the same across all accounts.

Closes #2144
2021-04-19 13:53:14 +02:00
Jonathan Rainville dae0d60684 feat: extract seed textArea to shared component and use it in wallet 2021-04-15 16:50:57 -04:00
Pascal Precht 63bc6f0e53 chore: remove unnecessary splitview props 2021-04-15 10:12:50 +02:00
Pascal Precht 153d37a7dc fix(Wallet): use correct theme colors for wallet icons in receive modal 2021-04-14 17:00:37 +02:00
Pascal Precht f2524db882 fix(Wallet): introduce hover effect for wallet accounts 2021-04-14 17:00:37 +02:00
Jonathan Rainville 8607251a6e fix: fix qml warnings 2021-04-13 17:49:43 -04:00
Pascal Precht 0b5a51177f core: update token icon assets
Closes #2019
2021-04-13 15:12:12 -04:00
Jonathan Rainville 6c0fce5b0c fix: menu dropdowns not closing on button click and position 2021-04-01 16:59:43 -04:00
Jonathan Rainville de307276c1 fix: wallet left tab button colors 2021-03-26 15:28:06 -04:00
Jonathan Rainville 038ea033c9 feat: implement new dark theme colors for menu and more
Fixes #2094
2021-03-26 15:28:06 -04:00
Pascal Precht 907c257eaf fix(Wallet): prevent signing phrase from leaking out of modal 2021-03-26 11:30:03 -04:00
Eric Mastro 2336aa4e6f fix: custom token validation for non-token addresses
When contract addresses that are not ERC-20 or ERC-721 were input, the token would be allowed to be added and would crash the app.

In addition, when an ERC-20 contract was deployed without a name and symbol, “Invalid ERC-20 address” would appear.

This PR adds error checking from the token detail lookup and reports the error back to the user in the modal. This prevents non-ERC-20/721 contracts from being able to be added to the app and prevents a crash.
2021-03-25 15:52:02 -04:00
Jonathan Rainville 2a9f9118a1 fix: fix settings not being refetched when they had been edited before 2021-03-24 12:06:24 -05:00
Jonathan Rainville b9594591b0 fix: fix a lot of issues relative to dark theme
Fixes #1997
2021-03-16 17:22:58 -04:00
ace-smart 4c31a97db8 Fixed wrong color issue of the wallet layout. Fixes #1903 2021-02-25 15:43:14 -05:00
Richard Ramos 6207c8af53 fix: appSettings were being overwritten due to defaultAppSettings periodically executing sync() 2021-02-18 16:40:21 -05:00
Jonathan Rainville 0e699cac65 chore: run translation scripts 2021-02-18 15:23:58 -05:00
Pascal Precht 5ec3ad88d5 fix(SetCurrencyModal): fix callstack size exceeded error
There's a bug in the `SetCurrencyModal` where it runs into a callstack size
exceeded error because we're calling it's `open()` API to open itself.
That function happens to call itself again and again.

The reason that API was introduced in the first place, was to ensure that
the configured default currency is reflected currectly.

This commit fixes that issue by getting rid off the `open()` and `close()`
APIs which cause the mentioned error, and rely on `openPopup`'s parameters
configuration instead.
2021-02-08 17:37:28 -05:00
Pascal Precht 62183fb414 refactor: replace StyledButton with StatusButton
There are some inconcistencies in the application when it comes to
button UI elements because we're using `StatusButton` in some places,
in other we use `StyledButton`. The latter is the original
component we've created when we started out building Status
Desktop, but is planned to be removed entirely in favour of
`StatusButton`.

This commit replaces the usages of `StyledButton` with `StatusButton`
2021-02-02 10:57:42 +01:00
Jonathan Rainville bc61aee55e fix: fix QML errors 2021-02-01 13:27:20 -05:00
Richard Ramos c241bd47db fix: code review 2021-02-01 12:02:55 -05:00
Richard Ramos 81c33fe2af Do initial balance fetch async 2021-02-01 12:02:55 -05:00
Pascal Precht 3a538acb1e feat: introduce StatusWalletColorSelect component
This is a new form control component to select colors for wallet
accounts. It will replace the currently used `ColorSelect` in the
Status Desktop application so it aligns with the new designs.

Closes #1497
2021-01-21 11:59:34 -05:00
Pascal Precht 787354b0dc feat: introduce StatusExpandableAddress component
This introduces a new component to render Addresses that can be
expanded as well as copied using `CopyToClipBoardButton`.
While there's already an `Address` component that allows for expansion,
it doesn't give us control over it's look and feel and, should rather
be a `Button` anyways.

There's also cases in the application where we render a collapsed address
and don't allow for expanding it. In such cases, we might not want/need
a button at all.

Might make sense to introduce a separate address component that just shows
a collapsed address without any behaviour, which can then be used inside
`StatusExapandableAddress`.

Closes #1633
2021-01-19 16:48:26 -05:00
Pascal Precht c328f332f6 fix(Wallet): fix bug that prevented users from setting the currency
Setting the default currency through the UI doesn't work because of a `MouseArea` that
is masking the an underlying `StatusRadioButton` which will tricker the default currency
change.

This commit enhances the `MouseArea` to trigger the default currency change and it
also ensures the UI is responding accordingly. Namely that the new default currency
is correcly selected in the list of currencies.

There's also a little change in the background hover color so it works well across
light and dark themes.

Fixes #1632
2021-01-14 16:00:10 -05:00