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 factory reset option on new Keycard account #12055

Merged
merged 1 commit into from
May 6, 2021

Conversation

bitgamma
Copy link
Member

@bitgamma bitgamma commented Apr 28, 2021

adds the ability to factory reset the Keycard during account creation and mnemonic import.

Factory reset reinstalls the Keycard applet. The package, NDEF applet and Cash applet are untouched. This makes resetting the card quite fast and does not require to load a cap file.

The card can be in any state (non-initialized, initialized, loaded with keys) before the reset and will always be non-initialized after.

@bitgamma bitgamma self-assigned this Apr 28, 2021
@status-im-auto
Copy link
Member

status-im-auto commented Apr 28, 2021

Jenkins Builds

Click to see older builds (24)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 7c4f444 #1 2021-04-28 12:02:57 ~13 min android-e2e 📦apk 📲
✔️ 7c4f444 #1 2021-04-28 12:03:00 ~13 min android 📦apk 📲
✔️ ca5869d #2 2021-04-29 13:12:33 ~12 min android 📦apk 📲
✔️ ca5869d #2 2021-04-29 13:12:43 ~13 min android-e2e 📦apk 📲
ca5869d #2 2021-04-29 13:12:55 ~13 min ios 📄log
✔️ 9baa465 #3 2021-04-29 13:35:47 ~12 min android-e2e 📦apk 📲
✔️ 9baa465 #3 2021-04-29 13:35:55 ~12 min android 📦apk 📲
✔️ 9baa465 #3 2021-04-29 13:41:27 ~18 min ios 📦ipa 📲
✔️ b9f296f #4 2021-04-29 14:56:55 ~9 min android-e2e 📦apk 📲
✔️ b9f296f #4 2021-04-29 15:01:08 ~13 min android 📦apk 📲
✔️ b9f296f #4 2021-04-29 15:08:56 ~21 min ios 📦ipa 📲
✔️ cb69fcf #5 2021-04-30 09:02:47 ~12 min android-e2e 📦apk 📲
✔️ cb69fcf #5 2021-04-30 09:02:49 ~12 min android 📦apk 📲
✔️ cb69fcf #5 2021-04-30 09:09:13 ~18 min ios 📦ipa 📲
✔️ ead12d5 #6 2021-04-30 10:34:29 ~12 min android 📦apk 📲
✔️ ead12d5 #6 2021-04-30 10:34:31 ~12 min android-e2e 📦apk 📲
✔️ ead12d5 #6 2021-04-30 10:39:05 ~16 min ios 📦ipa 📲
✔️ 82f238e #7 2021-04-30 13:20:26 ~13 min android-e2e 📦apk 📲
✔️ 82f238e #7 2021-04-30 13:20:26 ~13 min android 📦apk 📲
✔️ 82f238e #7 2021-04-30 13:25:55 ~18 min ios 📦ipa 📲
✔️ 82f238e #10 2021-05-04 11:36:40 ~17 min ios 📦ipa 📲
✔️ 5e91bde #8 2021-05-06 07:28:45 ~12 min android-e2e 📦apk 📲
✔️ 5e91bde #8 2021-05-06 07:28:51 ~12 min android 📦apk 📲
✔️ 5e91bde #11 2021-05-06 07:36:38 ~19 min ios 📦ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 31f92fd #9 2021-05-06 10:04:41 ~12 min android-e2e 📦apk 📲
✔️ 31f92fd #9 2021-05-06 10:04:41 ~12 min android 📦apk 📲
✔️ 31f92fd #12 2021-05-06 10:08:47 ~16 min ios 📦ipa 📲
✔️ b32d784 #10 2021-05-06 10:19:07 ~12 min android 📦apk 📲
✔️ b32d784 #10 2021-05-06 10:19:08 ~12 min android-e2e 📦apk 📲
✔️ b32d784 #13 2021-05-06 10:25:43 ~19 min ios 📦ipa 📲

@bitgamma bitgamma changed the title [WIP] add factory reset option on new Keycard account add factory reset option on new Keycard account Apr 30, 2021
(js->clj :keywordize-keys true)
(update :key-uid ethereum/normalized-hex))]
(on-success info))))
(catch on-failure)))
Copy link
Contributor

@shivekkhurana shivekkhurana May 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does catch work without a try block?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes the same pattern is used throughout the file and the error handlers are known to work. I would leave it like this for consistency. Thanks for the review!

@status-im-auto
Copy link
Member

99% of end-end tests have passed

Total executed tests: 80
Failed tests: 1
Passed tests: 79
IDs of failed tests: 6287 

Failed tests (1)

Click to expand
  • Rerun tests

  • 1. test_keycard_send_two_transactions_in_batch_in_dapp, id: 6287

    Device 1: *Find SignWithKeycardButton by xpath:* `//*[contains(@text,'Sign with')]`
    Device 1: **Enter default pin 121212**

    Device 1: Transaction failed; also Unexpected Alert is shown: 'already known'

    Device sessions

    Passed tests (79)

    Click to expand

    1. test_image_in_one_to_one_send_save_reply_timeline, id: 6305
    Device sessions

    2. test_add_account_to_multiaccount_instance_generate_new, id: 6224
    Device sessions

    3. test_send_eth_from_wallet_to_address, id: 5308
    Device sessions

    4. test_onboarding_screen_when_requesting_tokens_for_recovered_account, id: 5677
    Device sessions

    5. test_keycard_can_see_all_transactions_in_history, id: 6291
    Device sessions

    6. test_add_and_delete_watch_only_account_to_multiaccount_instance, id: 6244
    Device sessions

    7. test_open_blocked_secure_not_secure_inlalid_offline_urls, id: 6210
    Device sessions

    8. test_open_public_chat_using_deep_link, id: 5396
    Device sessions

    9. test_offline_add_new_group_chat_member, id: 3998
    Device sessions

    10. test_send_non_english_message_to_newly_added_contact_on_different_networks, id: 5315
    Device sessions

    11. test_can_see_balance_and_all_transactions_history_on_cellular, id: 5314
    Device sessions

    12. test_keycard_create_login_resotore_unlock_same_seed, id: 5689
    Device sessions

    13. test_insufficient_funds_wallet_positive_balance, id: 5412
    Device sessions

    14. test_delete_close_all_tabs, id: 5390
    Device sessions

    15. test_send_token_with_7_decimals, id: 5350
    Device sessions

    16. test_delete_chats_via_delete_button_rejoin, id: 5387
    Device sessions

    17. test_send_transaction_set_recipient_options, id: 6328
    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_restore_account_migrate_multiaccount_to_keycard, id: 6645
    Device sessions

    23. test_ens_mentions_pn_and_nickname_in_public_and_1_1_chats, id: 6226
    Device sessions

    24. test_keycard_send_eth_from_wallet_to_address, id: 6289
    Device sessions

    25. test_request_public_key_status_test_daap, id: 5397
    Device sessions

    26. test_sign_message_from_daap, id: 5342
    Device sessions

    27. test_add_account_to_wallet_private_key_and_seed_phrase, id: 6272
    Device sessions

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

    29. test_offline_is_shown_messaging_1_1_chat_sent_delivered, id: 5310
    Device sessions

    30. test_redirect_to_public_chat_tapping_tag_message, id: 5675
    Device sessions

    31. test_keycard_send_two_transactions_one_after_another_in_dapp, id: 6288
    Device sessions

    32. test_pair_devices_sync_one_to_one_contacts_nicknames_public_chat, id: 5762
    Device sessions

    33. test_long_press_to_delete_chat, id: 5319
    Device sessions

    34. test_copy_and_paste_messages, id: 5317
    Device sessions

    35. test_open_transaction_on_etherscan_copy_tx_hash, id: 5384
    Device sessions

    36. test_unread_messages_counter_public_chat, id: 5360
    Device sessions

    37. test_user_can_see_all_own_assets_after_account_recovering, id: 5381
    Device sessions

    38. test_transaction_wrong_password_wallet, id: 5408
    Device sessions

    39. test_mobile_data_usage_complex_settings, id: 6228
    Device sessions

    40. test_start_chat_with_ens_mention_in_one_to_one, id: 5403
    Device sessions

    41. test_send_two_transactions_one_after_another_in_dapp, id: 5744
    Device sessions

    42. test_decline_transactions_in_1_1_chat_push_notification_changing_state, id: 6265
    Device sessions

    43. test_send_eth_in_1_1_chat_transaction_push, id: 6253
    Device sessions

    44. test_fetch_more_history_in_empty_chat, id: 6205
    Device sessions

    45. test_install_pack_and_send_sticker, id: 5782
    Device sessions

    46. test_switch_users_special_char_password_and_add_new_account_logcat, id: 5356
    Device sessions

    47. test_keycard_sign_message_from_daap, id: 6251
    Device sessions

    48. test_manage_assets, id: 5341
    Device sessions

    49. test_send_two_transactions_in_batch_in_dapp, id: 5743
    Device sessions

    50. test_browser_managing_bookmarks, id: 6633
    Device sessions

    51. test_open_chat_by_pasting_chat_key_check_invalid_chat_key_cases, id: 5304
    Device sessions

    52. test_request_stt_from_daap, id: 5309
    Device sessions

    53. test_send_emoji, id: 5328
    Device sessions

    54. test_can_use_purchased_stickers_on_recovered_account, id: 5783
    Device sessions

    55. test_dapps_permissions, id: 5738
    Device sessions

    56. test_account_recovery_with_uppercase_whitespaces_seed_phrase_special_char_passw_logcat, id: 5394
    Device sessions

    57. test_send_eth_to_ens_in_chat, id: 6279
    Device sessions

    58. test_create_new_group_chat_messaging_pn_delived, id: 3994
    Device sessions

    59. test_share_copy_contact_code_and_wallet_address, id: 5323
    Device sessions

    60. test_wallet_set_up, id: 5335
    Device sessions

    61. test_send_transaction_with_custom_token, id: 6208
    Device sessions

    62. test_home_view, id: 5379
    Device sessions

    63. test_can_add_existing_ens, id: 5502
    Device sessions

    64. test_logcat_backup_recovery_phrase, id: 5419
    Device sessions

    65. test_request_and_receive_stt_in_1_1_chat_offline, id: 6263
    Device sessions

    66. test_set_profile_picture, id: 6646
    Device sessions

    67. test_collectible_from_wallet, id: 5346
    Device sessions

    68. test_public_chat_messaging, id: 5313
    Device sessions

    69. test_add_and_remove_mention_contact_with_nickname_from_public_chat, id: 5332
    Device sessions

    70. test_keycard_request_stt_from_daap, id: 6249
    Device sessions

    71. test_restore_account_from_mnemonic_to_keycard, id: 6240
    Device sessions

    72. test_pass_phrase_validation, id: 5363
    Device sessions

    73. test_keycard_send_eth_in_1_1_chat, id: 6293
    Device sessions

    74. test_send_and_open_links_with_previews, id: 5373
    Device sessions

    75. test_reactions_to_message_in_chats, id: 6315
    Device sessions

    76. test_filters_from_daap, id: 5353
    Device sessions

    77. test_fetching_balance_after_offline, id: 6237
    Device sessions

    78. test_push_notification_1_1_chat_no_pn_activity_center, id: 6283
    Device sessions

    79. test_keycard_fetching_balance_after_offline, id: 6290
    Device sessions

    @qoqobolo qoqobolo self-assigned this May 4, 2021
    @qoqobolo
    Copy link
    Contributor

    qoqobolo commented May 5, 2021

    @bitgamma thank you, works great!

    One minor remark:

    The checkbox Return card to factory settings is unchecked when pressing Begin setup and opening the pop-up "Are you sure you want to perform...".
    Would be nice to keep enabled and uncheck if User taps No in the pop-up.
    If you think it makes sense and is easy to fix, ofc.

    IMG_0584.mp4

    @bitgamma
    Copy link
    Member Author

    bitgamma commented May 6, 2021

    @qoqobolo thanks for catching this! it is fixed now

    @status-im-auto
    Copy link
    Member

    100% of end-end tests have passed

    Total executed tests: 1
    Failed tests: 0
    Passed tests: 1
    

    Passed tests (1)

    Click to expand

    1. test_keycard_send_two_transactions_in_batch_in_dapp, id: 6287
    Device sessions

    @bitgamma bitgamma force-pushed the feature/keycard-factory-reset branch 2 times, most recently from 31f92fd to b32d784 Compare May 6, 2021 10:06
    @qoqobolo
    Copy link
    Contributor

    qoqobolo commented May 6, 2021

    @bitgamma thanks for the fix!
    PR is ready to be merged.

    Two sporadically reproducing issues were found in develop. One of them is related to the scenario of this PR but can be reproduced in another flow as well. I will log them separately.

    Signed-off-by: Michele Balistreri <michele@bitgamma.com>
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    No open projects
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    4 participants