fix(keycard): Improve exception handling#19546
Merged
alexjba merged 14 commits intofeat/keycard-nfcfrom Jan 14, 2026
Merged
Conversation
Member
✔️ status-desktop/prs/android/arm64/package/PR-19546#1 🔹 ~9 min 51 sec 🔹 00978e3e 🔹 📦 android/arm64 package |
Member
Member
✔️ status-desktop/prs/linux/x86_64/tests-ui/PR-19546#1 🔹 ~13 min 🔹 3eacf69 🔹 📦 tests/ui package |
Member
Member
Member
Member
✔️ status-desktop/e2e/prspr19546 🔹 ~14 min 🔹 3eacf69 🔹 📦 tests/e2e package |
Member
3eacf69 to
1bb9a1e
Compare
Member
Member
Member
✔️ status-desktop/prs/linux/x86_64/tests-ui/PR-19546#2 🔹 ~15 min 🔹 1bb9a1e 🔹 📦 tests/ui package |
Member
Member
Member
Member
1bb9a1e to
e9d79a4
Compare
saledjenic
approved these changes
Dec 11, 2025
|
|
||
| method onUserAuthenticated*(self: Module, password: string, pin: string) = | ||
| if password.len == 0: | ||
| if password.len == 0 and pin.len == 0: |
Contributor
There was a problem hiding this comment.
A password should be set in both cases, regular/keycard user, while pin only for the keycard user, that's why only password was checked. It's not incorrect this way ofc.
| if keycardFlowType == ResponseTypeValueKeycardFlowResult: | ||
| if keycardEvent.error.len > 0: | ||
| if keycardEvent.error == ErrorOk: | ||
| if keycardEvent.error == ErrorOk or keycardEvent.error.len == 0: |
Contributor
There was a problem hiding this comment.
We're here only if the keycardEvent.error.len > 0 parent condition, so not needed toc check if keycardEvent.error.len == 0 here, cause will always be false. The same in 4 conditions below.
Contributor
Author
There was a problem hiding this comment.
removed these changes. Thanks!
e9d79a4 to
58d65b8
Compare
Member
✔️ status-app/prs/linux/x86_64/tests-nim/PR-19546#4 🔹 ~8 min 29 sec 🔹 58d65b8 🔹 📦 tests/nim package |
Member
Member
✔️ status-app/prs/linux/x86_64/tests-ui/PR-19546#4 🔹 ~18 min 🔹 58d65b8 🔹 📦 tests/ui package |
Member
Member
6352ad8 to
83dced6
Compare
432c81b to
f9f9768
Compare
83dced6 to
023c5d5
Compare
f9f9768 to
4dbed20
Compare
023c5d5 to
251aefc
Compare
caybro
approved these changes
Jan 12, 2026
4dbed20 to
93a12fb
Compare
251aefc to
1d87c72
Compare
93a12fb to
492c7ec
Compare
- src/app/modules/main/wallet_section/send_new/module.nim Verify if both password and pin are empty before emitting the `authenticationCancelled` signal - handle card disconnect/reconnect when the user input is needed (enter pin, puk etc) - treat keycard message with empty error as successful - src/app_service/service/keycard/service.nim - avoid modifying the json container with itself. We're currently iterating the container and modifying the service member - leading to a freeze.
this commit updates the makefile to determine some of the keycard lib link params based on a single argument - the lib path
1d87c72 to
6e1bc7f
Compare
This is a fix for the mobile platforms that will show a drawer when the keycard is needed. We'll need to avoid showing the drawer every time at app start.
The keycard channel events will inform the app of the channel state (waiting for keycard, reading, error, idle). This will be used on mobile platforms to control a drawer that informs the user when it's required to tap the keycard.
…keycard interactions Adding a `KeycardChannelDrawer` that's guiding the user whenever the keycard is needed. On IOS the system drawer is used
…ponents - use a single KeycardStateDisplay instance with the necessary states - The state queue, transitions and entire logic moved to KeycardChannelStateManager component
The constants are moved from nim to qml
- Adding states for HW adaptor states - Implement `Dismiss` action
…ing blocked This commit updates parts of the login flows. Adds a new `Scan keycard` button to trigger keycard detection on demand. + Update keycard states in the login flow + Show digits only on soft keyboard for pin input to squash - fix: User needs to be able to dismiss the keycard drawer without getting blocked
…ger keycard detection
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does the PR do
Iterates #19545
Preparing the nim code to work with
status-keycard-qt. Had a few cases where the current nim code had to be updated. Probably because thestatus-keycard-qtinternals are not identical tostatus-keycard-go.src/app/modules/main/wallet_section/send_new/module.nimVerify if both password and pin are empty before emitting theauthenticationCancelledsignalsrc/app/modules/shared_modules/keycard_popup/internal/insert_keycard_state.nim(and the other changes in states) handle card disconnect/reconnect when the user input is needed (enter pin, puk etc)src/app_service/service/keycard/service.nim- avoid modifying the json container with itself. We're currently iterating the container and modifying the service member - leading to a freeze.NOTE: Tests can be done in the final PR #19549