Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add reset with mnemonic on frozen/blocked cards #12127

Merged
merged 1 commit into from
May 21, 2021

Conversation

bitgamma
Copy link
Member

as part of #12083, allow to reset a blocked or frozen card using the mnemonic. Works from both logged-in and logged-out state.

Screenshots for localization. Of these, only keycard-is-frozen-factory-reset is new. The other ones are changes to existing keys, so we need to make sure they are properly updated.

@status-github-bot status-github-bot bot added this to REVIEW in Pipeline for QA May 20, 2021
@bitgamma bitgamma self-assigned this May 20, 2021
@status-im-auto
Copy link
Member

status-im-auto commented May 20, 2021

Jenkins Builds

Click to see older builds (6)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ e5f39f6 #1 2021-05-20 08:33:43 ~12 min android-e2e 📦apk 📲
✔️ e5f39f6 #1 2021-05-20 08:33:46 ~12 min android 📦apk 📲
✔️ e5f39f6 #1 2021-05-20 08:34:17 ~13 min ios 📦ipa 📲
✔️ 8446ca3 #2 2021-05-21 06:51:37 ~12 min android 📦apk 📲
✔️ 8446ca3 #2 2021-05-21 06:52:56 ~14 min android-e2e 📦apk 📲
✔️ 8446ca3 #2 2021-05-21 06:54:02 ~15 min ios 📦ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 0f9b55f #3 2021-05-21 10:30:31 ~21 min android-e2e 📦apk 📲
✔️ 0f9b55f #3 2021-05-21 10:30:49 ~22 min android 📦apk 📲
✔️ 0f9b55f #3 2021-05-21 10:34:13 ~25 min ios 📦ipa 📲
✔️ 001baf4 #4 2021-05-21 12:50:18 ~9 min android-e2e 📦apk 📲
✔️ 001baf4 #4 2021-05-21 12:51:55 ~11 min android 📦apk 📲
✔️ 001baf4 #4 2021-05-21 12:59:01 ~18 min ios 📦ipa 📲

@qoqobolo qoqobolo moved this from REVIEW to E2E Tests in Pipeline for QA May 20, 2021
@qoqobolo qoqobolo moved this from E2E Tests to IN TESTING in Pipeline for QA May 20, 2021
@qoqobolo qoqobolo self-assigned this May 20, 2021
@status-im-auto
Copy link
Member

100% of end-end tests have passed

Total executed tests: 70
Failed tests: 0
Passed tests: 70

Passed tests (70)

Click to expand

1. test_sign_message_and_transactions_filters_from_daap, id: 5342
Device sessions

2. test_image_in_one_to_one_send_save_reply_timeline, id: 6305
Device sessions

3. test_add_account_to_multiaccount_instance_generate_new, id: 6224
Device sessions

4. test_keycard_can_see_all_transactions_in_history, id: 6291
Device sessions

5. test_add_and_delete_watch_only_account_to_multiaccount_instance, id: 6244
Device sessions

6. test_open_blocked_secure_not_secure_inlalid_offline_urls, id: 6210
Device sessions

7. test_open_public_chat_using_deep_link, id: 5396
Device sessions

8. test_offline_add_new_group_chat_member, id: 3998
Device sessions

9. test_send_non_english_message_to_newly_added_contact_on_different_networks, id: 5315
Device sessions

10. test_can_see_balance_and_all_transactions_history_on_cellular, id: 5314
Device sessions

11. test_keycard_create_login_resotore_unlock_same_seed, id: 5689
Device sessions

12. test_insufficient_funds_wallet_positive_balance, id: 5412
Device sessions

13. test_delete_close_all_tabs, id: 5390
Device sessions

14. test_send_token_with_7_decimals, id: 5350
Device sessions

15. test_delete_chats_via_delete_button_rejoin, id: 5387
Device sessions

16. test_send_transaction_set_recipient_options, id: 6328
Device sessions

17. test_keycard_sign_message_and_transactions_from_daap, id: 6251
Device sessions

18. test_recover_account_from_new_user_seedphrase, id: 6296
Device sessions

19. test_keycard_can_recover_keycard_account_card_pairing, id: 5758
Device sessions

20. test_block_user_from_public_chat, id: 5786
Device sessions

21. test_send_audio_message_with_push_notification_check, id: 6316
Device sessions

22. test_redirect_to_public_chat_tapping_tag_message_fetch_more_history, id: 5675
Device sessions

23. test_restore_account_migrate_multiaccount_to_keycard, id: 6645
Device sessions

24. test_ens_mentions_pn_and_nickname_in_public_and_1_1_chats, id: 6226
Device sessions

25. test_keycard_send_eth_from_wallet_to_address, id: 6289
Device sessions

26. test_add_account_to_wallet_private_key_and_seed_phrase, id: 6272
Device sessions

27. test_back_forward_refresh_navigation_history_kept_after_relogin (TestRail link is not found)
Device sessions

28. test_offline_is_shown_messaging_1_1_chat_sent_delivered, id: 5310
Device sessions

29. test_pair_devices_sync_one_to_one_contacts_nicknames_public_chat, id: 5762
Device sessions

30. test_long_press_to_delete_chat, id: 5319
Device sessions

31. test_copy_and_paste_messages, id: 5317
Device sessions

32. test_open_transaction_on_etherscan_copy_tx_hash, id: 5384
Device sessions

33. test_unread_messages_counter_public_chat, id: 5360
Device sessions

34. test_user_can_see_all_own_assets_after_account_recovering, id: 5381
Device sessions

35. test_send_eth_from_wallet_to_address_incorrect_password, id: 5308
Device sessions

36. test_mobile_data_usage_complex_settings, id: 6228
Device sessions

37. test_start_chat_with_ens_mention_in_one_to_one, id: 5403
Device sessions

38. test_decline_transactions_in_1_1_chat_push_notification_changing_state, id: 6265
Device sessions

39. test_send_eth_in_1_1_chat_transaction_push, id: 6253
Device sessions

40. test_install_pack_and_send_sticker, id: 5782
Device sessions

41. test_switch_users_special_char_password_and_add_new_account_logcat, id: 5356
Device sessions

42. test_manage_assets, id: 5341
Device sessions

43. test_browser_managing_bookmarks, id: 6633
Device sessions

44. test_open_chat_by_pasting_chat_key_check_invalid_chat_key_cases, id: 5304
Device sessions

45. test_request_stt_from_daap, id: 5309
Device sessions

46. test_can_use_purchased_stickers_on_recovered_account, id: 5783
Device sessions

47. test_dapps_permissions, id: 5738
Device sessions

48. test_account_recovery_with_uppercase_whitespaces_seed_phrase_special_char_passw_logcat, id: 5394
Device sessions

49. test_send_eth_to_ens_in_chat, id: 6279
Device sessions

50. test_create_new_group_chat_messaging_pn_delived, id: 3994
Device sessions

51. test_share_copy_contact_code_and_wallet_address, id: 5323
Device sessions

52. test_wallet_set_up, id: 5335
Device sessions

53. test_send_transaction_with_custom_token, id: 6208
Device sessions

54. test_home_view, id: 5379
Device sessions

55. test_can_add_existing_ens, id: 5502
Device sessions

56. test_logcat_backup_recovery_phrase, id: 5419
Device sessions

57. test_request_and_receive_stt_in_1_1_chat_offline, id: 6263
Device sessions

58. test_set_profile_picture, id: 6646
Device sessions

59. test_collectible_from_wallet, id: 5346
Device sessions

60. test_add_and_remove_mention_contact_with_nickname_from_public_chat, id: 5332
Device sessions

61. test_keycard_request_stt_from_daap, id: 6249
Device sessions

62. test_restore_account_from_mnemonic_to_keycard, id: 6240
Device sessions

63. test_pass_phrase_validation, id: 5363
Device sessions

64. test_keycard_send_eth_in_1_1_chat, id: 6293
Device sessions

65. test_send_and_open_links_with_previews, id: 5373
Device sessions

66. test_reactions_to_message_in_chats, id: 6315
Device sessions

67. test_fetching_balance_after_offline, id: 6237
Device sessions

68. test_push_notification_1_1_chat_no_pn_activity_center, id: 6283
Device sessions

69. test_public_chat_messaging_emojis_timestamps, id: 5313
Device sessions

70. test_keycard_fetching_balance_after_offline, id: 6290
Device sessions

@bitgamma
Copy link
Member Author

/cc @jinhojang6

@qoqobolo
Copy link
Contributor

@bitgamma

ISSUE 1: "Backup successful" banner appears after the card is unfrozen in both logged-in and logged-out states.

Android, iOS

Steps:

  • Recover a Keycard multiaccount
  • Freeze the card entering invalid passcode in any flow (login, change 6-digit passcode, sign transaction, etc)
  • Reset the card with mnemonic and complete the flow

Expected behavior:

Keycard access is reset banner

Actual behavior:

Backup successful banner

IMG_0670.mp4

@bitgamma
Copy link
Member Author

@qoqobolo this behavior is intentional and is because this flow, like the flow from #12115 is actually the creation of a backup card. After the flow is started, with the current implementation, there is no distinction between backup and reset. Do you think the text will mislead the user?

@qoqobolo
Copy link
Contributor

@bitgamma It seems to me that it would be preferable if the backup banner refers only to the process of creating a backup card, and for unlocking frozen card we have another one with the corresponding text. They are still two different flows, although from a technical point of view they are the same. And for unlocking with PUK we have the "Keycard access is reset" screen.
WDYT? If you have time and it isn't too hard to fix, would be nice to do this :)

@bitgamma
Copy link
Member Author

@qoqobolo fixed now, thanks for the input!

@qoqobolo
Copy link
Contributor

Thank you @bitgamma !

Another issue was found.

ISSUE 2: If freeze the card while changing the PIN / PUK / pairing code, start reseting it with seed phrase, open Enter seed screen and go back, the Enter PUK screen will be opened but with an input field for only 6 digits.

After that, you can reset the Keycard only with the PUK code.

Steps:

  1. Open Settings > Keycard > Change 6-digit code
  2. Enter invalid PIN 3 times
  3. Tap Reset with mnemonic
  4. Tap back

Expected behavior: Keycard is frozen screen is opened

Actual behavior:

IMG_0679.mp4

Also, if the card was frozen in signing transaction in the wallet view, and you repeat the steps from the above flow, it will not be possible to reset the Keycard using the mnemonic after returning back from the seed phrase input screen, only using the PUK code.

Steps:

  1. Open Wallet
  2. Send tx
  3. Enter wrong PIN 3 times while signing the transaction
  4. Tap Reset with mnemonic
  5. Tap back
  6. Tap Your Keycard is frozen. Reset card access at the top left
video_2021-05-21_10-41-05.mp4

@bitgamma
Copy link
Member Author

@qoqobolo thanks for the findings!

Issue 2: fixed by just returing to the original Enter PIN display, so you don't have the strange case where you are asked for a 6-digit PUK. To get the frozen card pop-up you will have to enter the PIN one more time. Making the pop-over re-appear again automatically requires keeping track of where we came from and I think for this edge case it is not worth the effort and risk of introducing issues somewhere else (the PIN screen is used in many different places so it is a critical component).

Issue 3: actually it already was possible to reset, but the label was "lost or frozen card" (like in the login screen). I fixed it to display "reset mnemonic" instead in this case so it becomes clear you can access that functionality from this screen.

@qoqobolo
Copy link
Contributor

@bitgamma thanks for your work and patience! Looks great for me now.
PR can be merged.

@qoqobolo qoqobolo moved this from IN TESTING to MERGE in Pipeline for QA May 21, 2021
@bitgamma bitgamma force-pushed the feature/reset-frozen-blocked branch from 0f9b55f to 001baf4 Compare May 21, 2021 12:40
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
@bitgamma bitgamma force-pushed the feature/reset-frozen-blocked branch from 001baf4 to 4217f55 Compare May 21, 2021 12:42
@bitgamma bitgamma merged commit 4217f55 into develop May 21, 2021
@bitgamma bitgamma deleted the feature/reset-frozen-blocked branch May 21, 2021 12:42
Pipeline for QA automation moved this from MERGE to DONE May 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

4 participants