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>
* 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
* 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
* 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
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.
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>
* 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
* 🔳 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
This commit adds flow for adding new saved addresses from wallet settings
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
* 🔳 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
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>
* 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>
* fix: ensure the keypairs use blur for their theme
* fix: allow for container-style to be passed to standard-title component
* chore: add translations for for missing-keypair labels
* tweak: add support for missing-keypair type for drawer-top component
* tweak: add initial implementation of missing-keypair list-item component
* tweak: add initial implementation of missing-keypairs list component
* feature: add initial implementation of displaying missing key-pairs
* tweak: update missing-keypair list-item to support blur, light, and dark mode
* chore: add missing-keypair list-item preview
* chore: add missing-keypairs preview
* chore: decode :operable key in account to be keyword
* tweak: remove unneeded keyword decoding
* tweak: update drawer-top component to use keypair and stored field
* tidy: revert change for checking for not default-keypair in actions menu
feat: implement wallet send flow edge case when selected token is not supported on receiver's preferred networks
Signed-off-by: Brian Sztamfater <brian@status.im>
* fix: resolve warning about using subscription inside a lazy seq
* fix: avoid schema error when we do not have a port for the media server
* chore: add feature-flag for network-settings inside wallet-settings
* chore: add testnet mode label
* chore: add testnet labels for bottom-sheets
* chore: add label for changing testnet mode
* feature: add initial network-settings screen to wallet-settings
* test: add test for sub
* tidy: rename function to hide-bottom-sheet
* tweak: add info-box for testnet mode
* tidy: testnet-mode bottom-sheet
* tidy: use reduce-kv instead of map & into
* tidy: use noun naming convention for function creating options for settings
* tweak: add support for displaying testnet-mode status on each wallet network
* chore: add translation for labels referencing testnet-mode and sepolia
* chore: add "key pairs and accounts" label
* chore: feature flag wallet-settings
* tidy: extact navigate-back function into static defn
* wip: add initial keypairs and accounts list view to wallet settings
* tweak: wire-up initial action menu for key-pairs
* tidy: extract key-pair container styles into style namespace
* tweak: fix dark background for key-pair and account settings
* tidy: refactor on-press handler for key-pair options
* fix: move feature-flag usage to settings screen instead of settings items definition
* tidy: remove unneeded key props
* tidy: clean up de-structuring and passing of props
* tidy: use keep with when expressions instead of filter and map expressions
* tidy: rename the wallet-settings feature flag
* tweak: rename and add feature-flags for mobile wallet settings
* tweak: use scrollview for feature-flags and add spacing between feature-flag groups
* tweak: adjust the way feature-flags are displayed in groups
* tidy: remove unneeded prop
* tidy: use bottom-inset for padding key-pair and accounts list
* tidy: change `filterv` to `filter`
* tidy: use subscription for building account-props
* tidy: use subscription to build the entire keypair-account
* tweak: use key-pair type to determine default key-pair
* tidy: rename component to settings-category-view
* tidy: use assoc instead of merge
* tidy: extract function from subscription
* test: add tests for formatting key-pairs and accounts for wallet settings
* tweak: use `match?` instead of `=`
* tidy: use `swap!` without anonymous functions