Also
- don't report error in case of status-go returning nil instead
of an empty array.
- fix misleading alias to AmountsArithmetic
- minor improvements requested in previous discussions
Updates: #15707
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
Also differentiate between l1 and l2 fees and check them against the
specific chain balance
Also
- Included tests for the new functionality
- Fixed some inconsistencies in handling types
Updates: #15552
1. Show Send Button on wallet footer when all accounts is selected
2. Hide Send Button in collectibles context menu and collectibles details view when the collectible is not owned by the user
3. Disable the Send Button in collectibles context menu and collectibles details view when the collectible is soulbound
to squash: Fine tune send action on collectibles
to squash: Fine tune send on collectibles
to squash: Fine-tune collectibles
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.
Compute max fees for transaction related requests and display the
results to user.
Also:
- Add helper to convert from hex (backend) to decimal (frontend) values.
- Add helper to convert from float gwei to hex wei
- Update tests to accommodate for the new dependencies.
Sourcing of account balances is not included therefore the transaction is
allowed to go through even if the account balance is insufficient. An error
will be generated by the backend in this case.
Updates: #15192
Fixes#15614
* feat(StatusQ): add StatusExperimentalTag component and page
* chore(beta): add beta tag to ENS
* chore(beta): add beta tag to Activity tab
* chore(beta): add beta tag to wallet settings
* chore(beta): add beta tag to Notification Center
- remove old popup and related components/adaptors
- simplify the API of the Sign/Approve modals to take pre-formatted
amounts as strings
- correct login/auth icon
- SB: make it possible to open the new secondary modals
- SB: fix the `fetchSuggestedRoutes` response handling, pass around the
`uuid` and inject it to the mocked suggested routes
- adjust SB pages and tests
Fixes#15443
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
* fix(sharedAddress): hide non fully imported accounts from shared address
Fixes#15471
We only filtered out watch only accounts, but we also need to make sure it was a fully imported account, ie an account that is usable, hence why using `canSend`. It is the same property they use in the SendTransaction modal
- 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.
... 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
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
- create a common base for "sign" transaction popups/modals:
`SignTransactionModalBase`
- add SwapSignModal, deriving from the above common modal base
- add it to StoryBook; integration TBD as part of a different followup
PR
- add QML tests
Fixes#14785
Fixes#15314
The problem is that we used the `name` property to know if we have an ENS name, but we actually set it to whatever is available, so we need to validate that it's an ENS name
* 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
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
- create new dedicated (asset) token selector component
- integrate it into `SwapInputPanel` and `SwapModal`
- add respective SB page and QML tests suite
Fixes#14783
This commit creates a new component NetworkSelectorView and it's implementation will replace the NetworkSelectionView
+ Adding the storybook page
+ Adding tests
This is the first step in refactoring the NetworkFilter, by cleaning the base component that handles the check states.
This component supports multiple configurations:
1. Single selection with or without radio button
2. Multiple selection with or without checkbox
3. Automatic handling of the check state. The component will change the check state based on user clicks
4. Manual handling of the check state. The component will not change the check state, but offers a toggled signal and expects the user to change the check state based on external flows
+ Fix minor bugs
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
- add new `showRadioButtons` and `showTitle` UI customization points
- adjust SB and expose all the existing modes, fix it to make it work
with multi selection
- integrate these new modes into SwapModal to align it with the Figma
design
Fixes#14780
- 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
Spent too much time figuring out the puzzle of
service->module->view->QML just to call a
status-go function.
Keeping this attempt for later while moving to a
simplified Controller/Provider approach. I will
come back to the abstraction when we add tests
to use it.
Updates: #14615
- Create row radiobutton component like the one defined in design
- It shall contain custom set of buttons
- It shall contain a Custom button that will be converted to an input
field
- Add the new component into a new storybook page
- Create necessary qml tests to cover the component logic
Fixes#14784
- create a custom circle button component for the Swap popup, with the
needed click event and a border area that can be overlaped with the
background as it looks in the design
Fixes#14782
* set decimal for assets on AidropSettingsPanel and HoldingsDropdown test pages
* Disable amount length validation by default
* Input: Align validation error string to the left edge
* Update validation error copy
fixes#11918
- created a new component (`ErrorTag`) based on the existing
`InformationTag`, suitable for displaying a row of icon (optional), text
and (optional) button in red/danger color
- add ErrorTagPage.qml to StoryBook
- add some basic QML tests
- InformationTag: make more properties customizable, use the same
`bgRadius` consistently
- StatusSmartIdenticon: some fixes for the MouseArea hover/click
behavior
Fixes#14792
- Some NIM's models define additional (not part of the
QAbstractModelItem API) method rowData to allow access to model's data
on UI side
- The same job can be done relying fully on public QAbstractModelItem
API using ModelUtils utility. It gives full transparency if we need
nim's model or other like ListModel replacement in tests/storybook
- propagate `tokensStore` to unbreak the Browser's wallet menu
Fixes#14805
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
- fix rounded corners in header/footer background
- add support for footer drop shadow
- add a page/demo with the various features to StoryBook
Fixes#14499
- hide the permissions row and tokens when the community is free to join
- fix evaluating the `requirementsMet` property which affects the lock
icon state; that role was never part of the model
- add a helper C++ method `isTokenGatedCommunity`
- adjust the SB models, adding different variations of the
permissionsModel for the CommunitiesPortalLayoutPage
Fixes#14671
- 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
- if there's a valid community info and the color is non-empty, inherit
it when creating a new channel
- also fix the color picker button height
- adjust the SB page with separate "create" and "edit" options
Fixes#14570
- correct propagation of hover events, fixes card flicker
- improve the ugly thick border
- token icons are now correctly rounded
- fix text descent lines are cut of ("y" and "p" truncated at the
bottom) due to excessive clipping, set correct max line count
- fix tag outline not being visible in dark mode
- add/update the corresponding SB page, with more controls to play
around with the different params
Fixes#14555
- make it conditionally available for testing via
Settings/Advanced/Enable translations
- display a tooltip and infobox explaining the current and future
situation
- upon app start, force the language to "en" if the translations are not
enabled; and suggest app restart when they get disabled
Fixes#14527
- 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
- also trim the leading/trailing whitespace
- fixes long bio (mainly due to linebreaks) pushing down everything
below and also overflowing the preview
- adjust SB page to include such example bio
Fixes#14463Fixes#14465
- gives an overview of all the `Theme.palette.foo` colors
- the color name/code can be copied to clipboard
- light/dark variant supported via storybook's "Dark mode" switch
- integrated search (both the color name and value)
- hide the footer when the user is an admin or token master, unless
there is a pending ownership request (`isPendingOwnershipRequest`)
- similarly, hide the sharding section in `CommunityInfoEditor`
- do not cover the shard button with the `SettingsDirtyToastMessage`
- some SB page cleanups and additions
- the `ownershipDeclined` method was being called on an unexisting store
and the signala params were not being passed around
- some related SB page additions/cleanups
fix(UserListPanel): hide the verification icon for yourself
fixes#13619
* split function for reseting trust status and verification+trust status
* rename function to removeTrustVerificationStatus
- teach `userInputLocale` about `Locale.OmitGroupSeparator` option which
discards the said thousands separator
- some more fixes to other inputs to do the same, and align what the
validators do
- StatusAmountInput: discard illegal characters, and reuse the same
locale for the validator
- StatusAmountInputPage: make it possible to select a different locale
Fixes#14165
Removed loading hidden groups from local settings and instead reload
them from the externally loaded settings.
Also move the local saving code from the controller to external,
therefore now it is implemented in storybook
Updates #14365
Add a specific state to the saveSettings action to update the model
by reloading the data.
The previous implementation was using the same save address which
doesn't update. Either in the past there was a side effect that made it
work or it was never working.
Closes#14365
- removed multiple filtering separately for each category
- no instantiation of all delegates up front (regular ListView approach
used)
- fixed category selection when filtering - selecting/deselecting only
items fulfilling search criteria
- significant simplification of the code
Closes: #14275
- implement the eligibility check in C++, returning the highest possible
role the user would be allowed to join under
- enable/disable the "Share" button based on the above permissions check
- remove all the locally placed components, access teh popup only via
Global/Popups
- calculate the `accessType` internally based on the permissions present
- update the eligibility as the async check for permissions is finished
- fix the permissions panel background color
- partially revert the share/finish/cancel buttons behavior; it must be
one button due to StatusStackModal limitations
- fix some other minor UI issues or differences to current Figma designs
- adjust SB, add the possibility to play around with different
permission models
Fixes#14100
* Feat: New showcase models for a contact
* feat(ProfileShowcase): Integrate the new profile showcase backend
* fix(Storybook): Fix ProfileShowcaseModelsPage
* fix: fetch only requested profile showcase data
Support PR for https://github.com/status-im/status-go/pull/4982
* feat: Load and validate profile showcase for a contact in two steps
* fix: fetching criteria for profile showcase collectibles
* fix: review fixes
---------
Co-authored-by: Alex Jbanca <alexjb@status.im>
* fix(JoinCommunity): Add missing state ONLY private permissions and NOT MET
- Modified `becomeMemberModel` in store to provide all member permissions.
- Modified permissions model filter to only discard permissions that are private and NOT met.
- Updated `storybook/PermissionsModel` with new only private permissions and added new model option in corresponding pages.
Closes#14104
* fix(JoinCommunity): Text position when all channels hidden
Updated text position when `allChannelsAreHiddenBecauseNotPermitted` in community join process
Add a separation layer for save/load/clear to ManageTokensModel
so that we can save/load from external sources.
The separate layer is composed of JSON as protocol, a set of signals
and slots for interface. The implementation forwards data to current
QSettings for storybook and nim controllers for the app.
Updates #13313, #13312
- Change text and remove existing icon.
- Removed unnecessary property `loginType` on different files.
- Renamed signals to be more accurate with existing requirements.
Closes#14098
- update shared addresses dialog to avoid small jumps when
selecting/unselecting accounts due to requirements check text displayed
- display the pending text and spinner next to the Permissions header
Fixes#14103
Since we merged editing revealed addresses into request to join community popup,
cause it logically belongs there, the relevant qml file is removed from story book.
- take the balance threshold value into account when presenting the
assets in the main wallet view
- additional fix from Emil for storing the threshold value
- storybook fixes to display the correct `currentCurrencyBalance` values
based on the address/wallet filters and mocking the threshold values
using TransactionStore
Fixes: #14017
- Removed `ProfileSectionStore` instance from `CurrenciesStore`. Only needed some certain accesses to the `profileSectionModule`.
- Added strict type in `CommunitiesView`.
- keep track of the grouped item kind (community vs. collection)
- when the "arrange by" mode is active, use it for sorting the tokens in
the main wallet view
- change the behavior to always sort by the number of tokens inside the
group when entering the grouped (arrange by...) mode + add tests
- expose the `backgroundColor` for token groups
- remove unused code dealing with handling of community IDs
Fixes#13276
- add an `interactive` property as a drop-in replacement for `enabled`;
the UI looks "disabled" but can still display e.g. a tooltip or some
loading animation
- add the ability to display a tooltip
- remove DisabledTooltipButton and replace it with a regular
`Status(Flat)Button`, using the above new features
- update storybook with the new `interactive` switch
Fixes#10185
The root cause of this issue is that the `TextEdit.text` was replaced on hover to add specific styling for the hovered state. As a result the selection was dropped.
To fix this I've moved the highlighted hyperlink style to the StatusSyntaxHighlighter.
- display the locally bundled privacy/terms of use texts in a popup
- add support for reading text files with both relative and absolute
files or URLs, useful for having the same file path in both storybook
and the app
Fixes#13877
Switch the activity filter to use the new session-based API that
deliver incremental updates to the current filter.
Drop the old quick win listening for individual change events and
use the unified API instead.
The new transactions (on-top) trigger the old "new transactions" buttons
that trigger reset of the current filter and the top new transacitons
highlighted.
Highlight mixed changes (not new on top) as they come in
Highlight new changes on filter reset
Closes#12120