concordium / concordium-desktop-wallet Goto Github PK
View Code? Open in Web Editor NEWDesktop wallet for the Concordium blockchain. For Windows, macOS and Linux.
License: Apache License 2.0
Desktop wallet for the Concordium blockchain. For Windows, macOS and Linux.
License: Apache License 2.0
Task description
It must be possible to stake money as baker that is not "at disposal" but locked up on the account (i.e. not yet released).
Steps
Expected Result
Locked-up money can be staked.
Version
Bug Description
If using a Ledger with an outdated version the status in the lower left corner shows:
OutDated
Steps to Reproduce
Install a Ledger application with a version prior to 1.0.2
and open the Concordium application.
Expected Result
A better message like:
Outdated
or
Incompatible version
Something that makes it clear to the user that they need to upgrade their Ledger.
Actual Result
It shows
OutDated
Versions
Bug Description
getNextIdentityNumber
returns an incorrect value if the database contains skipped identityNumber
's.
Steps to Reproduce
identityNumber=0
and identityNumber=2
.identityNumber=2
.Expected Result
The correct next identityNumber
should be returned, which is max(identityNumber) + 1
.
Actual Result
It returns the count of identities.
Versions
Bug Description
Long memos are cut off in print out and print-to-pdf, probably because of margins. The text in the first line should break earlier. Attached pic is the print-to-pdf but first line is similarly cut off in printout.
Steps to Reproduce
Expected Result
First line of memo breaks earlier.
Actual Result
First line in memo text is cut off.
Versions
Description
At the moment baker transactions are only available via the multi-sig flows, so it would be nice to have flows for single signers.
A suggestion for the single signer flows can be found in Figma, on the page "Single signer baker transactions". This solution is dependent on "Advanced Account View" mentioned in issue #24.
This is a nice-to-have CR, as the functionality already exists.
Description
At the moment we are not completely consistent in how we use the names Concordium Wallet and Concordium Desktop Wallet. It would be good if we could just use the name Concordium Desktop Wallet, to also keep it consistent with how we name the mobile wallet.
As there could be some complexity related to how paths are named, it might not be straight forward to rename the desktop wallet.
Versions
Description
To improve usability and accessibility, we have decided to change datetime inputs to use a datepicker instead.
We have landed on the following library: react-datepicker, as it is simple, features date + time, and is accessible + customizable.
As design options might be limited, implementation will probably end up deciding design, so collaboration with @jens-concordium is important.
Description
Currently we fetch the oldest transactions first, but the newest transactions are quite likely the ones of the highest interest to a user. It is not feasible that a user has to wait for all transactions to be loaded before they can see their transactions from today.
Furthermore, it makes more sense to only fetch the transactions needed to display the most recent N transactions for an account instead of fetching all the transactions to filter them client side (to not overload the wallet proxy).
For generating an account report, we will probably need to recursively fetch transactions until the list of transactions for the respective account(s) have been exhausted.
Dependent on
Sub-tasks
Description
Icons throughout the app seem to vary with regards to color. In general, we should use the dark-grey (#181817) instead of pitch black, as it is a bit easier on the eyes.
Sub-tasks
Bug Description
In the new account detail view, details like account address and transaction log are also accessible for pending and failed accounts. This should not be the case, since it has many unwanted consequences (e.g. user can copy account address for failed account, failed account can be set as default, ...). The right side view for pending and failed accounts should be empty as it was previously. "Change view" should not be available.
Note that to access the detailed view for failed accounts, the user has to
Steps to Reproduce
1
2
Expected Result
When selecting the account card for a pending or failed account, the right view should be empty.
Actual Result
When selecting the account card for a pending or failed account, the right view shows details and "change view" is accessible.
Versions
Task description
Update the Jenkins builds to also upload the required files for releasing automatic updates. The additional files that are required are the .yml
files:
latest.yml
(Windows)latest-linux.yml
We do not need to include it from macOS build as we use a non-build server for that.
For the automatic updates to work we also need hashes and signatures, but that cannot be handled by the build server (perhaps it can for the Linux build), as it needs to be done after signing which we do manually for Windows and macOS on a non-build server.
Note: The current Jenkins files point to the old Gitlab repository, so part of this task is also pointing it to the Github repository.
Bug Description
The import flow tries to match existing identities with the imported identities by using the identityNumber
and walletId
. However, the walletId
may differ between the two for the same hardware wallet with identical identifier
. Therefore the import has to use the actual identifier when matching identities.
Steps to Reproduce
Create identities with multiple Ledgers so that some have walletId = 1
and some walletId = 2
. Reset the database and perform recovery with the wallet that was previously given walletId = 2
.
Expected Result
That matching identities are merged.
Actual Result
The recovered identity does not get the identity information from the import, but the identity is imported next to the recovered identity instead.
Versions
Bug Description
When alt-pressing a link in the wallet, a new window of the wallet is opened. It should not do this.
Steps to Reproduce
Expected Result
2a. nothing happens.
3. The wallet goes to that location, or nothing happens.
Actual Result
2a. A new window/instance of the wallet opens.
3. A new window/instance of the wallet opens in that location.
Versions
Description
The first version of the hashed session ID solution in the Desktop Wallet turned out to not be good enough, so it was redesigned and it has to be changed in the implementation.
The new design can be found in Figma, on the page "Issuance reference"
Versions
Task description
Accounts that receive a lot of transactions, e.g. finalizers and bakers, have a problem finding non-reward transactions as they have to fetch all transactions from the wallet proxy before they can find their regular account transactions in between.
The main problem is that there can be thousands upon thousands of reward events that have to be processed first. To remedy this we will add an additional step when fetching from the wallet proxy, before performing the existing flow:
This should result in the user always having their latest transactions available, which are assumed to be the most relevant. Afterwards we will continue to fetch old transactions in an ascending order as it is done today.
Notes:
Bug Description
A wrong key could be attached to a governance proposal without showing an error. The proposal then showed an error when it was submitted to chain.
Expected Result
Signature is rejected already when proposer tries to add it to a proposal.
Actual Result
Signature was attached.
Versions
Description
On small screens (e.g. laptops), the version in the left lower corner is not visible and you cannot scroll down in the task bar. A way to see it is e.g. ctrl - - on Windows.
A use case for this is a signing ceremony where ppl must double-check the version and often bring laptops.
Expected Result
Actual Result
The version is not visible unless you e.g. use ctrl - - on windows.
Versions
Bug Description
If a database migration fails, then the error is shown to the user as if they had entered an incorrect password.
Steps to Reproduce
Create a faulty database migration and try to log in to the application.
Expected Result
The user gets a correct error message. In the case of a database migration error the user will have to contact our support, as we will need to remedy the issue. The user cannot do anything without assistance in this case.
Actual Result
The user is told that the password is incorrect.
Description
There is a bunch of multi-sig scenarios, in which the user can end up on a half-empty and very confusing screen, like the one shown below in the Actual Result section. It would be nice if the wallet gave some feedback on why there are no accounts to choose from.
Scenarios:
Expected Result
Either some explanatory text of why there are no accounts to choose from, or some other form of feedback.
Actual Result
A half-empty and somewhat confusing screen.
Versions
Description
Currently when inserting transactions, the app loads every transaction into memory to check if the transaction already exists.
This is very inefficient for large databases, and could potentially fail, if the transactions won't fit in the memory.
We should change this, to check for the duplicate transactions more efficiently and scalable.
Task description
When identity issuance fails, the user should be given the sessionId (hash of codeURI), to help support.
Bug Description
When sending a transfer with memo in the Desktop Wallet, and the memo consists of only spaces or only line breaks, then it gets parsed as 0.
Steps to Reproduce
Expected Result
The spaces or linebreaks will get encoded as a CBOR string on chain.
Actual Result
Memo becomes 0, i.e. on-chain value is 00
.
Versions
Bug Description
The desktop wallet gives an error when trying to make an account report: unexpected transaction type.
It is likely because there are transfers with a memo in the reports, more specifically it's probably because of a shielded transfer with a memo.
Steps to Reproduce
Make an encrypted transfer with a memo, and try to make an account report.
Expected Result
No errors, report is made as intended.
Actual Result
The above-mentioned error happens.
Versions
Bug Description
Multisig "send GTU" flow has heading "send GTU with schedule". But note that release schedule is correctly missing from page, if you don't believe that I have selected simple transfer and not scheduled transfer :-)
Expected Result
Heading should be "Send GTU".
Actual Result
Heading is "Send GTU with schedule".
Versions
DW 1.2.0-alpha
Ledger app 1.0.3
Windows
Bug Description
CBOR maps are displayed as [object Object]
.
Steps to Reproduce
a16548656c6c6f65576f726c64
which corresponds to the JSON mapExpected Result
Either that the memo is displayed as JSON or as the raw on-chain value.
Actual Result
The memo is displayed as [object Object]
.
Versions
Description
Right now, you can only browse through your entire transaction history (past latest 100 transactions) by making an account report. It should be possible for a user to get an overview of your entire history of transactions in the user-friendly view of the transaction list.
In order to realize this, we probably need to re-think how the transaction list works.
Bug Description
The application's menu bar does not appear on windows when pressing alt.
Steps to Reproduce
Open the wallet on windows, press alt.
Expected Result
Menu bar appears.
Actual Result
Nothing happens.
Versions
Bug Description
If the wallet is unable to reach the wallet proxy, when fetching new transactions,
there is no error given to the user.
Steps to Reproduce
Have a local node running.
Disconnect from the internet.
Enter the account page.
Expected Result
After the request to the wallet proxy fails, an error should be shown.
Actual Result
Nothing happens.
Versions
Task description
The node will support adding metadata to transfers, encrypted transfers, and transfers with schedule, and thus the wallet should support it as well.
Metadata that goes into a transaction should be CBOR encoded, but the UI should probably be optimized for the common case where the user inputs a string or an integer value.
Sub-tasks
Related milestone with details of the changes on the node
Bug Description
When signing an governance update transaction, it can be that the wallet appears to produce a signature, but the ledger is not correctly used to sign the transaction.
Steps to Reproduce
These may not be correct/complete.
[Object object]
.Expected Result
After unlocking the device and choosing "Sign Proposal", the process on the device should allow signing as normal.
Actual Result
update-micro-gtu-per-euro_signature-ty.json.txt
Versions
Description
It should be possible to include more than the threshold number of signatures on a governance transaction (as long as all signatures are valid). Currently the wallet does not allow adding further signatures after the threshold has been reached. The reason for this is that more than the minimum number of participants may be involved in the ceremony for redundancy, and if someone produces a valid signature, that signature should be recorded on the chain.
Versions
Description
When entering date and time in the date and time component, it is currently not possible to change back and forth between fields with the arrows on the keyboards. It would be nice if that was possible.
Expected Result
That it would be possible to use right and left arrow keys on the keyboard to change back and forth between fields.
Actual Result
It's not possible to change back and forth.
Versions
Description
Steps to Reproduce
Let an identity issuance fail.
Versions
Bug Description
When starting storybook, everything looks fine on the first compilation round. But if a change is made to any file, triggering a re-compile, it throws an error, making the storybook interface inaccessible. Don't know why the specific file is even included in the compilation, as it doesn't seem to be included in any of the stories or the components thereof.
The specific error is:
ERROR in /Users/sbz/Developer/Concordium/desktopwallet/src/app/ipc/grpc.ts(4,34)
TS2306: File '/Users/sbz/Developer/Concordium/desktopwallet/src/app/node/ConcordiumNodeClient.ts' is not a module.
Steps to Reproduce
yarn storybook
in terminalExpected Result
Storybook stays functional and interactive
Actual Result
Storybook UI is inaccessible due to error message being overlaid
Versions
Description
Currently the UI enforces that an auxiliary data file must be attached when creating an Update Protocol transaction. It should be optional instead.
Steps to Reproduce
Expected Result
Actual Result
Versions
Description
When making an account report, three of the filters are called:
To align with the common wording elsewhere in the desktop wallet, mobile wallet and documentation, these should instead be:
Steps to Reproduce
Browse to the "Make Account Report" feature, and have a look at the filters.
Expected Result
Actual Result
Versions
Description
Currently when the DW tries to get account info from the node, it gives an error message that can be hard to understand as a user, if the DW is not connected to a node. Additionally the title shown on the modals both when catching up and when the node is unavailable is "Unable to update accounts", which makes it sound a bit like your are trying and failing to make changes to the account.
Maybe the no node connection modal should say something like:
Node unavailable
Cannot confirm account information.
And maybe the title of the modal shown when the node is catching up should also be updated, so it says:
Node catching up
A confirmed account does not exist on the connected node. Please check that your node is up to date with the blockchain.
Current message shown with no connection:
Current message shown when catching up:
Versions
Bug Description
When making an account report and setting the "To:" time too close to the current time, yields and error.
The wallet says "Date must be before today", even though it should be possible to make the report from today.
If the time is set to an hour before the current time, the wallet doesn't give you any errors.
Expected Result
It should be possible to make a report all the way up to the current time. If the user enters a time in the future, the error message should not be "Date must be before today", but something like "The time cannot be in the future" or something.
Actual Result
It is not possible to make a report that goes all the way up past the last hour, and it says "Date must be before today"
Versions
Bug Description
If an encrypted transfer is created while another is pending, but sent after the other has been finalized, then it will fail due to invalid proof.
The same is likely the case for "unshield amount" transfers.
Steps to Reproduce
Expected Result
T2 is successful. (Or is not allowed to be sent)
Actual Result
T2 fails due to invalid proof.
Versions
Currently the status in the sidebar says disconnected until the Concordium app is opened on the device.
It would be nice if it showed that the Ledger is connected, but doesn't have the correct app open.
The text might have to be changed, to fit the ui
Description
Currently when trying to import an export from the mobile wallet, the error message is hard to understand. If possible, it would be nice to check if the file is from the mobile wallet, and then write a more understandable message, e.g.:
"Exports from the Concordium Mobile Wallet are not compatible with the Concordium Desktop Wallet, and vice versa."
Steps to Reproduce
Make an export from the mobile wallet. Try to import it in the desktop wallet. Notice current error message.
Expected Result
The error message is something understandable, that explains why it the file cannot be imported.
Actual Result
The error message is: "This file is invalid due to: missing metadata.keyLen value."
Versions
Bug Description
During account recovery you can get stuck where the application says it is waiting, but nothing is happening on the Ledger.
Steps to Reproduce
Perform account recovery until you get the modal popup suggesting that you have completed recovery. Press outside of the modal to close it. Then at the next identity index it says Waiting...
while the Ledger view says Recovering credentials
, preventing the user from submitting to the Ledger again to continue.
Expected Result
The Ledger should not be in the Recovering credentials
state, but should allow the user to submit to the Ledger again to recover more credentials.
Actual Result
See steps to reproduce.
Versions
Bug Description
When baker stake is frozen, the date where it is unfreezes, is incorrect
Steps to Reproduce
Take a baker account, and send a Remove Baker to chain.
Enter the flow for creating an Update Baker Stake transaction from the Multi Signature menu.
An error is present on the account, which displays when the baker is removed.
Expected Result
The date is in the future.
Actual Result
The date is in the past.
Versions
desktop wallet - 1.2.0-beta
Bug Description
Pending accounts should not be shown in multisig transaction view. The following flow is inconsistent.
Expected Result
Pending accounts should not be shown in multisig transaction view.
Actual Result
They are shown and can be selected. The flow is inconsistent and stops because the credentials cannot be found on the Ledger.
Versions
DW 1.2.0-alpha
Ledger app 1.0.3
Windows
Bug Description
When signing an "add baker" transaction, Ledger immediately signs if double pressing while showing "Amount to stake" or "Restake earnings". Furthermore, the signature is wrong.
Steps to Reproduce
Expected Result
Nothing should happen.
Actual Result
The Ledger signs the transaction immediately, and the signature is wrong.
Versions
Description
1.
There are inconsistencies when marking invalid user input. E.g. in multisig simple and scheduled transfers, an invalid memo only shows a red error message but the memo characters stay blue. The invalid amount turns red, not only a red error message.
In single sig transfers, the characters become read as well.
Wrong spelling is indicated but DW does not seem to allow the usual right-click context menu, which would allow auto correction.
Versions
Task description
Sub-tasks
Add label for component and priority.
Description
When setting a default account for the first time, it would be nice with a modal describing the action, like we have when the user sets a new default account, overriding the old one.
Bug Description
Currently we have convention that for each account there should a corresponding entry on the addressbook, which has the same name ( and is readOnly).
This can be broken by having an addressBookEntry for with address A, and then importing the account. the already existing addressBookEntry will still exist and can be removed. (and the name can be different).
Steps to Reproduce
Have an empty database and a backup with an account on address A.
Create an addressBookEntry on Address A.
import the backup.
Expected Result
After importing there should be a readOnly addressBookEntry on Address A, with the same name as the account.
Actual Result
The addressBookEntry on address A is editable, and the name is the same as prior to the import.
Versions
Description
When initiating the Notabene flow, the user first has to confirm some actions on the Ledger (e.g. confirm pk, confirm identity provider keys). Then a Notabene info text is shown with links to Notabene's terms and privacy statements. When following those links, the only possibility to close the statements and proceed with the flow is to either use X or the back button. Both options relate to the identity flow itself and thereby restart it. There is no option to close the Notabene subpage. Hence, the user must redo all the Ledger confirmations.
Steps to Reproduce
Expected Result
Closing X that relates to the Notabene subpage, so that only subpages close and user can click "Get started" and progress in the flow.
Actual Result
Only existing buttons relate to the identity flow. Identity flow is restarted.
Versions
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.