The requirements are that we allow all available networks
to Wallet Connect
Also temporarily disable the tests that validate selection working
Closes: #15638
The static url validation state `Pairing.errors.ok` was directly
responsible for the validation action in UX. With current change
the validation is now based on the pairing response. When the
pairing response is received the UX is validated and after half second
UX is moved to the approval process (`ConnectedDAppModal`)
Closes: #15591
Adding local setting: metrics_popup_seen
Small refactoring: showing popup from main.qml
Showing popup: 1. on welcome screen, 2. in Settings/Privacy page and 3. after login when the popup has not been shown yet
Issue #15628
Add new settings page for metrics management - Privacy and security
Add popup to enable/disable metrics on Onboarding and Privacy screens
Add MetricsStore in QML
Issue #15490
fix#15179 that triggers connection request from client
- Setup the initial architecture for connecting Status-go and UI
screens
- Implement the request Connection popup for Accept or Rejecting
connection
Updating the SendModal to receive an accountAddress to preselect the account instead of the account item model
to squash: Fix account selection. by address
In comparison to the previous version it provides simpler API
and better validation based on AmountValidator.
Old version will be removed after full integration of the new version.
- Network item hover color, selected item border and background changed to have a better UX and being more accurate to the new design.
- Disabled option of unchecking networks. At least, always one should be selected.
Description:
Enhanced the SendModal.qml to filter out non-transferable (soulbound) collectibles from the send model. This ensures that only transferable collectibles are displayed when sending.
Changes:
Updated SendModal.qml to include a SortFilterProxyModel with a ValueFilter.
The ValueFilter targets the soulbound role and filters out collectibles with soulbound set to false.
Issue:
Closes#14578
Implemented using the fees from the transaction data sent
by the dApp.
Also fixed the nim status go wrapper to send proper formatted
string as expected on the other side.
Updates: #15192
* feat(WalletConnect): Implement sign request modal
1. Implementing sign request modal based on SignTransactionModalBase
2. Adding storybook page
3. Integrate it in the app
4. Removing DAppRequestModal
5. Update RoundImageWithBadge to preserve aspect ratio between badge and main image
* fix(WalletConnect): Remove unneeded properties from WalletConnectService API
Removing `selectedAccountAddress` and `loginType`. These properties are now passed through DAppsWorkflow API
* fix(WalletConnect): Removing unnecessary changes
- Created data transformation file called `WalletAccountsAdaptor` for `SendModal`. Now it contains the owned wallet accounts model data transformations.
- Added common formatting method for short chain ids to some utils and partially removed backend dependency.
- Component name changed to be more precise with what it represents.
- Removed `RootStore` dependency from `Helpers.qml`.
- Removed unnecessary method `lookupAddressObject` from `RootStore`.
- Updated `SendModal` property bindings related to recipient.
- Some activity controller interaction details moved to transactions store instead of being directly in `SendModal`.
- Type enum living in `RecipientSelectorPanel` is moved to `Helpers`. Since it doesn't depends on the specific component and it's used in other global places.
Part of #15208
... and remove particular code for send modal
- derive the footer from the standard `StatusDialogFooter` to reduce
code duplication (drop shadow, divider, margins, etc)
- rename the default button text
- expose the icon name and make it used the correct login/auth type icon
- some minor fixes and cleanups
Fixes#15212
Found out while testing that in some corner cases there will be no
response of error in case of pairing. This is handled now by showing
a generic error message. The implementation is using a timer to handle
this case.
Extend the logic to report errors in the pairing process.
Closes#14676
Extend support for legacy `eth_sign` and `eth_signTypedData`
methods.
Keep the `eth_sign` using the legacy method for compatibility
Use the newly added status-go apis for a safer implementation
of signing typed data by providing chain validation.
Closes: #15361
- some minor visual fixes (padding & clear button color)
- make it always paste plain text, eventhough the base component has to
stay RichText
- use it in SendModal->RecipientView
- add a storybook page
- added QML tests
Fixes#15252
- unbreak passing the controller into the adaptor; can't be strongly
typed as that hides all the assets (always returns `false` from the
`visible` property)
- fix selecting account address (var account -> string accountAddress)
- fix the mocked account model to contain the needed `canSend` role, fix
the mocked check function
- fix showing community assets and balance threshold
- Adjusted StatusListItem height to account for scrollbar visibility by adding 16 pixels to contentHeight when tags are visible.
- Set tagsScrollBarVisible to true in TokenListView to ensure the scrollbar is displayed as needed.
fixes: 13620
Changes:
1. Align dialog with Figma design
2. Add new components for round image with badge and connection status tag
3. Add tests
4. Dapps service will now receive wallet `RootStore` as input and reuse existing models with account balance and other necessary info for account selection and chain selection
5. Minor updates in stores
6. Minor updates in WC toast messages to display app domain instead of app url
* refactor getters for chainIds and enabledChainIds
* simplify community chainIds getter
* simplify usage of network dto objects
* remove duplicated roles from send area
* rename network model in send module to network route model
- validate input also when pasting via the button (extract to a common
function)
- show the Paste button only when the input is empty and we have sth to
paste actually and prevent it from stealing focus
- upon clicking the Paste button, put focus on the input field
- after pasting, set the cursor past the end of the text
Fixes#14576
Uses status-go's endpoints:
- `wallet_buildTransactions` to format the transaction
- `wallet_signMessage` to sign the transaction
- `wallet_buildRawTransaction` to format the final signed transaction
Updates #15126
The new account selector expects a generic account model. It will display all the account data if provided, including preferred chains, balance or asset balance. Otherwise it will display only the available data.
The account selector can receive an initial selection based on account address and will provide the current selected address and the current selected model item.
- Unify the account selector between communities and wallet
- Update the account selector to work with addresses instead of model indexes
- Adapt all components using the account selector or the account selection
- Move/reuse qml components involved in the account selector UI
- Remove nim logic used to handle index based account selection.
- Adding storybook page
TLDR: later this should form a basic building block for a new
TokenSelector picker component, potentially replacing the current
HoldingSelector* and TokenListView components (support for collectibles
TBD as part of https://github.com/status-im/status-desktop/issues/15121)
- create reusable `TokenSelectorAssetDelegate` and `TokenSelectorView`
- add corresponding SB page, showcasing the flow/integration and the
separation of concerns between the view, adaptor and delegate layers
- add QML testcase for TokenSelectorView
- don't display crypto symbol for token balances per chain tags
- update the stores and SB pages
- add some missing formatter functions to LocaleUtils and CurrenciesStore
Fixes#14716
Implement infrastructure and integration with status-go to support
general session requests
Supported methods:
- personal_sign
- eth_signTypedData_v4
depends on status-go change that exposes the signing methods
Also
- support hex or utf8 encoding for personal_sign
- format the typed data for display in the modal
Tests are disabled for now, as they are crashing on CI
Close: #14927
Trigger authentication with identity of the request
Track the authentication using the identity and allow only once
Add tests for the new functionality
Minor improvements around the code
Closes#15018
For start support showing sign message only
Support rejecting the request
Storybook integration
Add disabled tests for the main logic and sanity UI tests.
They crash on CI only and work locally on mac. Postponed finding out why
for now.
Closes: #14927
Abstract WalletConnectSDK to make it testable
Implement WC service pairing test
Bring back DAppsWorkflow tests back to life and add a pair modal test
Updates: #14927
* fix(wallet): Renamed KeyPair to key pair throughout the entire app
replaced the keypair occurances with key pair in the entire qml ui files
fixes: #13612
---------
Co-authored-by: belalshehab <belal@status.im>
Co-authored-by: Valentina Novgorodtceva <valentina@status.im>
- new panel created: `SwapInputPanel`
- some cleanups to the needed stores
- created a SB page demonstrating the use of 2 panels and the
`SwapExchangeButton`
- created QML tests
Fixes#14781
Things done here:
Integrate basic functionality for wallet connect in status-go
Update the list of dapps from the SDK
Retrieve the persistence dapps list from the backend as a fallback
if there is no connection and SDK can't be initialized
Provide a basic simple view of dapps in the wallet connect popup
Closes: #14557
Implement the initial Pairing user workflow and disconnect option for
the first session.
Also
- rename pairing modal accordingly (`PairWCModal.qml`) to make room for the proper
`ConnectDAppModal.qml`
- basic tests for service helpers
- update storybook to reflect the new user workflows
Closes#14607
- introduce a new boolean property `checkingPermissionToJoinInProgress`
and use it to enable/disable the Join (share addresses) button when
joining a community
- we don't have to wait for both join and channels permissions check to
finish, as the former is much faster
- renamed `joinPermissionsCheckSuccessful` to
`joinPermissionsCheckCompletedWithoutErrors` to avoid confusion
Fixes#14680
- run the user's display name (ENS name) thru the `Emoji.parse()`
function as that will convert the potentially UTF-16 encoded name
containing emojis into an image
Fixes#12290
Other changes
- start Wallet Connect SDK using web engine after wallet is ready
- source WC project ID from the constants in nim
- close list when opening the `ConnectDappModal`
- remove the old POC modal instantiation
- rename ConnectDappPopup to Modal for consistency
- move specific dapps related user settings to their place in the component
- add DAppsStore to be used for dapps abstraction
Updates #14556
- fix the corner case and allow the user to join a community without an
explicitely stated "Member" permission
- enable/disable the Share/Join/Save buttons when the permission to join
check is ongoing, or when the permission check failed
- display tooltips over the disabled buttons explaining why it's disabled
- always display the eligibility button floating on top of the
(scrollable) contents
Fixes#14473Fixes#14299
- previously, we'd display the bubble only when joining the community
- now we display it also when editing the shared addresses, with a
slightly different wording (eg. "You're an admin" -> "You'll be a
member"), hinting the user about the future change
- remove the usage of `ModuleWarning` as we don't want its delay or
transitions here, replace it with a regular red `Rectangle` + text
Fixes#13397
The previous attempt to control the order of delegate intantiation
and avoid qml warnings didn't work for this case (Loader with injected
properties). Therefore, I reverted to the last working version.