Commit Graph

740 Commits

Author SHA1 Message Date
Lungu Cristian cee21241d4
WalletConnect no internet edge-cases (#20826)
* feat: only initialize wc if internet online

* feat: no internet toast for session establishment

* feat: no internet banner on session requests

* feat: reloading walletconnect on connection change

* fix: re-initialize only when previously failed to

* fix: removed legacy net-info ns

* ref: renamed :network-status to :network/status

* ref: moved network subs to own "category"

* fix: device network fx args

* fix: tests & showing persisted dapps when offline

* fix: addressed review comments

* fix: rebase issues

* fix: linting

* fix: usage of web3-wallet (#20864)

* fix: moved networks to contextx and renaming

* ref: moved building supported namespaces into fx
2024-07-25 11:21:31 +03:00
Lungu Cristian 07005f8ad5
Reject typeddata request when wrong chainId inside typed data (#20821)
* fix: reject typeddata request if wrong chainid

* fix: lint
2024-07-24 12:12:40 +03:00
Brian Sztamfater 4b7c906df2
feat(swap): set spending cap screen (#20727)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-07-22 08:50:29 -03:00
Icaro Motta cec46f985a
chore(style): Sort JSON keys in translations/en.json (#20785)
Sorts keys (non-recursively) in translations/en.json. The solution uses
the prettier plugin https://github.com/Gudahtt/prettier-plugin-sort-json.

We only format translations/en.json because it’s the only file we need to
manually change.

- Dependency added: prettier-plugin-sort-json version 4.0.0
- Dependency upgraded: prettier, from version 2.8.8 to 3.3.3.
2024-07-21 22:39:50 -03:00
Lungu Cristian 02e24208db
Wallet Connect transactions (#20755)
* feat: updated signing endpoints and refactor

6e056348...e8aec741

* fix: using the generic warning at the bottom

* fix: show parsed transaction parameters

* feat: adding fees to transactions

6e056348...b2e5e7a8

* feat: added fees

* feat: added eip-1559 fee estimation & tx priority

* feat: added fees and failed processing handling

* fix: show testnet name in the request

* fix: address review comments

* feat: added max-fee color when not enough balance

* ref: broke down tx fees subscription

* fix: handle gas estimation on status-go

1ef2434b...5389f281

* fix: don't overwrite dynamic fees if already there

* fix: malli schema and review comments

* fix: addressed review comments 1

* fix: addressed comments 2

* fix: removed unused require

* fix: addressed QA review

484b8aca...d07f9b5b

* fix: requests being shown simultaneously

* fix: removed support for eth_signTransaction
2024-07-19 14:16:51 +03:00
Andrea Maria Piana 93b5f7a918 Add confirmation to centralized metrics
This commit add a confirmation for centralized metrics.
It is added in 3 places:

1) Onboarding -> Create new account
2) Onboarding -> Sync profile
3) On the accounts view if the user is upgrading

To test 1 & 2, you should just be able to do that on a newly installed
device.

To test 3, you will have to upgrade from a PR without this feature that
has at least an account. It should show the confirmation modal until you
either click on Not now or Share usage data.

The modal should also be added in settings, but I will do that as a
separate PR.
2024-07-16 15:46:23 +01:00
Mohsen 4898d32243 [#20664] feat: add share usage data confirmation modal 2024-07-16 15:46:23 +01:00
Andrea Maria Piana ba76b9fd51 Allow setting store confirmations
This commit adds the ability to enable store confirmations in the UI,
under advanced settings.

1ef2434b...0d1e5aae
2024-07-15 07:46:13 +01:00
Brian Sztamfater 5f085e9cea
feat(swap): swap confirmation screen (#20669)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-07-14 00:51:02 -03:00
Icaro Motta 0b5dac0ad0
feat(settings): Revamp legacy Privacy and security settings (#20671)
Revamps the legacy "Privacy and security" screen to meet the new designs.

Fixes https://github.com/status-im/status-mobile/issues/20618

- Removed setting "Set dApp access permissions" (won't be used anymore).
- Removed setting "Display collectibles" (won't be used anymore).
- Removed setting "Chat link previews setting" (they already had no effect).
- Removed "Reset password setting". This setting is already supported in Profile
  > Password > Change password.
- Removed "Delete my profile". Profile deletion is already supported in the
  login screen.
- Moved setting "Show your profile picture" to Profile > Privacy and security.
- Moved setting "Accept new chats from <XYZ>" to "Allow new contact requests" in
  Profile > Messages. Now it's just a toggle.
- Moved Block screenshots (Android) or Hide Preview (iOS) which are both
  accessible in Profile > Privacy and security.
- Created function utils.navigation/navigate-back, but I only used this in 2
  namespaces to keep the PR under scope.

Areas that may be impacted: old legacy settings that are still relevant.
2024-07-11 22:23:17 -03:00
Mohamed Javid 866b854ee0
fix(key-pairs)_: error message on scanning different key pair QR (#20612)
This commit:

- update the connection string validation method to use the method from status-go
- updates the error message if the user tries to scan a different key pair QR for importing a missing key pair
- updates the text for exporting an individual key pair

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-07-11 15:55:00 +05:30
Andrea Maria Piana 0a0591f67a Add centralized metrics
6e056348...1ef2434b

This commit adds support for pushing centralized metrics to mixpanel.

It uses an interceptor and only picks a few selected events to push
through.

In order to test:

1) Create an account in the app
2) Go to Settings->Privacy
3) Enable metrics

You should now see the events on the mixpanel dashboard (login with your
status-im account for access).
Only some example events are tracked, they are just for testing
2024-07-11 10:06:46 +01:00
Alexander 4c4a8b65d4
Add QR scanner to connect Dapps through Connected Dapps screen (#20647)
* Add QR scanner to connect Dapps through Connected Dapps screen

* Style fix

* use-mount
2024-07-08 13:55:32 +02:00
Ajay Sivan b4866ff728
Swap: Edit slippage drawer (#20554) 2024-07-05 02:44:38 -07:00
Ulises Manuel 1e40d49369
feat(wallet): Add modal to remove `:key` and `:seed` accounts (#20569) 2024-07-03 11:48:10 -06:00
Volodymyr Kozieiev b28a8e153e
Fixes for screen where user locks network amounts to send (#20519) 2024-07-03 15:17:29 +01:00
Brian Sztamfater 2e8776d0a6
feat(swap): implement network selection drawer (#20368) 2024-07-03 09:15:07 -03:00
Lungu Cristian ac4ffd83db
Wallet Connect session establish networks (#20576)
* feat: showing supported networks in wc connection

* feat: added :large size for quo/data-item

* feat: added required networks check
2024-07-02 16:39:33 +02:00
Mohamed Javid 0581fc2f9d
feat(wallet): sync saved addresses (#20546)
This commit adds syncing saved addresses across paired devices whenever a new saved address is added or an existing one is edited or removed.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-07-02 15:33:54 +05:30
yqrashawn ef9cc55501
feat: check before syncing doc (#20504) 2024-07-02 16:36:42 +08:00
yqrashawn 0d9bedf11c
fix: use "Biometric" instead of Touch ID when no Biometric found (#20555)
Signed-off-by: yqrashawn <namy.19@gmail.com>
2024-07-01 09:57:21 +08:00
Mohsen b005eb8181
feat!: add saved addresses to wallet settings (#20475) 2024-06-26 16:44:29 +03:30
Alexander e2e8afb7b1
WC signing/sending transactions flow (#20445)
* WC signing transactions flow

* Fixes

* Fixes

* Post-review fixes

* Removed leftover

* Post-review fixes

* Fixes

* Fixes

* Test fixes
2024-06-26 14:45:43 +02:00
Sean Hagstrom 256f3f8f24
feat!: add key pairs and accounts settings to wallet settings (#20464)
* tweak: use support blur colors for action drawer icons

* tweak: support blur colors for drawer-top icon

* tweak: support blur colors for account list inside keypair component

* tweak: use blur colors for missing-keypair bottom sheet actions

* feat: remove feature-flag for key-pairs and accounts inside wallet settings

* fix: ensure key-pairs-and-accounts settings are visible

* tweak: display key-pair rename screen as full-screen modal

* tweak: animate key-pair scanning screen as modal

* fix: do not allow user to rename key-pair to an existing key-pair name

* fix: ensure we visualise the validation error for key-pair name that is too long

* fix: ensure we can see the recovery-phrase suggestions when testnet-mode is active

* tweak: show recovery-phrase errors when keyboard is hidden

* fix: ensure we do not re-hash password

* fix: ensure we call `on-close` function when successfully handling biometrics auth

* fix: ensure we clear error states when editing the recovery-phrase input

* fix: use blur styles for standard authentication password input

* chore: add labels for qr validation

* tweak: handle display import-qr error and allow for re-scanning

* tweak: update blur background for all bottom-sheets

* chore: add feature-flag for import-all key-pairs button for missing key-pairs

* tidy: remove unused variable

* fix: ensure layout for android is correct when entering seed-phrase in testnet-mode

* fix: ensure we return the updated db when updating the db with backup key-pair

* tweak: coerce nil to empty string

* tweak: change validation error message for short key-pair name

* tweak: hide the options icon for the default key-pair inside key-pairs and accounts settings
2024-06-26 13:16:00 +01:00
Jamie Caprani 6931fd0052
chore(wallet/shell): minor fixes from design review (#20494)
* chore(wallet): make recent tab fullscreen for empty view

* chore(wallet): hide advanced button on send page

* chore(wallet): hide estimated fees when no routes found

* chore(wallet): update emoji icon to edit

* chore(wallet): update key pair placeholder to use keypair example

* chore(shell): feature flag saved address option in scanner
2024-06-26 02:05:19 -07:00
yqrashawn ead51b7e7c
feat: simplification of onboarding intro view (#20386)
* feat: simplification of onboarding intro view

Signed-off-by: yqrashawn <namy.19@gmail.com>

* feat: new onboarding illustration

* fix: add accessibility label

* fix: wrong navigation stack

Signed-off-by: yqrashawn <namy.19@gmail.com>

* e2e: updated sign in

* fix: onboarding nav stack after flow change

---------

Signed-off-by: yqrashawn <namy.19@gmail.com>
Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
2024-06-25 11:03:10 +08:00
Parvesh Monu 5ee5d70567
Show correct drawer message for pending community request (#20485) 2024-06-21 17:20:20 +05:30
Jamie Caprani 4e8f4698a6
chore(wallet): add missing keypair to wallet home cards (#20455) 2024-06-20 22:37:49 +02:00
Ulises Manuel f192648518
feat(wallet): Add account name, emoji and color validation (#20422)
* Fix extra `0` in create/edit account title input

* Validate name, color and emoji in account creation/edition screen

* Refactor sub

* Fix button disabled condition and placeholder
2024-06-19 11:25:46 -06:00
Volodymyr Kozieiev f761d87b2a
Long tap on route to lock value sent from this network (#20413) 2024-06-18 15:42:29 +01:00
Icaro Motta 24b77811d8
fix(profile)_: Fallback to old profile name after migration from v1 (#20412)
This is a byproduct of the investigation on issue
https://github.com/status-im/status-mobile/issues/20203, more specifically, to
double-check if v1 users have their display names shown correctly.

Closes https://github.com/status-im/status-mobile/issues/20203

This is the scenario used to reproduce the bugs this PR is solving:

1. Alice creates an account in v1 (branch release/1.20.x).
2. Alice had 1 friend to chat with, Carol.
3. Alice sends and receives at least one message from Carol.
4. Alice installs the new app (latest develop branch suffices).
5. Alice login and try to edit her profile, but her 3-word name is not displayed
   in the Settings > Edit Profile screen, nor in the Settings > Edit profile >
   Name input field.
6. Alice also opens her chat with Carol, but her name appears as a public key
   instead of her 3-word name she identifies herself with.

The solution presented here is to just fallback to Alice's 3-word name (name
field in the profile/contact app-db instance).

Areas that may be impacted

- Edit profile name.
- Name displayed in chats from the perspective of the sender who migrated from
  v1.

Steps to test

In order to test this PR, it's necessary to migrate from v1 to v2 using two
separate builds. The v1 build can be obtained in PR
https://github.com/status-im/status-mobile/pull/20123. v2 build can be any one
from develop from today, for example.
2024-06-17 18:25:05 -03:00
Sean Hagstrom dc335cc333
chore: Revise code for wallet settings (#20439)
* fix: use correct error message when displaying seed phrase as incorrect

* tidy: cleanup naming of events and effects

* tweak: show incorrect-seed-phrase error for any import error

* fix: show correct error message for incorrect private key

* chore: move import-private-key and import-seed-phrase namespaces

* chore: move encrypted-qr namespace

* chore: move scan-qr namespace

* tidy: rename key-pair to keypair inside for wallet settings

* tweak: use :open-modal navigation instead of :navigate-to-within-stack

* tweak: rename screen for importing missing key-pair by seed-phrase

* tidy: refactor code
2024-06-13 14:13:26 +01:00
mmilad75 e0c7ecc6df
No routes found error is displayed in case asset value is within max amount but not enough balance for fee #20148 (#20272) 2024-06-13 14:41:06 +02:00
yqrashawn 874906b11f
fix: face id toggle respect system face id permission (#20227)
Signed-off-by: yqrashawn <namy.19@gmail.com>
2024-06-13 09:28:07 +08:00
Mohsen af07205f20
[#19737] feat: edit a saved address (#20398) 2024-06-12 12:55:38 +03:00
Sean Hagstrom 6a7f04a5a8
feat(wallet-settings): Implement import missing key pair by private key (#20372)
* chore: update private-key validation

* chore: add native module bindings

* chore: add translation labels

* chore: add size-12 for password icon

* fix: ensure we use feature-flag namespace when using feature-flags

* fix: blur styles for icon-avatar in missing key-pairs

* fix: blur styles for accounts in missing key-pairs

* fix: blur styles for bottom-sheet

* fix: adjust blur background color for bottom-sheets

* chore: add support for private-keys for missing key-pair component

* chore: add definitions for events and effects

* feature: implement private-key import for missing key-pair

* tidy: remove debugging

* tidy: distinguish to import for missing-keypair

* tidy: remove unneeded function

* tidy: refactor layout to use floating-button-page

* tidy: remove unused effect bindings

* tidy: refactor event bindings for importing-missing-keypair-by-private-key

* tweak: add error logging

* tidy: refactor helper to re-frame utils

* tweak: group partially operable and fully operable keypairs together

* chore: add documentation for call-continuation

* tweak: refactor documentation

* tweak: throw exception when not given a compatible continuation

* fix: update least-operability when making key-pair fully operable
2024-06-11 13:05:10 +01:00
Mohamed Javid 75c8437cc5
feat(wallet): Add network preferences selection for saved address (#20364)
This commit:
- adds a feature to add network preferences for saved addresses while saving
- updates the network preferences in "Share save address" to show the address and color of the saved address
- fixes the screen qualifier for the settings screen when navigating to wallet settings

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-06-06 23:01:12 +05:30
Sean Hagstrom d7530dfbee
Feature: Implement import of key-pair with recovery phrase inside wallet settings (#20181)
* fix: ensure missing key pairs scroll with list

* chore: add translations for labels

* chore: promisify validate-mnemonic native module function

* chore: add events for validating seed-phrases and making key-pairs fully operable with seed-phrase

* chore: define re-usable effects for validate-mnemonic and make-seed-phrase-keypair-fully-operable and import-keypair-by-seedphrase

* tweak: refactor error handling logic when importing key-pair by seed-phrase

* tweak: handle vectors and functions between events and effects

* tweak: refactor recover-phrase form to support custom title, children, and navigation icon

* tweak: add support for accessing input-ref in recovery-phrase form

* tweak: always mask seed-phrase when passing to render-controls

* feature: add initial screen for importing key-pair with seed phrase

* tweak: conditionally render keypair context tag inside recovery-phrase form

* tidy: rename on-input-ref to ref

* tidy: remove unused property

* tidy: refactor to use case expression

* tidy: format
2024-06-06 10:33:34 +01:00
Shivek Khurana 379ba87c16
🤝 🔁 [19834] Add dapp connection flow with a basic design (#20204) (#20325)
* 🔳 QR on success not being called

- IDK why, trying things out

* 🙃 Stupid of me

- My handler was not being called because I wrote the code in a
different QR scanner

*  Approval screen taking shape

* 🧹 Lint fix

* 🎛️ Wallet connect session screen shows up

- Hard coded the first account
- The data item component doesn't support networks or accounts yet
- The quo category component cannot show a data-item yet
- Connected accept and decline button

* 🧰 Fix review issues

* 🔨 Fix lint

* 🔧 Rename event and move dispatch

* 🔧 Fix lint

* 🎏 Add ff for wc scanner

- Bring back missing event
2024-06-05 16:17:19 +05:30
Brian Sztamfater 5bad8de886
feat(swap): implement select asset to pay screen (#20269)
Signed-off-by: Brian Sztamfater <brian@status.im>
2024-06-04 17:41:35 -03:00
Mohamed Javid 577dc16188
feat(wallet): Add new saved address from wallet settings (#20304)
This commit adds flow for adding new saved addresses from wallet settings

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-06-04 23:49:16 +05:30
Shivek Khurana 00d288fb94
Revert "🤝 [19834] Add dapp connection flow with a basic design (#20204)" (#20323)
This reverts commit 6ea39b5096.
2024-06-04 18:52:38 +05:30
Shivek Khurana 6ea39b5096
🤝 [19834] Add dapp connection flow with a basic design (#20204)
* 🔳 QR on success not being called

- IDK why, trying things out

* 🙃 Stupid of me

- My handler was not being called because I wrote the code in a
different QR scanner

*  Approval screen taking shape

* 🧹 Lint fix

* 🎛️ Wallet connect session screen shows up

- Hard coded the first account
- The data item component doesn't support networks or accounts yet
- The quo category component cannot show a data-item yet
- Connected accept and decline button

* 🧰 Fix review issues

* 🔨 Fix lint

* 🔧 Rename event and move dispatch

* 🔧 Fix lint
2024-06-04 18:26:14 +05:30
Lungu Cristian 5193f981f8
Add wallet connect signing flow (#20199)
* feat: added session request event & fx

* Added signing flow

* fix: addressed @ilmotta's review comments

* fix: addressed @shivekkhurana's review comments

* fix: addressed @ilmotta's review comments

* fix: converting typed data to clj and back to JSON
2024-06-04 13:30:26 +03:00
Mohsen 541b2e0909
[#20165] feat: import a missing key pair by scanning QR code (#20280) 2024-06-03 10:33:52 +03:00
Ajay Sivan 039ad8d162
Buy assets drawer - one-time & recurrent tabs (#20063) 2024-05-31 05:39:18 -07:00
Parvesh Monu 4ff73a8a6a
Show proper error when bio metric fails (#20233) 2024-05-31 13:13:00 +05:30
Mohamed Javid aa159f53ef
feat: Saved addresses - Display list, Show options and Remove (#20221)
This commit:
- Adds feature flag for saved addresses
- Displays the list of saved addresses in wallet settings
- Shows address options on tap of any saved address
- Adds the ability to remove saved address
- Refactors saved addresses data structure in app-db

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-05-31 00:51:51 +05:30
Mohsen e04c7f449f
[#20035] feat: import missing key pair by scanning QR code (#20144) 2024-05-30 22:07:33 +03:00
Alexander c03d91bcb0
Connected dApps: a list with empty state, plus button, etc etc / fetching dApps / disconnecting dApps (#19943)
* Connected dApps screen with empty state and list of dApps and the ability to disconnect dapps

* Fix

* Smaller style fix

---------

Co-authored-by: Lungu Cristian <lungucristian95@gmail.com>
2024-05-30 17:47:30 +03:00