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

feat!: add key pairs and accounts settings to wallet settings #20464

Merged
merged 26 commits into from
Jun 26, 2024

Conversation

seanstrom
Copy link
Member

fixes #19936

Summary

  • This PR attempts to reveal the feature-flagged "Key pairs and accounts" settings inside wallet settings

Review notes

Testing notes

  • Keep in mind that the testing environment will need to create a missing key pairs, which requires syncing two devices and creating a new key-pair on one device (Device A) and viewing that key-pair as missing on the other device (Device B).

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • Settings
  • Wallet Settings
  • Key pairs and accounts settings
  • Missing key pairs

Steps to test

status: ready

@seanstrom seanstrom self-assigned this Jun 14, 2024
@status-im-auto
Copy link
Member

status-im-auto commented Jun 14, 2024

Jenkins Builds

Click to see older builds (76)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 2d42cba #1 2024-06-14 12:35:09 ~9 min ios 📱ipa 📲
✔️ 2d42cba #1 2024-06-14 12:35:48 ~10 min android 🤖apk 📲
✔️ 2d42cba #1 2024-06-14 12:38:48 ~13 min android-e2e 🤖apk 📲
✔️ 2d42cba #1 2024-06-14 12:38:57 ~13 min tests 📄log
✔️ 612562f #2 2024-06-17 08:00:59 ~4 min tests 📄log
✔️ 612562f #2 2024-06-17 08:04:24 ~8 min android 🤖apk 📲
✔️ 612562f #2 2024-06-17 08:04:40 ~8 min android-e2e 🤖apk 📲
✔️ 612562f #2 2024-06-17 08:04:53 ~8 min ios 📱ipa 📲
✔️ 98e5c68 #3 2024-06-18 11:35:40 ~4 min tests 📄log
✔️ 98e5c68 #3 2024-06-18 11:38:07 ~6 min android-e2e 🤖apk 📲
✔️ 98e5c68 #3 2024-06-18 11:38:09 ~6 min android 🤖apk 📲
✔️ 98e5c68 #3 2024-06-18 11:40:32 ~9 min ios 📱ipa 📲
✔️ 6f64c15 #4 2024-06-19 10:09:41 ~4 min tests 📄log
✔️ 6f64c15 #4 2024-06-19 10:13:52 ~8 min android-e2e 🤖apk 📲
✔️ 6f64c15 #4 2024-06-19 10:13:56 ~8 min android 🤖apk 📲
✔️ 6f64c15 #4 2024-06-19 10:14:18 ~9 min ios 📱ipa 📲
29ccc6d #5 2024-06-19 14:13:49 ~2 min tests 📄log
d26f1e7 #6 2024-06-19 14:16:54 ~2 min tests 📄log
✔️ d26f1e7 #6 2024-06-19 14:21:53 ~7 min android-e2e 🤖apk 📲
✔️ d26f1e7 #6 2024-06-19 14:21:57 ~7 min android 🤖apk 📲
✔️ d26f1e7 #6 2024-06-19 14:23:06 ~8 min ios 📱ipa 📲
ab5f009 #7 2024-06-20 12:45:49 ~2 min tests 📄log
✔️ ab5f009 #7 2024-06-20 12:50:28 ~7 min android-e2e 🤖apk 📲
✔️ ab5f009 #7 2024-06-20 12:50:31 ~7 min android 🤖apk 📲
✔️ ab5f009 #7 2024-06-20 12:51:56 ~9 min ios 📱ipa 📲
0e20ce3 #9 2024-06-21 11:47:44 ~3 min tests 📄log
58a4606 #10 2024-06-21 11:50:49 ~2 min tests 📄log
✔️ 58a4606 #10 2024-06-21 11:54:37 ~6 min android 🤖apk 📲
e3280c0 #11 2024-06-21 11:57:51 ~2 min tests 📄log
✔️ e3280c0 #11 2024-06-21 12:03:14 ~8 min android-e2e 🤖apk 📲
✔️ e3280c0 #11 2024-06-21 12:03:24 ~8 min android 🤖apk 📲
✔️ e3280c0 #11 2024-06-21 12:03:50 ~8 min ios 📱ipa 📲
f3e4c91 #12 2024-06-21 12:51:35 ~2 min tests 📄log
✔️ f3e4c91 #12 2024-06-21 12:57:14 ~8 min android-e2e 🤖apk 📲
✔️ f3e4c91 #12 2024-06-21 12:57:18 ~8 min android 🤖apk 📲
✔️ f3e4c91 #12 2024-06-21 12:57:40 ~8 min ios 📱ipa 📲
52a8c67 #13 2024-06-21 14:09:09 ~6 min tests 📄log
✔️ 52a8c67 #13 2024-06-21 14:09:17 ~6 min android 🤖apk 📲
✔️ 52a8c67 #13 2024-06-21 14:13:35 ~10 min android-e2e 🤖apk 📲
✔️ 52a8c67 #13 2024-06-21 14:15:53 ~12 min ios 📱ipa 📲
4f2d6bf #15 2024-06-21 16:00:04 ~2 min tests 📄log
✔️ 4f2d6bf #15 2024-06-21 16:03:28 ~6 min android-e2e 🤖apk 📲
✔️ 4f2d6bf #15 2024-06-21 16:04:41 ~7 min android 🤖apk 📲
✔️ 4f2d6bf #15 2024-06-21 16:06:12 ~8 min ios 📱ipa 📲
✔️ 80b78a9 #16 2024-06-21 18:24:51 ~3 min tests 📄log
✔️ 80b78a9 #16 2024-06-21 18:26:51 ~6 min android-e2e 🤖apk 📲
✔️ 80b78a9 #16 2024-06-21 18:27:19 ~6 min android 🤖apk 📲
✔️ 80b78a9 #16 2024-06-21 18:29:24 ~8 min ios 📱ipa 📲
132700f #17 2024-06-24 14:15:52 ~3 min tests 📄log
✔️ 132700f #17 2024-06-24 14:18:20 ~6 min android 🤖apk 📲
✔️ 132700f #17 2024-06-24 14:19:07 ~6 min android-e2e 🤖apk 📲
✔️ 132700f #17 2024-06-24 14:20:51 ~8 min ios 📱ipa 📲
✔️ e719bfd #18 2024-06-24 14:42:58 ~4 min tests 📄log
✔️ e719bfd #18 2024-06-24 14:45:49 ~7 min android-e2e 🤖apk 📲
✔️ e719bfd #18 2024-06-24 14:46:51 ~8 min android 🤖apk 📲
✔️ e719bfd #18 2024-06-24 14:48:04 ~9 min ios 📱ipa 📲
45193da #19 2024-06-24 16:20:22 ~3 min tests 📄log
✔️ 45193da #19 2024-06-24 16:24:12 ~6 min android-e2e 🤖apk 📲
✔️ 45193da #19 2024-06-24 16:24:45 ~7 min android 🤖apk 📲
✔️ 45193da #19 2024-06-24 16:27:13 ~9 min ios 📱ipa 📲
79f56ed #20 2024-06-25 11:28:27 ~2 min tests 📄log
✔️ 79f56ed #20 2024-06-25 11:33:15 ~7 min android-e2e 🤖apk 📲
✔️ 79f56ed #20 2024-06-25 11:33:19 ~7 min android 🤖apk 📲
✔️ 79f56ed #20 2024-06-25 11:34:42 ~8 min ios 📱ipa 📲
b110a3d #21 2024-06-25 11:58:34 ~2 min tests 📄log
✔️ b110a3d #21 2024-06-25 12:02:07 ~6 min android-e2e 🤖apk 📲
✔️ b110a3d #21 2024-06-25 12:02:24 ~6 min android 🤖apk 📲
✔️ b110a3d #21 2024-06-25 12:04:56 ~8 min ios 📱ipa 📲
2648b2b #22 2024-06-25 13:06:21 ~3 min tests 📄log
✔️ 2648b2b #22 2024-06-25 13:11:28 ~8 min android-e2e 🤖apk 📲
✔️ 2648b2b #22 2024-06-25 13:11:33 ~8 min android 🤖apk 📲
✔️ 2648b2b #22 2024-06-25 13:13:37 ~10 min ios 📱ipa 📲
89e5863 #23 2024-06-26 10:56:20 ~2 min tests 📄log
✔️ 89e5863 #23 2024-06-26 10:59:52 ~6 min android 🤖apk 📲
✔️ 89e5863 #23 2024-06-26 11:00:20 ~7 min android-e2e 🤖apk 📲
✔️ 89e5863 #23 2024-06-26 11:02:22 ~8 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
1546de2 #24 2024-06-26 11:07:31 ~3 min tests 📄log
✔️ 1546de2 #24 2024-06-26 11:11:47 ~7 min android-e2e 🤖apk 📲
✔️ 1546de2 #24 2024-06-26 11:11:55 ~7 min android 🤖apk 📲
✔️ 1546de2 #24 2024-06-26 11:16:32 ~12 min ios 📱ipa 📲
✔️ f0ee03b #25 2024-06-26 11:58:02 ~4 min tests 📄log
✔️ f0ee03b #25 2024-06-26 12:00:19 ~6 min android 🤖apk 📲
✔️ f0ee03b #25 2024-06-26 12:00:55 ~7 min android-e2e 🤖apk 📲
✔️ f0ee03b #25 2024-06-26 12:05:06 ~11 min ios 📱ipa 📲

Copy link
Member

@smohamedjavid smohamedjavid left a comment

Choose a reason for hiding this comment

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

🚀 🚀 🚀

Copy link
Contributor

@mohsen-ghafouri mohsen-ghafouri left a comment

Choose a reason for hiding this comment

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

Here we go 🚀

@seanstrom seanstrom force-pushed the seanstrom/unflag-key-pairs-and-accounts branch from 2d42cba to 612562f Compare June 17, 2024 07:55
@status-im-auto
Copy link
Member

76% of end-end tests have passed

Total executed tests: 51
Failed tests: 8
Expected to fail tests: 4
Passed tests: 39
IDs of failed tests: 727230,702782,704613,703503,727229,702731,702730,702775 
IDs of expected to fail tests: 703495,702948,727232,703629 

Failed tests (8)

Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Device 1: Find `Button` by `accessibility id`: `communities-home-discover-card`
    Device 1: Tap on found: Button

    critical/chats/test_public_chat_browsing.py:261: in test_community_discovery
        self.home.community_card_item.wait_for_elements(seconds=120)
    ../views/base_element.py:138: in wait_for_elements
        raise TimeoutException(
     Device 1:  BaseElement by accessibility id:`community-card-item` is not found on the screen after wait_for_elements
    



    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613

    Device 1: Find Text by accessibility id: community-title
    Device 1: Text is Closed community

    critical/test_deep_and_universal_links.py:71: in test_links_open_universal_links_from_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Community 'e2e community token-gated' was not requested to join by the url https://status.app/c/G0IAAGRy3S0pLm1NeQ91pwKgFaFGoIlkxXmDxITXXi3KdZ7vpb9-ERczhqwoFwMK6sCPnKwA#zQ3shtJ8A3rxUZWcfWDL3vKYQBt3jMPTuf44dJUGfjZjsek66
    



    Device sessions

    2. test_links_deep_links, id: 702775

    Device 1: Find BrowserTab by accessibility id: browser-stack-tab
    Device 1: Tap on found: BrowserTab

    critical/test_deep_and_universal_links.py:115: in test_links_deep_links
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Community 'e2e community token-gated' was not requested to join by the deep link status.app://c/G0IAAGRy3S0pLm1NeQ91pwKgFaFGoIlkxXmDxITXXi3KdZ7vpb9-ERczhqwoFwMK6sCPnKwA#zQ3shtJ8A3rxUZWcfWDL3vKYQBt3jMPTuf44dJUGfjZjsek66
    



    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find WalletTab by accessibility id: wallet-stack-tab

    critical/test_wallet.py:120: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:41: in _get_balances_before_tx
        self.wallet_1.wallet_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: WalletTab by accessibility id: `wallet-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Swiping right on element SlideButton
    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']

    critical/test_wallet.py:111: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:100: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:87: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:81: in slide_and_confirm_with_password
        self.slide_button_track.slide()
    ../views/base_view.py:257: in slide
        self.swipe_right_on_element(width_percentage=1.3, start_x=100)
    ../views/base_element.py:308: in swipe_right_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:294: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: SlideButton by xpath: `//*[@resource-id='slide-button-track']` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782

    Device 1: Long press on ChatElementByText until expected element is shown
    Device 1: Find Button by xpath: //*[@text="Reply"]

    critical/chats/test_1_1_public_chats.py:129: in test_1_1_chat_emoji_send_reply_and_open_link
        self.chat_1.quote_message(emoji_unicode)
    ../views/chat_view.py:1041: in quote_message
        self.reply_message_button.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@text="Reply"]` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    2. test_1_1_chat_pin_messages, id: 702731

    Device 2: Find Button by xpath: //*[@content-desc='pins-count']//android.widget.TextView
    Device 2: Find Button by xpath: //*[@content-desc='pins-count']//android.widget.TextView

    critical/chats/test_1_1_public_chats.py:198: in test_1_1_chat_pin_messages
        chat.pinned_messages_count.wait_for_element_text(text="2",
    ../views/base_element.py:190: in wait_for_element_text
        self.driver.fail(message if message else "`%s` is not equal to expected `%s` in %s sec" % (
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 2: Pinned messages count is not 2 as expected!
    



    Device sessions

    3. test_1_1_chat_message_reaction, id: 702730

    Device 2: Find EmojisNumber by xpath: //*[starts-with(@text,'Message sender')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-1']/android.widget.TextView[2]
    Device 2: Find EmojisNumber by xpath: //*[starts-with(@text,'Message sender')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-1']/android.widget.TextView[2]

    critical/chats/test_1_1_public_chats.py:86: in test_1_1_chat_message_reaction
        message_receiver.emojis_below_message(emoji="love").wait_for_element_text(2, 90)
    ../views/base_element.py:190: in wait_for_element_text
        self.driver.fail(message if message else "`%s` is not equal to expected `%s` in %s sec" % (
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 2: `1` is not equal to expected `2` in 90 sec
    



    Device sessions

    Expected to fail tests (4)

    Click to expand

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_hashtag_links_to_community_channels, id: 702948

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'#cats')]
    Device 2: Looking for a message by text: it is just a message text

    critical/chats/test_public_chat_browsing.py:1124: in test_community_hashtag_links_to_community_channels
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message in community channel is not visible for user before join 
    

    [[Can't enter channel after community is fetched for the first time, https://github.com//issues/20395]]

    Device sessions

    2. test_community_join_when_node_owner_offline, id: 703629

    Device 2: Looking for community: 'open community'
    Device 2: Click until Text by accessibility id: community-description-text will be presented

    critical/chats/test_public_chat_browsing.py:1212: in test_community_join_when_node_owner_offline
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message in community channel is not visible for user before join, it was indicated as not sent for the sender before he went offline 
    

    [[Can't enter channel after community is fetched for the first time, https://github.com//issues/20395]]

    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:497: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Text is 0x8d2413447ff297d30bdc475f6d5cb00254685aae
    Device 1: Click system back button

    critical/test_wallet.py:214: in test_wallet_add_remove_watch_only_account
        self.home_view.driver.fail(
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: Incorrect address '0x8d2413447ff297d30bdc475f6d5cb00254685aae' is shown when swiping between accounts, expected one is '0x8d2413447ff297d30bdc475f6d5cb00254685aae' 
    

    [[Missing networks in account address, https://github.com//issues/20166]]

    Device sessions

    Passed tests (39)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

    3. test_community_leave, id: 702845
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_undo_delete_message, id: 702869
    Device sessions

    4. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    7. test_community_message_delete, id: 702839
    Device sessions

    8. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_unread_messages_badge, id: 702841
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    5. test_group_chat_offline_pn, id: 702808
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    2. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_edit_message, id: 702855
    Device sessions

    5. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    @seanstrom thanks for the PR. Please take a look at the issues.

    ISSUE 1 Save button is overlapped by keyboard on "Rename key pair" screen when Testnet banner is enabled (IOS)

    IOS ONLY Reproducing on iPhone X, IOS 16.7.7

    Steps:

    1. Enable Testnet
    2. Open "Rename key pair" screen
    3. Open keyboard
    4. See if Save button is not overlapped by keyboard

    Actual result: Save button is overlapped by keyboard

    photo_2024-06-18 16 26 59

    @seanstrom
    Copy link
    Member Author

    @pavloburykh thanks for finding that issue 🙌

    I've updated the rename key-pair screen to use the full-screen modal appearance, and I've made sure the button is visible when the keyboard is displayed too. Let me know if that resolves the issue please 🙏

    Here's a screen recording of the changes that I made:

    Screen.Recording.2024-06-19.at.11.03.21.mov

    @pavloburykh
    Copy link
    Contributor

    pavloburykh commented Jun 19, 2024

    Hey @seanstrom! thank you for fixing issue 1.

    I have a question related to importing multiple missing key pairs: does this feature supposed to work? There is no way to generate QR code for multiple keypairs as shown here

    If this feature is not ready - then maybe we should hide "import" button? Is this feature tracked somewhere?

    Currently scanning QR code of separate keypair results in errors. And there is no way generate QR for multiple keypairs as I mentioned above.

    telegram-cloud-document-2-5447256027370115758.mp4

    @pavloburykh
    Copy link
    Contributor

    ISSUE 2 User is able to rename keypair using existing name

    Actual result:

    telegram-cloud-document-2-5447256027370115843.mp4

    Expected result: validation error should be shown

    https://www.figma.com/design/hLFPHYnuM0pOzgiabtqQ6k/Descoped-Wallet-settings-for-Mobile?node-id=5562-16285&t=OXDrnyucz2wEFdpl-0

    Descoped Wallet settings for Mobile – Figma 2024-06-19 15-10-15

    @pavloburykh
    Copy link
    Contributor

    ISSUE 3 Long keypair limitation does not match the design

    @seanstrom for me it is not an issue, I like characters limit solution more than suggested by designers. But still, I am ponting this out as an issue because it differs from the design.

    Actual result:

    telegram-cloud-document-2-5447256027370115843.mp4

    Expected result: according to Figma user is able to enter more than 20 characters which will result in validation error

    https://www.figma.com/design/hLFPHYnuM0pOzgiabtqQ6k/Descoped-Wallet-settings-for-Mobile?node-id=5562-16478&t=OXDrnyucz2wEFdpl-0

    Descoped Wallet settings for Mobile – Figma 2024-06-19 15-15-01

    @pavloburykh
    Copy link
    Contributor

    @seanstrom another question: In feature description I see the following:

    I want to be able to import a missing key pair by its private key

    At the same time I do not see such possibility neither in designs nor in app.

    There are only 2 available options: import via seed phrase + import via QR code.

    Descoped Wallet settings for Mobile – Figma 2024-06-19 15-44-55

    Do we expect a possibility to import via private key or there is a mistake in feature descriprion?

    @pavloburykh
    Copy link
    Contributor

    pavloburykh commented Jun 19, 2024

    Currently scanning QR code of separate keypair results in errors

    Overall, none of scan QR validation errors are implemented. So I am logging it as separate issue

    ISSUE 4 Scan QR validation errors do match the designs

    Steps:

    1. When importing missing keypairs try scanning the following types of QRs:
    • QR code that belongs to the wrong key pair
    • Already used keypair QR
    • Invalid QR (non keypair QR)
    1. Pay attention if validation errors match the designs.

    Actual result: non of the above cases is covered. Errors do match the designs.

    QR code that belongs to the wrong key pair
    photo_2024-06-19 16 13 05

    Already used keypair QR
    photo_2024-06-19 16 10 22

    Invalid QR (non keypair QR)
    photo_2024-06-19 16 13 30

    Expected result:

    https://www.figma.com/design/hLFPHYnuM0pOzgiabtqQ6k/Descoped-Wallet-settings-for-Mobile?node-id=232-33031&t=hioBwxRjpwpVBl41-0

    Descoped Wallet settings for Mobile – Figma 2024-06-19 16-09-29

    @seanstrom
    Copy link
    Member Author

    seanstrom commented Jun 19, 2024

    Hey @seanstrom! thank you for fixing issue 1.

    I have a question related to importing multiple missing key pairs: does this feature supposed to work? There is no way to generate QR code for multiple keypairs as shown here

    If this feature is not ready - then maybe we should hide "import" button? Is this feature tracked somewhere?

    Hey @pavloburykh thanks for finding this issue 🙌

    I double checked with the team and it seems that this import button should be feature-flagged since we don't currently have a way to export all the key-pairs in a single QR code. I'll add the feature-flag for this button soon 👍

    @seanstrom
    Copy link
    Member Author

    @seanstrom another question: In feature description I see the following:

    I want to be able to import a missing key pair by its private key

    At the same time I do not see such possibility neither in designs nor in app.

    There are only 2 available options: import via seed phrase + import via QR code.

    Descoped Wallet settings for Mobile – Figma 2024-06-19 15-44-55 Do we expect a possibility to import via private key or there is a mistake in feature descriprion?

    Hey @pavloburykh 👋

    The designs for importing by a private-key should be here: https://www.figma.com/design/QWJV5WRbroXVDsdubEDjAT/Wallet-settings-for-Mobile?node-id=232-32719&t=xGA37vRLf3OvxIOl-4

    And importing via a private-key will only be visible on key-pairs that have the "key" icon next to them. Here's an example of the two different action menus for a key-pair that's based on a private-key vs a key-pair that's based on a seed-phrase.

    Screen.Recording.2024-06-19.at.14.27.30.mov

    @pavloburykh
    Copy link
    Contributor

    ISSUE 5 Seed phrase validation error issues

    IOS: validation errors are not visible on IOS

    telegram-cloud-document-2-5447256027370116245.mp4

    Android: validation errors are not visible when keyboard is closed

    telegram-cloud-document-2-5447256027370116252.mp4

    Also, slider does not return to it's initial position when using biometry (both IOS and Android)

    photo_2024-06-19 16 29 16

    @pavloburykh
    Copy link
    Contributor

    And importing via a private-key will only be visible on key-pairs that have the "key" icon next to them. Here's an example of the two different action menus for a key-pair that's based on a private-key vs a key-pair that's based on a seed-phrase.

    Thank you @seanstrom. But how can I generate such case with key pair that have the "key" icon next to it? We even do not have possibility to add new keypairs using private key. Wondering how you managed to generate such case.

    @seanstrom
    Copy link
    Member Author

    Thank you @seanstrom. But how can I generate such case with key pair that have the "key" icon next to it? We even do not have possibility to add new keypairs using private key. Wondering how you managed to generate such case.

    Ah in this case I used a combination of status-desktop and a Metamask account:

    • First I created an account on Metamask and copied the private key for that account.
    • I then imported the private-key into status desktop with the status account that is synced to the mobile device.
    • I then logged into the mobile device (you may need re-login to changes) and viewed the missing key-pairs.

    The missing key-pairs should display the key-pair that's based on the private-key after those steps. Lmk if that works for you 🙏

    @pavloburykh
    Copy link
    Contributor

    Thank you @seanstrom. But how can I generate such case with key pair that have the "key" icon next to it? We even do not have possibility to add new keypairs using private key. Wondering how you managed to generate such case.

    Ah in this case I used a combination of status-desktop and a Metamask account:

    • First I created an account on Metamask and copied the private key for that account.
    • I then imported the private-key into status desktop with the status account that is synced to the mobile device.
    • I then logged into the mobile device (you may need re-login to changes) and viewed the missing key-pairs.

    The missing key-pairs should display the key-pair that's based on the private-key after those steps. Lmk if that works for you 🙏

    Great, thank you @seanstrom!

    @seanstrom seanstrom force-pushed the seanstrom/unflag-key-pairs-and-accounts branch from 29ccc6d to d26f1e7 Compare June 19, 2024 14:14
    @seanstrom
    Copy link
    Member Author

    @pavloburykh I've pushed up some fixes for Issues 2 & 3 related to validation when renaming a key-pair. Here's a screen recording of the changes 🎥

    Screen.Recording.2024-06-19.at.15.15.48.mov

    seanstrom added 20 commits June 26, 2024 11:50
    @seanstrom seanstrom force-pushed the seanstrom/unflag-key-pairs-and-accounts branch 2 times, most recently from 89e5863 to 1546de2 Compare June 26, 2024 11:04
    @seanstrom seanstrom changed the title feat: add key pairs and accounts settings to wallet settings feat!: add key pairs and accounts settings to wallet settings Jun 26, 2024
    @seanstrom seanstrom force-pushed the seanstrom/unflag-key-pairs-and-accounts branch from 1546de2 to f0ee03b Compare June 26, 2024 11:53
    @seanstrom seanstrom merged commit 256f3f8 into develop Jun 26, 2024
    6 checks passed
    @seanstrom seanstrom deleted the seanstrom/unflag-key-pairs-and-accounts branch June 26, 2024 12:16
    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.

    [Epic] - Feature - Mobile Wallet Settings - Key Pairs and Accounts
    8 participants