concordium / concordium-reference-wallet-android Goto Github PK
View Code? Open in Web Editor NEWReference Android wallet for the Concordium blockchain
License: Apache License 2.0
Reference Android wallet for the Concordium blockchain
License: Apache License 2.0
Task description
For Android, this issue is related to #20.
The dialog shown on failed identities that has already been somewhat implemented, needs a few improvements before release. The full flow on how it should work has been sketched out in Figma, and it's called "Flow 18 - Failed identity issuance".
The main differences from what has already been implemented, is the addition of a "Cancel" button on the dialog shown when the identity / initial account fails. The sketch in Figma is targeted to iOS, so we should discuss what is possible on Android, but we should aim for something similar.
The view for failed identity cards has also been updated to show the hashed session ID, so the users can come back to find it later. This change also means, that the user cannot always be sent back to the intro flow, as that would make it impossible to go a find the hashed session ID again. The Figma flow should explain how the new routing should work.
Bug Description
The shielded balance is shown as negative if you try to shield an amount while a GTU Drop is being processed.
Steps to Reproduce
Expected Result
Shielded balance is shown as 0
Actual Result
Shielded balance is shown as -2000
Versions
[placeholder]
Task description
[placeholder]
Sub-tasks
Add label for component and priority.
Task description
[placeholder]
Sub-tasks
Add label for component and priority.
Bug Description
When making a simple or shielded transaction, the insufficient funds text is hidden or not shown, when the keyboard is shown.
On the page where you can "setup" a transaction, be it simple or shielded, the message about insufficient funds are shown correctly if the keyboard is not up. But if you do something that shows the keyboard, the insufficient funds text will not be shown, possibly hidden behind the memo button.
The insufficient funds text should also be shown in that scenario, just below the amount.
Steps to Reproduce
Expected Result
Actual Result
Versions
Bug Description
Amount is not shown in transfer list or transfer details on shielded balance of sender and receiver account. This issue occurs for both encrypted transfers with and without memo.
Steps to Reproduce
Expected Result
Amount of encrypted transfers is shown.
Actual Result
Amount of encrypted transfers is not shown.
Versions
Task description
GTU drop button must not be in mainnet app, only allowed in stagenet and testnet app.
Versions
Mainnet app Concordium Mobile Wallet
Bug Description
Manufacturers want to provide device users an aesthetically pleasing effect when an application is entered or
exited, so the system saves a screenshot when the application goes into the background. This feature could
potentially pose a security risk for an application. Sensitive data could be exposed if a user deliberately takes a
screenshot of the application while sensitive data is displayed, or in the case of a malicious application running
on the device, that is able to continuously capture the screen. This information is written to local storage, from
which it may be recovered either by a rogue application on a rooted device, or by someone who steals the
device.
More Details
See internal Concordium Mobile Application Security Assessment Report, section 2.6.
Bug Description
"Date separators" are shown for days without any transactions. This only occurs when the other balance type has transactions on those days. This occurs on both the regular and shielded balance.
Steps to Reproduce
Expected Result
"This balance has no transactions yet." is still shown.
Actual Result
A "date separator" with TODAY
is shown with no transactions underneath.
Note
The same behaviour can be seen in older transactions and on either type of balance (i.e. also when viewing the regular balance). Here, I have some regular transactions on the 21. of September, but no shielded transactions on that date.
Versions
Description
When exporting my accounts, I have the option to send the file in a variety of ways (e.g. Bluetooth, Google Drive, Gmail, Slack, etc.) but no option to save directly to the device itself or SD card storage.
Versions
Task description
[placeholder]
to/from account logic (subaccounts)
Sub-tasks
Add label for component and priority.
Description
Currently when you create a new ID or a new Acc, there is no feedback given when the max of 35 characters is reach on the names.
It would be nice if there were some more clear feedback given, when the max length has been reach, instead of just not adding more characters to the string.
Steps to Reproduce
Expected Result
Actual Result
Versions
Bug Description
Even though no memo has been added to a simple or shielded transaction, the transaction is always of the type that contains a memo. The memo field is just empty.
When a memo is not entered during the "transaction setup" in the wallet, the wallet should just use the old simple and shielded transactions without memos, as the new type is slightly more expensive.
This bug is related to #22
Steps to Reproduce
Expected Result
Actual Result
Versions
Bug Description
Scheduled transfers with memo have cut off text for amounts with many decimal places, e.g. on sender account as the fee usually has many decimal places. This happens both in transfer list and in the transfer details when clicking on a transfer in transfer list, so the full text will never been shown anywhere.
See Concordium/concordium-reference-wallet-ios#69 for same issue on iOS.
Steps to Reproduce
Expected Result
Text is fully shown, at least in transfer details.
Actual Result
Text is cut off.
Versions
Description
The text shown in the dialog when identity issuance fails in the mobile wallet should be updated a bit.
When an e-mail client is found, the text should now mention that Concordium is also added to CC. If an e-mail client is not found, it should be added that Concordium can optionally be added to CC. Additionally, when an e-client is not found, the manual copy function, should copy the full text that would have automatically entered in the e-mail.
The text added to the automatically generated e-mails should also be updated to include a bit more info, like app version and which OS the app is running. iOS / Android should be enough, but if possible the specific OS version would be nice as well.
The change can be seen in Figma in flow 21. The semi transparent pages does not have any changes.
Task description
As an attempt to improve the UX of the mobile wallet, the central "account cards" will be redesigned. The main difference is the removal of the shielded balance from the account accards, in favor of adding three buttons to the design instead: SEND, RECEIVE and MORE.
The new design can be found in "Flow 0" here: https://www.figma.com/file/pUlYPsHRU0Hvm0NoGIvxrv/Mobile-Wallet?node-id=2881%3A13697
Bug Description
When making a shielding or an unshielding transaction, the pending transaction is not shown in the log of the shielded balance. The transaction does appear as intended in the log of the regular balance as intended, but ideally it would also be shown in the shielded balance log, while it's pending.
When the transaction is finalized, it is shown correctly in both logs.
Additionally, when making an unshielding, the amount is shown as negative in the regular balance, while it is pending. The amount should be positive in the regular balance and negative in the shielded balance, as it is added to the regular balance and deducted from the shielded balance.
Steps to Reproduce
Expected Result
Actual Result
Versions
Description
When the user adds a memo to a transaction, a small warning is shown to let the user know that the memo is public. The title of the warning says "Transaction messages" while it should say "Transaction memos".
Steps to Reproduce
Expected Result
Actual Result
Versions
Bug Description
Address copied
instead of Transaction hash copied
Steps to Reproduce
X
using the same release times.X
.Expected Result
Popup with Transaction hash copied
and the hash is actually copied.
Actual Result
A popup with Address copied
is shown when you click on the first release in a time slot, but the transaction is not copied.
Clicking on the second release in a time slot neither gives a popup or copies.
Versions
Task description
Add support for another identity provider.
Sub-tasks
Task description
There will be a small change to the terms and conditions, so the text must be updated accordingly in the app.
This section should be added just below Privacy:
Data retention and deletion
Concordium as a company does not retain or delete any user identifiable information. However, to get an account you must obtain an identity object issued by an identity provider. The identity object contains some user identifiable information such as your name. By default the identity object is only stored in the wallet and is not visible on the chain. Some data derived from the identity object is sent to the chain, but by default it is not possible to obtain user identifiable information from the information stored in the account on the chain. However, if you choose to reveal any attributes associated with your account, these attributes will be visible on-chain, and can never be deleted.
Task description
For the Sirius release we are going to add the option to delegate an amount to an open baker pool, via the Concordium Mobile Wallet.
The new delegation feature will consist of a handful of new flows and a status page. Each flow and the status page will have their own issues, and this issue can be seen as an overview of them all.
In Figma, the delegation flows will be laid out in an order, to demonstrate how the states of the delegation can change, and how that will influence the different flows and the status page. Some screens will be semi-transparent, indicating that they are redundant to what have been seen earlier, but they have been kept in the flows to give some contextual information. If you need access to the Figma flows, please reach out to @jens-concordium.
Sub-tasks
Notes:
Description
A page containing Terms and Conditions should be the first thing the user sees after the splash screen, and the user would have to accept it before continuing to the intro flow.
The current page, seen just after the splash screen, will also need a few changes.
All changes are shown in Flow 15 in Figma (Contact @jens-concordium for a link).
Versions
Description
After the implementation of #24, a new issue has come to light. It is likely also related to an old feature, that has been "abandoned" for a while.
The introduction of the new "failed identities flow", now requires the user to be able to revisit failed identity cards. This means, that if the very first initial account / identity pair created in the wallet fails, the user cannot be sent back to the intro flow, that is shown on first launch of the app. This has been implemented as intended in #24, but since the list of accounts page is now empty, a "Create account" button is now shown.
This button is probably a leftover from before Identities were introduced in the mobile wallet.
What needs to be changed now, is that instead of leading to the "Create account flow" it should lead to the "Create identity and initial account flow". In practice this button should only be shown, when there are no successful identities in wallet, meaning that there are no accounts on the Accounts page at all.
If the user is waiting for the first initial account / identity pair to be verified on the Accounts page, the "Create account" button that appears in the current version of the app, also only appears when the Accounts page is "refreshed" by browsing away from the Accounts page and back again. The button should instead be shown immediately after pressing "Cancel" on the "failed identity dialog".
A video of the scenario can be found here:
Steps to Reproduce
Expected Result
After the "failed identity dialog" shown after the very first initial account / identity pair is shown in the wallet, and the user presses "Cancel", there should be a button on the empty Accounts page. This button should be named "Create initial account" and should lead to the identity / initial account flow.
Actual Result
If the user is looking at the Accounts screen when the error dialog appears, the button will not appear before browsing away and back again. The button also says "Create account" and leads to the "regular" create account flow.
Versions
Bug Description
The initial account may show as pending after the identity is confirmed (and shows as such).
Steps to Reproduce
Expected Result
The account should show as finalized.
Actual Result
The account continues to show as pending.
Versions
Description
Currently when issuing an identity, the session times out after 1 day. If the user doesn't open the app within that time, the identity fails with error "session not found". The session will be prolonged by Notabene (to 7 days; see Concordium/notabene#15) but the error msg should be more informative as well.
@jens-concordium, could you please draft a better message to the user with sth like
Steps to Reproduce
Expected Result
Actual Result
Versions
Description
Currently when an account is finalized, the user is not given any explicit notification. People have been asking for more explicit notifications, and while we cannot push notifications to the OS at the moment, we could show one inside the app after polling the wallet proxy.
This notification could also be used to suggest that people should make a backup after a new account has been added, just to encourage backups more often.
So the suggested change would be:
Sketches showing can be found in Figma.
Versions
Description
For better user-friendliness, we could consider showing the memo of a scheduled transfer also in the release schedule. Otherwise, especially when having several release schedules, it's a bit hard to see what is what.
Steps to Reproduce
Expected Result
Date, time, amount and transaction hash are shown.
Actual Result
In addition, memo is shown.
Versions
Bug Description
When creating an account, its address is sometimes added multiple times in the address book. It seems like it occurs most frequently when the account creation is slow. I've seen everything between one and five entries per address.
Steps to Reproduce
X
Expected Result
The account X
has a single entry in the address book.
Actual Result
The account X
has one to five entries in the address book.
Versions
Description
While waiting for identity issuance (to fail), initial account is shown pending on account page. When clicking on it and then going back to account page, black pop-up box with unknown backend error pops up.
Steps to Reproduce:
see above
Expected Result
No pop-up error.
Actual Result
Error.
Versions
Bug Description
The Android app has set an insecure NetworkSecurityConfig exception. The NetworkSecurityConfig allows
developers to explicitly allow use of insecure network protocols within android apps. This app was found to
allow use of an insecure network protocol.
More Details
See internal Concordium Mobile Application Security Assessment Report, section 2.1.
Bug Description
When the identity issuing flow is aborted via the x in the uper right corner, an empty page with title "Notabene Identity Verification" and a loading wheel is shown. The page will never finish loading. However, the user can go back via the back button on the device or restart the app (manually close and open).
Steps to Reproduce
Expected Result
User is redirected to starting point.
Actual Result
Forever loading page is shown.
Versions
Description
There was a support issue for ios that automatic synchronization between two phones does not include decryption key. This scenario must be investigated in Android as well. For more details, see related iOS issue.
Expected Result
Synchronization includes all keys.
Actual Result
Synchronization does not backup all keys.
Bug Description
For a memo.txt with content "this is a memo text in a file", the wallet prints the hex value of the memo.
Steps to Reproduce
-do a scheduled transfer with --memo-raw memo.txt
Expected Result
The text should be printed as in the text file.
Actual Result
See above.
Versions
Bug Description
Even when the app has no permission to access the camera, the camera is opened and used during the identity flow.
Note that on iPhone, a dlg pops up informing the user and redirecting him to phone settings, if he agrees.
Note also that it works as expected for the address book in Android when adding a receiver.
Steps to Reproduce
Expected Result
A dlg should pop up informing the user that camera access is disabled. If he agrees, he should be redirected to settings to enable the permission.
Actual Result
The camera can be used to take pictures of documents and selfies.
Versions
Bug Description
The mobile wallet adds addresses of non-existing accounts to the address book.
Steps to Reproduce
Go through identity issuance and provoke a failed identity. That is, complete the verification flow, but make is so that identity verification will fail.
After returning to the wallet, while the identity is still pending, the initial account is added to the address book, where it can be copied.
After identity issuance fails and the initial (pending) account is deleted, the address book is unaffected.
Expected Result
The account address is not added to the address book until the identity and the account are confirmed.
Actual Result
The initial account address is added to the address book. It is never deleted even after the account is deleted.
Versions
Description
Failure dialog states that it will open email app but more apps can be chosen from, e.g. Google drive, which then saves a document with sessionID and text. It can be quite inconvenient, if you choose "the wrong option" as your sessionID then disappears.
Steps to Reproduce:
Expected Result
Only email is available.
Actual Result
Other apps are available.
Versions
Description
Currently, the mainnet app points to the testnet backend. The wallet-proxy URL in the mainnet app must be changed before release.
Align with @jens-concordium, @smh1001, @concordium-cl before making this final change.
Bug Description
It is possible to get into a situation where updating the passcode, sending transactions from an account, and the export functionality fail, or even cause the app to stop.
Steps to Reproduce
Expected Result
All actions should succeed.
Actual Result
a. App stops after entering the export password the second time.
b. Fails (on tapping Submit account) with: Unexpected encryption/decryption error.
c. Fails (on entering code/biometrics) with: Unexpected encryption/decryption error.
Versions
Description
Make sure that import/export accross nets (e.g. import a stagenet wallet into a testnet app or a testnet wallet into the mainnet app and vice versa) fails with an understandable, informative error message to the user.
Steps to Reproduce
export net --> import net
stagenet --> testnet
testnet --> stagenetnet
stagenet --> mainnet
mainnet --> stagenetnet
testnet --> mainnet
mainnet --> testnet
Expected Result
Failure but with informative error message to user.
Actual Result
Unclear.
Description
When entering the "Update Passcode & Biometrics" flow, a msg pops up: "All identities and accounts must be finalized before passcode can be changed. Please wait, then try again." All my accounts/identities are finalized but some identities failed. First after deleting those identity cards, the user is allowed to proceed. Might be good to tell the user to delete the failed identity cards as well.
Steps to Reproduce
Expected Result
Msg to user should include to actively delete his failed identities. The sentence about waiting should be reworked.
Actual Result
Msg only talks about finalized and pending accounts/identities. It also tells the user to wait, which doesn't help in case of failed identities.
Versions
Task description
The sender should be able to attach text to transfers that will enable him to convey additional information to the receiver. The current use-case mandating this is ease of integration with exchanges.
Sub-Tasks
New Transfer Types
Backwards Compatibility
The change must be backwards compatible. Existing transactions must continue to be accepted by the new protocol, and they must have the same semantics to the extent possible.
EDIT: The flow specifying how this should work, can be found in Figma in "Flow 19"
Task description
In the future, users should be able to reveal more attributes on their accounts at a later time than on account creation. To enable this, the randomness used to reveal attributes on account creation must be saved in the database so it can be accessed later.
Requirements:
Notes:
Task description
[placeholder]
Sub-tasks
Add label for component and priority.
Bug Description
The app assumes that the testnet GTU drop amount is 100GTU, but it has been updated in the wallet proxy to 2000GTU.
Steps to Reproduce
Create an account on testnet. Open the balance.
Expected Result
The testnet drop button should show 2000GTU, and the pending drop transaction should also show as 2000GTU.
Actual Result
They show as 100GTU, until the transaction is confirmed (at which point it corrects to 2000GTU).
Versions
Description
The current last page in the identity issuance flow can make it seem like the identity and initial account is verified and ready to use.
It should be clearer that the identity and initial account has in fact just been submitted to the identity provider, and that it might take a while for it to be verified or rejected.
Besides the improved clarity about the submission, it should also be clearer that the user has to actively return and open the app, to get the response from identity provider. Due to the way it works now, the identity issuance session will time out, causing the identity and initial account to be lost, if the user does not return to the app in time to retrieve the session.
There will be a flow in Figma that describes how to rework the last page of the issuance flow. More info will follow.
Expected Result
After finishing the the identity issuance flow, the user should not be in any doubt of what the status of their submission is, and how to the result of the verification process.
Actual Result
The status is not clear after the submission, and the user might miss the necessity of coming back to the app to retrieve the issuance session from the identity provider.
Versions
Task description
Add a README to the repository to briefly explain what it contains, as well as how to build, what dependencies are, how to test, and how to contribute.
Bug Description
Importing iOS testnet -> Android testnet fails with incorrect chain error.
The error could also be located in the export functionality of the iOS app.
Steps to Reproduce
Expected Result
Import succeeds.
Actual Result
Import failed
Files exported on Concordium Mainnet, TestNet or StageNet are not compatible with the other chains. Please import on the correct chain.
Versions
Description
The About page must be updated with new text and links. It should contain the sections and text shown between the lines below. The exact layout can be seen in Flow 16 on the Figma page (contact @jens-concordium for a link). The version number should also be removed from the More page.
Support
If you encountered a problem, or need help with something, you can reach out to us via [email protected]
Website
For more info about Concordium you can visit
concordium.com
App Version
0.5.37
Versions
Software Version: 0.5.37
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.