status-mobile
status-mobile copied to clipboard
feat(wallet): add recent recipients tab
fixes: https://github.com/status-im/status-mobile/issues/16991
This pr fetches the data for a user to send to a user they have recently sent to.
Note: This pr is only version 1 in what is needed for this feature as in the design there is multiple versions of types of "recent" senders, i.e it can be an account, saved address or a contact.
The reason being is that the data from activities currently is not handling that information but there is a new backend end point we can update to which will get us this info moving forward.
https://github.com/status-im/status-mobile/assets/22799766/cf9bfc75-fa95-4bb7-ac1d-b4cff7a6bf0c
Testing notes: Go to account page, Hit Send button select recent tab(default) select an address and ensure it gets sent to them
Note: This pr does not add a new address when you send a transaction, to keep this pr smaller I will add this in a follow up pr. For that reason feel free to feature test this pr in one go in that pr: https://github.com/status-im/status-mobile/pull/19984
Jenkins Builds
Click to see older builds (32)
| :grey_question: | Commit | :hash: | Finished (UTC) | Duration | Platform | Result |
|---|---|---|---|---|---|---|
| :heavy_check_mark: | 97121903f190d848eda8843c2d862dc45e03ee96 | #1 | 2024-05-08 13:40:41 | ~4 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | 97121903f190d848eda8843c2d862dc45e03ee96 | #1 | 2024-05-08 13:42:57 | ~7 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | 97121903f190d848eda8843c2d862dc45e03ee96 | #1 | 2024-05-08 13:42:58 | ~7 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | 97121903f190d848eda8843c2d862dc45e03ee96 | #1 | 2024-05-08 13:44:39 | ~8 min | ios |
:iphone:ipa :calling: |
| :heavy_check_mark: | d13af5baa64ded268097b96343f9599f92aa2d0d | #2 | 2024-05-08 18:35:09 | ~5 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | d13af5baa64ded268097b96343f9599f92aa2d0d | #2 | 2024-05-08 18:37:06 | ~7 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | d13af5baa64ded268097b96343f9599f92aa2d0d | #2 | 2024-05-08 18:37:34 | ~7 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | d13af5baa64ded268097b96343f9599f92aa2d0d | #2 | 2024-05-08 18:39:16 | ~9 min | ios |
:iphone:ipa :calling: |
| :x: | 3ac1e7a1dd8d45915dd776ddb9ab1005424fa9ba | #3 | 2024-05-08 19:11:57 | ~2 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | 3ac1e7a1dd8d45915dd776ddb9ab1005424fa9ba | #3 | 2024-05-08 19:16:08 | ~6 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | 3ac1e7a1dd8d45915dd776ddb9ab1005424fa9ba | #3 | 2024-05-08 19:16:14 | ~6 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | 3ac1e7a1dd8d45915dd776ddb9ab1005424fa9ba | #3 | 2024-05-08 19:18:27 | ~8 min | ios |
:iphone:ipa :calling: |
| :heavy_check_mark: | d14b52283c4dbb01b5cc103c02641b1b2e26d62d | #4 | 2024-05-10 14:52:13 | ~4 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | d14b52283c4dbb01b5cc103c02641b1b2e26d62d | #4 | 2024-05-10 14:54:54 | ~6 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | d14b52283c4dbb01b5cc103c02641b1b2e26d62d | #4 | 2024-05-10 14:55:00 | ~6 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | d14b52283c4dbb01b5cc103c02641b1b2e26d62d | #4 | 2024-05-10 14:57:14 | ~9 min | ios |
:iphone:ipa :calling: |
| :heavy_check_mark: | 03388f66984c59c140a1d75d44055aa6e4a717ca | #5 | 2024-05-10 16:30:24 | ~3 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | 03388f66984c59c140a1d75d44055aa6e4a717ca | #5 | 2024-05-10 16:32:42 | ~6 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | 03388f66984c59c140a1d75d44055aa6e4a717ca | #5 | 2024-05-10 16:33:15 | ~6 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | 03388f66984c59c140a1d75d44055aa6e4a717ca | #5 | 2024-05-10 16:35:05 | ~8 min | ios |
:iphone:ipa :calling: |
| :heavy_check_mark: | 2b5068a4c79b8f9c5db3155ea1a96c8b8e9da922 | #6 | 2024-05-11 19:10:00 | ~4 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | 2b5068a4c79b8f9c5db3155ea1a96c8b8e9da922 | #6 | 2024-05-11 19:11:54 | ~5 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | 2b5068a4c79b8f9c5db3155ea1a96c8b8e9da922 | #6 | 2024-05-11 19:12:51 | ~6 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | 2b5068a4c79b8f9c5db3155ea1a96c8b8e9da922 | #6 | 2024-05-11 19:15:47 | ~9 min | ios |
:iphone:ipa :calling: |
| :heavy_check_mark: | 531dc5c293b891b639779030d7b56f0535c7f9c1 | #7 | 2024-05-13 10:26:54 | ~4 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | 531dc5c293b891b639779030d7b56f0535c7f9c1 | #7 | 2024-05-13 10:28:28 | ~5 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | 531dc5c293b891b639779030d7b56f0535c7f9c1 | #7 | 2024-05-13 10:29:24 | ~6 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | 531dc5c293b891b639779030d7b56f0535c7f9c1 | #7 | 2024-05-13 10:31:15 | ~8 min | ios |
:iphone:ipa :calling: |
| :heavy_check_mark: | 61c094deffc5eff0884ec8b55418142a816c7a37 | #8 | 2024-05-13 16:46:01 | ~3 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | 61c094deffc5eff0884ec8b55418142a816c7a37 | #8 | 2024-05-13 16:48:00 | ~5 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | 61c094deffc5eff0884ec8b55418142a816c7a37 | #8 | 2024-05-13 16:48:49 | ~6 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | 61c094deffc5eff0884ec8b55418142a816c7a37 | #8 | 2024-05-13 16:50:40 | ~8 min | ios |
:iphone:ipa :calling: |
| :grey_question: | Commit | :hash: | Finished (UTC) | Duration | Platform | Result |
|---|---|---|---|---|---|---|
| :heavy_check_mark: | 2fca855dd29eeb5909733e5f4f03de1e8141e3ee | #9 | 2024-05-14 13:10:14 | ~4 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | 2fca855dd29eeb5909733e5f4f03de1e8141e3ee | #9 | 2024-05-14 13:13:00 | ~6 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | e82c6138e41e6edc520b3824a281446e7e37cf25 | #10 | 2024-05-14 13:16:57 | ~3 min | tests |
:page_facing_up:log |
| :heavy_check_mark: | e82c6138e41e6edc520b3824a281446e7e37cf25 | #10 | 2024-05-14 13:19:51 | ~6 min | android-e2e |
:robot:apk :calling: |
| :heavy_check_mark: | e82c6138e41e6edc520b3824a281446e7e37cf25 | #10 | 2024-05-14 13:19:57 | ~6 min | android |
:robot:apk :calling: |
| :heavy_check_mark: | e82c6138e41e6edc520b3824a281446e7e37cf25 | #10 | 2024-05-14 13:27:07 | ~14 min | ios |
:iphone:ipa :calling: |
56% of end-end tests have passed
Total executed tests: 52
Failed tests: 21
Expected to fail tests: 2
Passed tests: 29
IDs of failed tests: 727230,702782,702733,703194,702777,702813,704613,702957,702851,702894,702745,702850,727229,702855,703391,702807,702731,702730,727232,702775,702958
IDs of expected to fail tests: 703495,703503
Failed tests (21)
Click to expand
Class TestDeepLinksOneDevice:
| 1. test_links_open_universal_links_from_chat, id: 704613 |
Device 1: |
| 2. test_links_deep_links, id: 702775 |
Device 1: |
Class TestWalletMultipleDevice:
| 1. test_wallet_send_asset_from_drawer, id: 727230 |
|
| 2. test_wallet_send_eth, id: 727229 |
|
Class TestWalletOneDevice:
| 1. test_wallet_add_remove_watch_only_account, id: 727232 |
Device 1: |
Class TestOneToOneChatMultipleSharedDevicesNewUi:
| 1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782 |
|
| 2. test_1_1_chat_text_message_delete_push_disappear, id: 702733 |
|
| 3. test_1_1_chat_push_emoji, id: 702813 |
|
| 4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745 |
|
| 5. test_1_1_chat_edit_message, id: 702855 |
|
| 6. test_1_1_chat_send_image_save_and_share, id: 703391 |
|
| 7. test_1_1_chat_pin_messages, id: 702731 |
|
| 8. test_1_1_chat_message_reaction, id: 702730 |
Device 1: Device 2: |
Class TestGroupChatMultipleDeviceMergedNewUI:
| 1. test_group_chat_join_send_text_messages_push, id: 702807 |
Device 1: Device 2: Device 3: |
Class TestActivityCenterContactRequestMultipleDevicePR:
| 1. test_add_contact_field_validation, id: 702777 |
|
| 2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851 |
|
| 3. test_activity_center_contact_request_decline, id: 702850 |
Device 1: Device 2: |
Class TestCommunityMultipleDeviceMerged:
| 1. test_community_several_images_send_reply, id: 703194 |
Device 1: Device 2: |
| 2. test_community_contact_block_unblock_offline, id: 702894 |
Device 1: Device 2: |
Class TestActivityMultipleDevicePRTwo:
| 1. test_activity_center_mentions, id: 702957 |
Device 1: Device 2: |
| 2. test_activity_center_admin_notification_accept_swipe, id: 702958 |
|
Expected to fail tests (2)
Click to expand
Class TestCommunityOneDeviceMerged:
| 1. test_community_discovery, id: 703503 |
[[reason: [NOTRUN] Curated communities not loading, https://github.com/status-im/status-mobile/issues/17852]] |
Class TestGroupChatMultipleDeviceMergedNewUI:
| 1. test_group_chat_mute_chat, id: 703495 |
[[Chat is not unmuted after expected time: https://github.com/status-im/status-mobile/issues/19627]] Device 1: Device 2: Device 3: |
Passed tests (29)
Click to expand
Class TestCommunityOneDeviceMerged:
| 1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133 |
| Device sessions Device 1: |
| 2. test_community_copy_and_paste_message_in_chat_input, id: 702742 |
| Device sessions Device 1: |
| 3. test_community_undo_delete_message, id: 702869 |
| Device sessions Device 1: |
| 4. test_community_navigate_to_channel_when_relaunch, id: 702846 |
| Device sessions Device 1: |
| 5. test_community_mute_community_and_channel, id: 703382 |
| Device sessions Device 1: |
Class TestActivityMultipleDevicePR:
| 1. test_navigation_jump_to, id: 702936 |
| Device sessions Device 1: Device 2: |
| 2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947 |
| Device sessions Device 1: Device 2: |
Class TestCommunityMultipleDeviceMergedTwo:
| 1. test_community_markdown_support, id: 702809 |
| Device sessions Device 1: Device 2: |
| 2. test_community_hashtag_links_to_community_channels, id: 702948 |
| Device sessions Device 1: Device 2: |
| 3. test_community_mentions_push_notification, id: 702786 |
| Device sessions Device 1: Device 2: |
| 4. test_community_leave, id: 702845 |
| Device sessions Device 1: Device 2: |
| 5. test_community_join_when_node_owner_offline, id: 703629 |
| Device sessions Device 1: Device 2: |
Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:
| 1. test_1_1_chat_delete_via_long_press_relogin, id: 702784 |
| Device sessions Device 1: Device 2: |
| 2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783 |
| Device sessions Device 1: Device 2: |
| 3. test_1_1_chat_mute_chat, id: 703496 |
| Device sessions Device 1: Device 2: |
Class TestGroupChatMultipleDeviceMergedNewUI:
| 1. test_group_chat_pin_messages, id: 702732 |
| Device sessions Device 1: Device 2: Device 3: |
| 2. test_group_chat_send_image_save_and_share, id: 703297 |
| Device sessions Device 1: Device 2: Device 3: |
| 3. test_group_chat_reactions, id: 703202 |
| Device sessions Device 1: Device 2: Device 3: |
| 4. test_group_chat_offline_pn, id: 702808 |
| Device sessions Device 1: Device 2: Device 3: |
Class TestCommunityMultipleDeviceMerged:
| 1. test_community_one_image_send_reply, id: 702859 |
| Device sessions Device 1: Device 2: |
| 2. test_community_emoji_send_copy_paste_reply, id: 702840 |
| Device sessions Device 1: Device 2: |
| 3. test_community_mark_all_messages_as_read, id: 703086 |
| Device sessions Device 1: Device 2: |
| 4. test_community_edit_delete_message_when_offline, id: 704615 |
| Device sessions Device 1: Device 2: |
| 5. test_community_message_delete, id: 702839 |
| Device sessions Device 1: Device 2: |
| 6. test_community_message_send_check_timestamps_sender_username, id: 702838 |
| Device sessions Device 1: Device 2: |
| 7. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844 |
| Device sessions Device 1: Device 2: |
| 8. test_community_message_edit, id: 702843 |
| Device sessions Device 1: Device 2: |
| 9. test_community_unread_messages_badge, id: 702841 |
| Device sessions Device 1: Device 2: |
Class TestWalletOneDevice:
| 1. test_wallet_add_remove_regular_account, id: 727231 |
| Device sessions Device 1: |
87% of end-end tests have passed
Total executed tests: 52
Failed tests: 5
Expected to fail tests: 2
Passed tests: 45
IDs of failed tests: 727230,702809,704613,702807,702775
IDs of expected to fail tests: 703495,703503
Failed tests (5)
Click to expand
Class TestDeepLinksOneDevice:
| 1. test_links_open_universal_links_from_chat, id: 704613 |
Device 1: |
| 2. test_links_deep_links, id: 702775 |
Device 1: |
Class TestGroupChatMultipleDeviceMergedNewUI:
| 1. test_group_chat_join_send_text_messages_push, id: 702807 |
Device 1: Device 2: Device 3: |
Class TestWalletMultipleDevice:
| 1. test_wallet_send_asset_from_drawer, id: 727230 |
|
Class TestCommunityMultipleDeviceMergedTwo:
| 1. test_community_markdown_support, id: 702809 |
Device 1: Device 2: |
Expected to fail tests (2)
Click to expand
Class TestCommunityOneDeviceMerged:
| 1. test_community_discovery, id: 703503 |
[[reason: [NOTRUN] Curated communities not loading, https://github.com/status-im/status-mobile/issues/17852]] |
Class TestGroupChatMultipleDeviceMergedNewUI:
| 1. test_group_chat_mute_chat, id: 703495 |
[[Chat is not unmuted after expected time: https://github.com/status-im/status-mobile/issues/19627]] Device 1: Device 2: Device 3: |
Passed tests (45)
Click to expand
Class TestActivityMultipleDevicePR:
| 1. test_navigation_jump_to, id: 702936 |
| Device sessions Device 1: Device 2: |
| 2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947 |
| Device sessions Device 1: Device 2: |
Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:
| 1. test_1_1_chat_delete_via_long_press_relogin, id: 702784 |
| Device sessions Device 1: Device 2: |
| 2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783 |
| Device sessions Device 1: Device 2: |
| 3. test_1_1_chat_mute_chat, id: 703496 |
| Device sessions Device 1: Device 2: |
Class TestWalletOneDevice:
| 1. test_wallet_add_remove_regular_account, id: 727231 |
| Device sessions Device 1: |
| 2. test_wallet_add_remove_watch_only_account, id: 727232 |
| Device sessions Device 1: |
Class TestActivityMultipleDevicePRTwo:
| 1. test_activity_center_mentions, id: 702957 |
| Device sessions Device 1: Device 2: |
| 2. test_activity_center_admin_notification_accept_swipe, id: 702958 |
| Device sessions Device 1: Device 2: |
Class TestCommunityMultipleDeviceMerged:
| 1. test_community_several_images_send_reply, id: 703194 |
| Device sessions Device 1: Device 2: |
| 2. test_community_one_image_send_reply, id: 702859 |
| Device sessions Device 1: Device 2: |
| 3. test_community_emoji_send_copy_paste_reply, id: 702840 |
| Device sessions Device 1: Device 2: |
| 4. test_community_mark_all_messages_as_read, id: 703086 |
| Device sessions Device 1: Device 2: |
| 5. test_community_contact_block_unblock_offline, id: 702894 |
| Device sessions Device 1: Device 2: |
| 6. test_community_edit_delete_message_when_offline, id: 704615 |
| Device sessions Device 1: Device 2: |
| 7. test_community_message_delete, id: 702839 |
| Device sessions Device 1: Device 2: |
| 8. test_community_message_send_check_timestamps_sender_username, id: 702838 |
| Device sessions Device 1: Device 2: |
| 9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844 |
| Device sessions Device 1: Device 2: |
| 10. test_community_message_edit, id: 702843 |
| Device sessions Device 1: Device 2: |
| 11. test_community_unread_messages_badge, id: 702841 |
| Device sessions Device 1: Device 2: |
Class TestActivityCenterContactRequestMultipleDevicePR:
| 1. test_add_contact_field_validation, id: 702777 |
| Device sessions Device 1: Device 2: |
| 2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851 |
| Device sessions Device 1: Device 2: |
| 3. test_activity_center_contact_request_decline, id: 702850 |
| Device sessions Device 1: Device 2: |
Class TestWalletMultipleDevice:
| 1. test_wallet_send_eth, id: 727229 |
Class TestCommunityMultipleDeviceMergedTwo:
| 1. test_community_hashtag_links_to_community_channels, id: 702948 |
| Device sessions Device 1: Device 2: |
| 2. test_community_mentions_push_notification, id: 702786 |
| Device sessions Device 1: Device 2: |
| 3. test_community_leave, id: 702845 |
| Device sessions Device 1: Device 2: |
| 4. test_community_join_when_node_owner_offline, id: 703629 |
| Device sessions Device 1: Device 2: |
Class TestCommunityOneDeviceMerged:
| 1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133 |
| Device sessions Device 1: |
| 2. test_community_copy_and_paste_message_in_chat_input, id: 702742 |
| Device sessions Device 1: |
| 3. test_community_undo_delete_message, id: 702869 |
| Device sessions Device 1: |
| 4. test_community_navigate_to_channel_when_relaunch, id: 702846 |
| Device sessions Device 1: |
| 5. test_community_mute_community_and_channel, id: 703382 |
| Device sessions Device 1: |
Class TestGroupChatMultipleDeviceMergedNewUI:
| 1. test_group_chat_pin_messages, id: 702732 |
| Device sessions Device 1: Device 2: Device 3: |
| 2. test_group_chat_send_image_save_and_share, id: 703297 |
| Device sessions Device 1: Device 2: Device 3: |
| 3. test_group_chat_reactions, id: 703202 |
| Device sessions Device 1: Device 2: Device 3: |
| 4. test_group_chat_offline_pn, id: 702808 |
| Device sessions Device 1: Device 2: Device 3: |
Class TestOneToOneChatMultipleSharedDevicesNewUi:
| 1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782 |
| Device sessions Device 1: Device 2: |
| 2. test_1_1_chat_text_message_delete_push_disappear, id: 702733 |
| Device sessions Device 1: Device 2: |
| 3. test_1_1_chat_push_emoji, id: 702813 |
| Device sessions Device 1: Device 2: |
| 4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745 |
| Device sessions Device 1: Device 2: |
| 5. test_1_1_chat_edit_message, id: 702855 |
| Device sessions Device 1: Device 2: |
| 6. test_1_1_chat_send_image_save_and_share, id: 703391 |
| Device sessions Device 1: Device 2: |
| 7. test_1_1_chat_pin_messages, id: 702731 |
| Device sessions Device 1: Device 2: |
| 8. test_1_1_chat_message_reaction, id: 702730 |
| Device sessions Device 1: Device 2: |
Hi @J-Son89 thank you for PR. One question
Should the address be saved in the "Recent" tab if the user changes the network? Currently, it's not saved.
Steps:
- Send tokens using the testnet.
- Switch to the mainnet.
- Check the "Recent" tab.
Actual result:
The "Recent" tab is empty when the network is switched.
If this is ok, then PR can be merged, no issues from my side
Hi @J-Son89 thank you for PR. One question
Should the address be saved in the "Recent" tab if the user changes the network? Currently, it's not saved.
Steps:
- Send tokens using the testnet.
- Switch to the mainnet.
- Check the "Recent" tab.
Actual result:
The "Recent" tab is empty when the network is switched.
If this is ok, then PR can be merged, no issues from my side
@stefandunca - can you let me know how Desktop handled this
Hi @J-Son89 thank you for PR. One question Should the address be saved in the "Recent" tab if the user changes the network? Currently, it's not saved.
Steps:
- Send tokens using the testnet.
- Switch to the mainnet.
- Check the "Recent" tab.
Actual result:
The "Recent" tab is empty when the network is switched. If this is ok, then PR can be merged, no issues from my side
@stefandunca - can you let me know how Desktop handled this
AFAIK, we don't do anything special. We just call the get activity API for the current chains which will retrieve only activity filtered for that chain. Therefore, we filter out activity that is not done in the current mode which is ok. I can look into the code in detail, if you want, but I think we should not optimize yet for test networks mode, that is for developers mainly.