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
Registration of QAbstractItemModel* allows to nest submodels, e.g:
SortFitlerProxyModel {
sourceModel: LeftJoinModel { ... }
}
Earlier, it would cause error:
> Cannot assign to property of unknown type "QAbstractItemModel*"
- 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
- 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
- Disable 'Sort by Date' when timestamps are incomplete.
- Default to 'Alphabetical' sort if date is unavailable.
fixes: #13630
Update status-go submodule to latest commit on develop
Added an optional 'isDisabled' property to the ComboBox model to dynamically control the visibility and interaction of entries based on their state. This enhancement allows for entries to be disabled under certain conditions, improving the UI's adaptability and user interaction.
fixes: #13630
- Added a manual reload button to the WalletHeader to allow users to refresh wallet data on demand.
- Implemented a throttle timer to prevent excessive reloads.
- Show the last reload time.
- Updated UI elements to reflect the reloading state for user feedback.
- Connected the reload button to the backend to trigger the wallet reload functionality.
resolves: #13652
- Added `loadingIndicatorSize` property to `StatusBaseButton` to allow customization of loading indicator size.
- Introduced `mirror` property in `StatusIcon` to support icon mirroring.
resolves: #1365
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
- 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
- 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
* 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>
- 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
* refactor: rely on canPost and canView instead of checking permissions
Fixes#14983
* chore: remove all Light permission checks that are no longer needed
Fixed an issue where communityDetails were not being updated in PermissionsView.
This issue was causing the name, color, and image not to update correctly.
Co-authored-by: mdias <maildomarcio@gmail.com>
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
When creating or editing a community permission, if you add a holding token that has already been added,
the amount value displayed is in basic units (long value) of that token instead of primary units
- 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
* chore: switch wakuv2 fleet to waku
See status-im/infra-nim-waku#91 for details
Mostly done automatically. Some parts manually.
* chode: drop eth.staging fleet
Signed-off-by: Jakub Sokołowski <jakub@status.im>
---------
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Jakub Sokołowski <jakub@status.im>
Part of https://github.com/status-im/status-desktop/issues/14886
The problem was that we converted `collapsed` to `opened` way too early and with a logic error.
By using collapsed until the module, it's way easier to understand and also fixes the logic mistakes.
I also renamed a couple of functions and variables so that the mistake doesn't happen again.
Now SubmodelProxyModel doesn't affect source model therefore it's
possible to safely use multiple SubmodelProxyModels over the same source
model.
Closes: #14550
* 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
Fixes#14844
The problem was that links to status.app that are not shared links were still considered shared urls, because our util function can only check if it contains `status.app`.
The solution is two fold:
1. If there are Link Previews, I ask the link preview for the type of Link. If it's a normal link, I just open it.
2. If there are no Link Preview for that link, we call `parseSharedUrl` as before, but now we handle the failure by opening in the browser because we can assume that it's a normal link.
- 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
* fix: Fixing the share addresses popup height when only owner and TM permissions are available
* Update ui/app/AppLayouts/Communities/panels/SharedAddressesPanel.qml
Co-authored-by: Michał <michalcieslak@status.im>
---------
Co-authored-by: Michał <michalcieslak@status.im>
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
When channel has view-only permission not requiring any holdings, the
channel is not encrypted and should be presented to non-members in
read-only mode.
Closes: #14439
- 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
* Remove importCommunity from QML and Nim code
Handling issue 14310. Removed functions associated with the API.
* Updated pr for suggested changes.
* Updated module.nim
---------
Co-authored-by: Eliza <elsorber@gmail.com>