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: integrate base chain #21876

Merged
merged 1 commit into from
Jan 21, 2025
Merged

Conversation

briansztamfater
Copy link
Member

@briansztamfater briansztamfater commented Dec 31, 2024

fixes #21529

status go https://github.com/status-im/status-go/tree/feat/integrate-base-chain

Summary

This PR integrates Base chain

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • wallet / transactions

Steps to test

Send token

  • Open Status
  • Login with an account with funds on Base
  • Select send
  • Select Base as a network to send tokens on
  • Select a token available on Base
  • Complete the flow
  • Verify flow is working as expected

Bridge token to Base

  • Open Status
  • Login with an account with funds on Base
  • Select bridge
  • Select another network to bridge to (such as Optimism or Arbitrum)
  • Select a token available on both chains
  • Complete the flow
  • Verify flow is working as expected

Bridge token from Base

  • Open Status
  • Login with an account with funds on networks different than Base such as Optimism or Arbitrum
  • Select bridge
  • Select Base as a network to bridge tokens to
  • Select a token available on both chains
  • Complete the flow
  • Verify flow is working as expected

Swap tokens on Base

  • Open Status
  • Login with an account with funds on Base
  • Select swap
  • Select Base as a network to swap tokens on
  • Select a token available on Base
  • Complete the flow
  • Verify flow is working as expected

Send collectible

  • Open Status
  • Login with an account with some collectible(s) on Base
  • Select send
  • Select Base as a network to send tokens on
  • Select a collectible available on Base
  • Complete the flow
  • Verify flow is working as expected

General smoke testing

  • General testing throughout the app, particularly where network connections are involved, should also be conducted

status: ready

Found Issues

  1. ETH assets and some ERC-20 are not shown for the account on Base

    • Fixed (checked by dev)
    • Verified (checked by QA)
  2. Unable to send ERC-1150 multi-collectible

    • Fixed (checked by dev)
    • Verified (checked by QA)
  3. "Does not support name" error displayed for sent collectible on Base chain

    • Fixed (checked by dev)
    • Verified (checked by QA)
  4. The wrong fee is estimated for Base and Opt networks on send/bridge/swap follow up

  5. Bridge transactions to Base fail for ERC-20 assets

    • Fixed (checked by dev)
    • Verified (checked by QA)

@status-im-auto
Copy link
Member

status-im-auto commented Dec 31, 2024

Jenkins Builds

Click to see older builds (47)
Commit #️⃣ Finished (UTC) Duration Platform Result
5d722b7 #1 2024-12-31 21:20:17 ~4 min tests 📄log
✔️ 5d722b7 #1 2024-12-31 21:23:43 ~8 min ios 📱ipa 📲
✔️ 5d722b7 #1 2024-12-31 21:25:25 ~10 min android-e2e 🤖apk 📲
✔️ 5d722b7 #1 2024-12-31 21:26:51 ~11 min android 🤖apk 📲
b8c9153 #2 2025-01-07 21:27:21 ~4 min tests 📄log
✔️ b8c9153 #2 2025-01-07 21:30:35 ~7 min android-e2e 🤖apk 📲
✔️ b8c9153 #2 2025-01-07 21:32:05 ~8 min ios 📱ipa 📲
✔️ b8c9153 #2 2025-01-07 21:33:08 ~9 min android 🤖apk 📲
a30e9d3 #4 2025-01-09 04:02:26 ~3 min tests 📄log
✔️ a30e9d3 #4 2025-01-09 04:07:38 ~8 min android-e2e 🤖apk 📲
✔️ a30e9d3 #4 2025-01-09 04:08:33 ~9 min ios 📱ipa 📲
✔️ a30e9d3 #4 2025-01-09 04:11:47 ~12 min android 🤖apk 📲
✔️ 5e06f27 #5 2025-01-14 04:05:36 ~9 min ios 📱ipa 📲
✔️ 5e06f27 #5 2025-01-14 04:08:16 ~12 min android-e2e 🤖apk 📲
✔️ 5e06f27 #5 2025-01-14 04:17:00 ~20 min android 🤖apk 📲
5e06f27 #5 2025-01-14 04:20:14 ~24 min tests 📄log
94e492f #6 2025-01-14 19:41:09 ~4 min tests 📄log
✔️ 94e492f #6 2025-01-14 19:45:46 ~9 min android 🤖apk 📲
✔️ 94e492f #6 2025-01-14 19:45:56 ~9 min android-e2e 🤖apk 📲
✔️ b308e82 #7 2025-01-14 20:32:11 ~4 min tests 📄log
✔️ b308e82 #7 2025-01-14 20:35:17 ~7 min android-e2e 🤖apk 📲
✔️ b308e82 #7 2025-01-14 20:37:45 ~10 min android 🤖apk 📲
✔️ b308e82 #8 2025-01-15 07:16:55 ~7 hr 40 min ios 📱ipa 📲
✔️ 285a7a5 #8 2025-01-15 15:41:32 ~6 min tests 📄log
✔️ 285a7a5 #8 2025-01-15 15:44:14 ~8 min android-e2e 🤖apk 📲
✔️ 285a7a5 #8 2025-01-15 15:46:10 ~10 min android 🤖apk 📲
✔️ 285a7a5 #9 2025-01-15 15:53:38 ~18 min ios 📱ipa 📲
✔️ 7469d5a #9 2025-01-16 13:12:53 ~5 min tests 📄log
✔️ 7469d5a #9 2025-01-16 13:16:01 ~8 min android-e2e 🤖apk 📲
✔️ 7469d5a #10 2025-01-16 13:17:40 ~10 min ios 📱ipa 📲
✔️ 7469d5a #9 2025-01-16 13:19:04 ~11 min android 🤖apk 📲
902a1e9 #10 2025-01-16 13:46:53 ~3 min tests 📄log
✔️ 902a1e9 #10 2025-01-16 13:52:44 ~9 min android 🤖apk 📲
✔️ 902a1e9 #10 2025-01-16 13:52:55 ~9 min android-e2e 🤖apk 📲
✔️ 902a1e9 #11 2025-01-16 13:53:32 ~10 min ios 📱ipa 📲
✔️ 7b09fd7 #11 2025-01-16 18:16:23 ~4 min tests 📄log
✔️ 7b09fd7 #11 2025-01-16 18:19:26 ~7 min android 🤖apk 📲
✔️ 7b09fd7 #11 2025-01-16 18:19:47 ~8 min android-e2e 🤖apk 📲
✔️ 7b09fd7 #12 2025-01-16 18:21:41 ~10 min ios 📱ipa 📲
✔️ 3b71c7b #12 2025-01-16 22:13:55 ~5 min tests 📄log
✔️ 3b71c7b #12 2025-01-16 22:15:24 ~6 min android-e2e 🤖apk 📲
✔️ 3b71c7b #12 2025-01-16 22:17:10 ~8 min android 🤖apk 📲
✔️ 3b71c7b #13 2025-01-16 22:18:09 ~9 min ios 📱ipa 📲
✔️ 468193f #13 2025-01-16 22:30:21 ~4 min tests 📄log
✔️ 468193f #13 2025-01-16 22:32:55 ~7 min android 🤖apk 📲
✔️ 468193f #13 2025-01-16 22:33:32 ~7 min android-e2e 🤖apk 📲
✔️ 468193f #14 2025-01-16 22:34:58 ~9 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ edff672 #14 2025-01-17 15:47:12 ~5 min tests 📄log
✔️ edff672 #15 2025-01-17 15:53:25 ~11 min ios 📱ipa 📲
edff672 #14 2025-01-17 15:56:00 ~14 min android 📄log
✔️ edff672 #14 2025-01-17 15:58:00 ~16 min android-e2e 🤖apk 📲
✔️ edff672 #15 2025-01-17 16:33:08 ~7 min android 🤖apk 📲
✔️ ca954f4 #15 2025-01-20 18:27:03 ~6 min tests 📄log
✔️ ca954f4 #15 2025-01-20 18:30:38 ~10 min android-e2e 🤖apk 📲
✔️ ca954f4 #16 2025-01-20 18:32:01 ~11 min android 🤖apk 📲
✔️ ca954f4 #16 2025-01-20 18:32:11 ~11 min ios 📱ipa 📲

@shivekkhurana shivekkhurana added the wallet-core Issues for mobile wallet team label Jan 7, 2025
@shivekkhurana
Copy link
Contributor

@briansztamfater Please use wallet-core label on PRs for better visibility.

@briansztamfater briansztamfater force-pushed the feat/integrate-base-chain branch 5 times, most recently from 94e492f to b308e82 Compare January 14, 2025 20:27
@briansztamfater briansztamfater changed the title [wip] feat: integrate base chain feat: integrate base chain Jan 14, 2025
@briansztamfater briansztamfater marked this pull request as ready for review January 14, 2025 21:09
@VolodLytvynenko VolodLytvynenko self-assigned this Jan 15, 2025
@@ -135,7 +135,8 @@
(def ^:private network-priority-score
{:ethereum 1
:optimism 2
:arbitrum 3})
:arbitrum 3
:base 4})
Copy link
Contributor

@shivekkhurana shivekkhurana Jan 15, 2025

Choose a reason for hiding this comment

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

We can move base to rank 2

Copy link
Contributor

@shivekkhurana shivekkhurana left a comment

Choose a reason for hiding this comment

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

🔥

@status-im-auto
Copy link
Member

88% of end-end tests have passed

Total executed tests: 8
Failed tests: 1
Expected to fail tests: 0
Passed tests: 7
IDs of failed tests: 702745 

Failed tests (1)

Click to expand
  • Rerun failed tests

  • Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: critical/chats/test_1_1_public_chats.py:38: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:388: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:167: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:164: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:154: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:138: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'shvWbQbAtwCPrELKjztK')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Passed tests (7)

    Click to expand

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_balance_mainnet, id: 740490

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133
    Device sessions

    Copy link
    Member

    @clauxx clauxx left a comment

    Choose a reason for hiding this comment

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

    Thanks for the great work!

    Left a few comments, but most revolve around minimising the changes needed to add a new chain. Not sure if it's a priority or should be left as a follow-up though @shivekkhurana @ilmotta

    Comment on lines 15 to +17
    :arbitrum {:id 42161 :name "Arbitrum"}
    :optimism {:id 10 :name "Optimism"}})
    :optimism {:id 10 :name "Optimism"}
    :base {:id 8453 :name "Base"}})
    Copy link
    Member

    Choose a reason for hiding this comment

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

    we have these values as constants already

    Copy link
    Member

    Choose a reason for hiding this comment

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

    These data need to be cleaned as it was used by old wallet code

    Comment on lines +34 to +42
    show-optimism? (and optimism
    (or (pos? (:amount optimism))
    (= (:amount optimism) "<0.01")))
    show-arbitrum? (and arbitrum
    (or (pos? (:amount arbitrum))
    (= (:amount arbitrum) "<0.01")))
    show-base? (and base
    (or (pos? (:amount base))
    (= (:amount base) "<0.01")))]
    Copy link
    Member

    Choose a reason for hiding this comment

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

    It's strange we're adding changes to quo components when adding a new chain, IMO it should be more generic, but it's a larger issue with quo.

    For now though, ideally we would want to minimise "chain-specific" code to make it easier to add other ones in the future. This check could be extracted into a function or a separate component, since the operation is the same for each chain.

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    I totally agree @clauxx, I think all these checks are not needed anymore as we are showing only one chain at a time, but I'd prefer to refactor in a follow-up as this would be out of scope of this PR.

    Comment on lines +64 to 67
    [network-amount
    {:network :base
    :amount (str (:amount base) " " (or (:token-symbol base) "ETH"))
    :theme theme}])]))
    Copy link
    Member

    Choose a reason for hiding this comment

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

    The divider? prop seems to be added manually for the chains above and is very easy to miss. Would be better to generalise the logic of when to show the divider instead of manually adding show-base? to all the previous components' divider condition.

    @briansztamfater briansztamfater force-pushed the feat/integrate-base-chain branch from b308e82 to 285a7a5 Compare January 15, 2025 15:35
    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.

    🚀

    Comment on lines 15 to +17
    :arbitrum {:id 42161 :name "Arbitrum"}
    :optimism {:id 10 :name "Optimism"}})
    :optimism {:id 10 :name "Optimism"}
    :base {:id 8453 :name "Base"}})
    Copy link
    Member

    Choose a reason for hiding this comment

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

    These data need to be cleaned as it was used by old wallet code

    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.

    🔥

    @status-im-auto
    Copy link
    Member

    82% of end-end tests have passed

    Total executed tests: 56
    Failed tests: 9
    Expected to fail tests: 1
    Passed tests: 46
    
    IDs of failed tests: 703194,702859,702840,703086,702894,703297,704615,702839,702841 
    
    IDs of expected to fail tests: 702844 
    

    Failed tests (9)

    Click to expand
  • Rerun failed tests

  • Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_send_image_save_and_share, id: 703297

    # STEP: Admin checks image message
    Device 1: Looking for a message by text: test image

    critical/chats/test_group_chat.py:246: in test_group_chat_send_image_save_and_share
        chat_element.wait_for_visibility_of_element(60)
    ../views/base_element.py:138: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: ChatElementByText by xpath:`//*[starts-with(@text,'test image')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194

    Device 1: Tap on found: SendMessageButton
    # STEP: Check gallery on second device

    critical/chats/test_public_chat_browsing.py:416: in test_community_several_images_send_reply
        self.channel_2.navigate_back_to_home_view()
    ../views/base_view.py:217: in navigate_back_to_home_view
        while not self.chat_floating_screen.is_element_disappeared(1) \
    ../views/base_element.py:216: in is_element_disappeared
        return self.wait_for_invisibility_of_element(sec)
    ../views/base_element.py:145: in wait_for_invisibility_of_element
        .until(expected_conditions.invisibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:319: in _predicate
        target = driver.find_element(*target)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    Device sessions

    2. test_community_one_image_send_reply, id: 702859

    # STEP: Check image, description and options for receiver
    Device 2: Looking for a message by text: description

    critical/chats/test_public_chat_browsing.py:463: in test_community_one_image_send_reply
        if not self.channel_2.chat_element_by_text(image_description).is_element_displayed(60):
    ../views/base_element.py:206: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:136: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840

    Device 1: Looking for a message by text: emoji
    Device 2: Looking for a message by text: emoji

    critical/chats/test_public_chat_browsing.py:539: in test_community_emoji_send_copy_paste_reply
        if not channel.chat_element_by_text(emoji_unicode).is_element_displayed(30):
    ../views/base_element.py:206: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:136: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086

    Device 1: Find CommunitiesTab by accessibility id: communities-stack-tab
    Device 1: Tap on found: CommunitiesTab

    critical/chats/test_public_chat_browsing.py:779: in test_community_mark_all_messages_as_read
        home.navigate_back_to_home_view()
    ../views/base_view.py:217: in navigate_back_to_home_view
        while not self.chat_floating_screen.is_element_disappeared(1) \
    ../views/base_element.py:216: in is_element_disappeared
        return self.wait_for_invisibility_of_element(sec)
    ../views/base_element.py:145: in wait_for_invisibility_of_element
        .until(expected_conditions.invisibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:319: in _predicate
        target = driver.find_element(*target)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894

    Device 1: Looking for chat: 'general'
    Device 1: Click until ChatMessageInput by accessibility id: chat-message-input will be presented

    critical/chats/test_public_chat_browsing.py:679: in test_community_contact_block_unblock_offline
        if not channel.chat_message_input.is_element_displayed():
    ../views/base_element.py:206: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:136: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615

    # STEP: Sending messages for edit and delete
    Device 2: Sending message 'message to edit'

    critical/chats/test_public_chat_browsing.py:809: in test_community_edit_delete_message_when_offline
        self.channel_2.send_message(message_to_edit)
    ../views/chat_view.py:628: in send_message
        self.chat_message_input.wait_for_element(wait_chat_input_sec)
    ../views/base_element.py:118: in wait_for_element
        .until(expected_conditions.presence_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:82: in _predicate
        return driver.find_element(*locator)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    Device sessions

    7. test_community_message_delete, id: 702839

    Device 2: Type delete for everyone to ChatMessageInput
    Device 2: Find SendMessageButton by accessibility id: send-message-button

    critical/chats/test_public_chat_browsing.py:386: in test_community_message_delete
        self.channel_2.send_message(message_to_delete_everyone)
    ../views/chat_view.py:640: in send_message
        self.send_message_button.click()
    ../views/base_element.py:91: in click
        element.click()
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:94: in click
        self._execute(Command.CLICK_ELEMENT)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:395: in _execute
        return self._parent.execute(command, params)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element/00000000-0000-000c-ffff-ffff000005da/click' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element/00000000-0000-000c-ffff-ffff000005da/click' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.click (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/element.js:136:5)
    



    Device sessions

    8. test_community_unread_messages_badge, id: 702841

    Device 1: Find CommunitiesTab by accessibility id: communities-stack-tab
    Device 1: Tap on found: CommunitiesTab

    critical/chats/test_public_chat_browsing.py:657: in test_community_unread_messages_badge
        if not self.home_2.chat_floating_screen.is_element_displayed():
    ../views/base_element.py:206: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:136: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    Device sessions

    Expected to fail tests (1)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Device 1: Looking for chat: 'general'
    Device 1: Click until ChatMessageInput by accessibility id: chat-message-input will be presented

    critical/chats/test_public_chat_browsing.py:604: in test_community_links_with_previews_github_youtube_twitter_gif_send_enable
        if not home.chat_floating_screen.is_element_displayed():
    ../views/base_element.py:206: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:136: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/lib/commands/find.js:44:7)
    E       at doFind (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:48:17)
    E       at wrappedCondFn (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:221:20)
    E       at waitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/asyncbox/lib/asyncbox.js:238:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/appium-android-driver/lib/commands/find.ts:71:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/root/lambda/shared-tools/volume/uiautomator/uiautomator-2.32.3/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12) 
    

    [[Youtube links preview is not loaded on LambdaTest emulators, needs investigation]]

    Device sessions

    Passed tests (46)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_discovery, id: 703503
    Device sessions

    3. test_community_undo_delete_message, id: 702869
    Device sessions

    4. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133
    Device sessions

    5. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    6. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    7. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    8. test_1_1_chat_message_reaction, id: 702730
    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 TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_mute_chat, id: 703495
    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 TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links_profile, id: 702775
    Device sessions

    3. test_deep_links_communities, id: 739307
    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 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 TestCommunityMultipleDeviceMerged:

    1. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    2. test_community_message_edit, id: 702843
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    3. test_community_mentions_push_notification, id: 702786
    Device sessions

    4. test_community_leave, id: 702845
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_balance_mainnet, id: 740490

    Class TestFallbackMultipleDevice:

    1. test_fallback_sync_with_error, id: 740220
    2. test_fallback_validate_seed_phrase, id: 740222
    3. test_fallback_with_correct_seed_phrase, id: 740221
    4. test_fallback_add_key_pair, id: 741054

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    ISSUE 3: "Does not support name" error displayed for sent collectible on Base chain

    Steps:

    1. Send collectible using Base
    2. Go to activity tab
    3. Tap "..."

    Actual result:

    The "Does not support name" error is shown

    collectibaleDoesnotsupprt.mp4

    OS:

    IOS, Android

    Devices:

    • Pixel 7a, Android 13
    • iPhone 11 Pro Max, IOS 17

    Logs

    https://drive.google.com/file/d/1Q9MFtwuFzN2-F2atfOX_m_bR2iuA_1cO/view?usp=drive_link

    @briansztamfater
    Copy link
    Member Author

    Thanks for testing @VolodLytvynenko. Issue 3 should be fixed. Investigating the other ones.

    @briansztamfater briansztamfater force-pushed the feat/integrate-base-chain branch from 3b71c7b to 468193f Compare January 16, 2025 22:25
    @briansztamfater
    Copy link
    Member Author

    Issues 1 and 2 were likely caused by proxy problems (Nodefleet not returning the correct values and other configuration issues). These have now been resolved, so I believe issues 1 and 2 are ready for testing.
    Let me know how the testing goes! :)

    @status-im-auto
    Copy link
    Member

    98% of end-end tests have passed

    Total executed tests: 56
    Failed tests: 0
    Expected to fail tests: 1
    Passed tests: 55
    
    IDs of expected to fail tests: 702844 
    

    Expected to fail tests (1)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Device 2: Find `EmojisNumber` by `xpath`: `//*[starts-with(@text,'https://m.youtube.com/watch?v=Je7yErjEVt4')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-4']/android.widget.TextView[2]`
    Device 2: Element EmojisNumber text is equal to 1

    critical/chats/test_public_chat_browsing.py:650: in test_community_links_with_previews_github_youtube_twitter_gif_send_enable
        self.errors.verify_no_errors()
    base_test_case.py:176: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     No preview is loaded for url https://youtu.be/Je7yErjEVt4
    E    No preview is loaded for url https://www.youtube.com/watch?v=XN-SVmuJH2g&list=PLbrz7IuP1hrgNtYe9g6YHwHO6F3OqNMao
    E    No preview is loaded for url https://m.youtube.com/watch?v=Je7yErjEVt4 
    

    [[Youtube links preview is not loaded on LambdaTest emulators, needs investigation]]

    Device sessions

    Passed tests (55)

    Click to expand

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    2. test_activity_center_mentions, id: 702957
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_edit_message, id: 702855
    Device sessions

    7. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_deep_links_profile, id: 702775
    Device sessions

    2. test_deep_links_communities, id: 739307
    Device sessions

    3. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_mute_community_and_channel, id: 703382
    Device sessions

    3. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    6. test_community_discovery, id: 703503
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_balance_mainnet, id: 740490
    2. test_wallet_add_remove_regular_account, id: 727231

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    2. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    3. test_community_one_image_send_reply, id: 702859
    Device sessions

    4. test_community_message_edit, id: 702843
    Device sessions

    5. test_community_several_images_send_reply, id: 703194
    Device sessions

    6. test_community_message_delete, id: 702839
    Device sessions

    7. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    8. test_community_unread_messages_badge, id: 702841
    Device sessions

    9. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    10. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    2. test_group_chat_mute_chat, id: 703495
    Device sessions

    3. test_group_chat_pin_messages, id: 702732
    Device sessions

    4. test_group_chat_reactions, id: 703202
    Device sessions

    5. test_group_chat_offline_pn, id: 702808
    Device sessions

    6. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_mentions_push_notification, id: 702786
    Device sessions

    2. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    3. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    4. test_community_markdown_support, id: 702809
    Device sessions

    5. test_community_leave, id: 702845
    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_with_correct_seed_phrase, id: 740221
    2. test_fallback_sync_with_error, id: 740220
    3. test_fallback_add_key_pair, id: 741054
    4. test_fallback_validate_seed_phrase, id: 740222

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    2. test_add_contact_field_validation, id: 702777
    Device sessions

    3. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    VolodLytvynenko commented Jan 17, 2025

    hi @saledjenic. The wrong fee is being displayed on Base. Could you please check this? Perhaps the issue is due to the Status Go PR not being rebased. Could you kindly rebase the Status Go PR?

    PR_ISSUE 4: The wrong fee is estimated for Base network on send/bridge/swap

    Steps to reproduce:

    1. Navigate to the Send Setup page.
    2. Build a transaction route.

    Actual result:

    The estimated maximum fee is always displayed as <0.01 USD.
    However, after the transaction is performed, the actual fee is 0.1 USD.
    image
    send: https://basescan.org/tx/0xd0347976e2f41cc81c6a64e07650dca0746d24c487cb2e9c56dbaa6d6c0bfedd
    image

    image
    send: https://basescan.org/tx/0xa7f093829962f8b3f7604d97b3818dc504d4dccbde363a49e56372f3ac453094
    image

    image
    swap: https://basescan.org/tx/0x2df5a010af3754db7349909138d60f117de21a3de4aeabcf59557bb512321d41
    image

    Expected result:

    The estimated maximum fee should accurately reflect the actual transaction fee (e.g., 0.1 USD).

    ADDITIONAL INFO

    The same issue happened for the Optimism network
    image
    https://optimistic.etherscan.io/tx/0x48aa2b2baf75c864e384789f56d46bceb5c2c18e1c7490e10790f93b6b73f254
    image

    @briansztamfater
    Copy link
    Member Author

    briansztamfater commented Jan 17, 2025

    @VolodLytvynenko status-go PR was rebased and updated in this PR

    @saledjenic Base is based on Optimism stack so if both chains are showing incorrect fees, could it be the case that something changed on counting the L1Fee?

    @briansztamfater
    Copy link
    Member Author

    briansztamfater commented Jan 17, 2025

    I quickly tested #21941 and #21925 build and got same result for Optimism transaction

    @briansztamfater
    Copy link
    Member Author

    briansztamfater commented Jan 17, 2025

    Not sure when this was introduced in status-go but seems L1 Gas Fee is returning 0 value

    Based on the tx you attached (https://basescan.org/tx/0xd0347976e2f41cc81c6a64e07650dca0746d24c487cb2e9c56dbaa6d6c0bfedd)

    The total fes are $0.03

    The L2 fee is indeed less than $0.01 (0.000000470854561596 ETH)
    But we need to sum the L1 fee (0.000009058591201401 ETH) which is ~0,03 but status-go is returning 0.

    Arbitrum works different than Optimism and Base and does not have a separate L1 Fee. For Optimism and Base transactions to show the correct fee we need to receive the correct L1 fee from the router.

    Seems like something we can fix in a follow up because seems it was not introduced in this PR.

    cc @saledjenic @VolodLytvynenko

    @VolodLytvynenko
    Copy link
    Contributor

    Not sure when this was introduced in status-go but seems L1 Gas Fee is returning 0 value

    Based on the tx you attached (https://basescan.org/tx/0xd0347976e2f41cc81c6a64e07650dca0746d24c487cb2e9c56dbaa6d6c0bfedd)

    The total fes are $0.03

    The L2 fee is indeed less than $0.01 (0.000000470854561596 ETH) But we need to sum the L1 fee (0.000009058591201401 ETH) which is ~0,03 but status-go is returning 0.

    Arbitrum works different than Optimism and Base and does not have a separate L1 Fee. For Optimism and Base transactions to show the correct fee we need to receive the correct L1 fee from the router.

    Seems like something we can fix in a follow up because seems it was not introduced in this PR.

    cc @saledjenic @VolodLytvynenko

    @briansztamfater thank you. I will create this issue separtly

    @saledjenic
    Copy link

    @briansztamfater Regarding L1 fees, in the past, our fees were significantly higher than they should have been (if I remember well, the L1 fees were about 1000 times higher than they should have been). I'm not sure if that was due to the calculation method or not, but many months ago, we decided to turn off L1 fees until we checked them again and brought them back.

    From this point, that wrong value might be coming from unreliable pokt calls/values, so we should prepare a branch including them again and test. I will do that, maybe even today.

    Also, regarding l1 fee, I see that you're using l1GasFee from the SuggestedFees type, but that one should be removed. Would be good if the mobile app started using the following field from the Path type instead:

    • TxL1Fee
    • ApprovalL1Fee

    @VolodLytvynenko
    Copy link
    Contributor

    VolodLytvynenko commented Jan 20, 2025

    @briansztamfater Thank you for the fixes. Unfortunately, one more issue is found. Perhaps it can be considered a follow-up if no other issue is found

    ISSUE 5: Bridge transactions to Base fail for ERC-20 assets

    Steps:

    1. Perfrom bridge tx using ERC-20 (e.g., DAI or USDC)

    Actual result:

    Bridge transactions to Base fail on the blockchain when attempting to bridge an ERC-20 asset.

    https://arbiscan.io/tx/0xec4ceb7e7ab5a08f1383f3a83e3e734f9dbf20f6eafa8249fc26b090cd9722a0

    bridge_tx_base.mp4

    Expected result:

    Bridge transactions with ERC-20 assets should complete successfully.

    Devices:

    • Pixel 7a, Android 13
    • iPhone 11 Pro Max, IOS 17

    Logs:

    https://drive.google.com/file/d/1GuYlSYomppWytPuwCUXfBxcBUynsJozj/view?usp=drive_link

    @VolodLytvynenko
    Copy link
    Contributor

    Status of issues I have attached to the description here

    @VolodLytvynenko
    Copy link
    Contributor

    ISSUE 4 is not PR related. I've created it separately #21954

    @saledjenic
    Copy link

    @briansztamfater @VolodLytvynenko here is a PR status-im/status-go#6271 for bringing L1 fees back. Please test it, once changes get integrated in this PR.

    @VolodLytvynenko
    Copy link
    Contributor

    hi @briansztamfater no other issues from my side. We have only one issue 5 it's okay if it will be better to fix it in a separate follow-up. Let me know if this will be addressed in this PR, otherwise, the PR can be merged

    Signed-off-by: Brian Sztamfater <brian@status.im>
    @briansztamfater briansztamfater force-pushed the feat/integrate-base-chain branch from edff672 to ca954f4 Compare January 20, 2025 18:20
    @briansztamfater
    Copy link
    Member Author

    briansztamfater commented Jan 21, 2025

    @VolodLytvynenko After some investigation, I realised that bridging DAI to Base is not supported on Hop Protocol. See this screenshot:

    This is not the case for USDC, for which I was able to bridge some tokens with success:
    https://arbiscan.io/tx/0x76b4cbd044d5855d0a8ef3edfc0db66a550b8ad109f6d8ad47bff9cdcf976fa4

    There is not much that we can do for now until Hop Protocol supports DAI on Base or we integrate a new bridge protocol, but for sure we should prevent the user to execute an invalid bridge transaction. I think the router should not return a valid route in this case, as there are no contract addresses set for Hop Protocol for DAI on Base (https://github.com/hop-protocol/hop/blob/8707bb5fa87c34bef0f98b1a6e2274dde2646fa0/packages/sdk/src/addresses/mainnet.ts#L712). cc @saledjenic

    Let's merge this and decide what to do in a follow up. Let me know if there will be a new issue for this.

    @briansztamfater briansztamfater merged commit f0e0c95 into develop Jan 21, 2025
    5 checks passed
    @briansztamfater briansztamfater deleted the feat/integrate-base-chain branch January 21, 2025 04:44
    @VolodLytvynenko
    Copy link
    Contributor

    @VolodLytvynenko After some investigation, I realised that bridging DAI to Base is not supported on Hop Protocol. See this screenshot:

    This is not the case for USDC, for which I was able to bridge some tokens with success: https://arbiscan.io/tx/0x76b4cbd044d5855d0a8ef3edfc0db66a550b8ad109f6d8ad47bff9cdcf976fa4

    There is not much that we can do for now until Hop Protocol supports DAI on Base or we integrate a new bridge protocol, but for sure we should prevent the user to execute an invalid bridge transaction. I think the router should not return a valid route in this case, as there are no contract addresses set for Hop Protocol for DAI on Base (https://github.com/hop-protocol/hop/blob/8707bb5fa87c34bef0f98b1a6e2274dde2646fa0/packages/sdk/src/addresses/mainnet.ts#L712). cc @saledjenic

    Let's merge this and decide what to do in a follow up. Let me know if there will be a new issue for this.

    hi @briansztamfater
    Oh, I didn’t think to check it in the hopper. Thank you for finding this. Yes, I agree this should be discussed. For now, I’ve created a separate issue for this #21964

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    Projects
    Status: DONE
    Status: Done
    Development

    Successfully merging this pull request may close these issues.

    Integrate Base chain on the wallet [placeholder]
    9 participants