Skip to content

Conversation

alwx
Copy link
Contributor

@alwx alwx commented Feb 24, 2025

Potentially fixes #21735
Fixes #21473
Also improves and simplifies error handling which is required for #22046 as well

Summary

This PR adds missing handing of missing signals and updates processing of a couple of existing signals:

  • wallet.router.sending-transactions-started (new)
  • wallet.router.transactions-sent
  • wallet.transaction.status-changed (new)

In addition to that, error processing has been simplified and unified with status-desktop — basically all the logic in :wallet/show-transaction-notification is there to match the logic here: https://github.com/status-im/status-desktop/blob/master/src/app/modules/main/module.nim#L445

Potential next steps (to be discussed)

status-desktop goes further and use the same function to display all kinds of transaction-related notifications. Do we do more informative toasts? Do we need to duplicate the logic of indication how the transaction is moving forward?

Functional

  • wallet

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Feb 24, 2025

Jenkins Builds

Click to see older builds (39)
Commit #️⃣ Finished (UTC) Duration Platform Result
6f5a053 #1 2025-02-24 08:33:16 ~3 min tests 📄log
✔️ 6f5a053 #1 2025-02-24 08:39:53 ~9 min android 🤖apk 📲
✔️ 6f5a053 #1 2025-02-24 08:40:37 ~10 min ios 📱ipa 📲
358b35c #2 2025-02-24 10:15:12 ~2 min tests 📄log
✔️ 358b35c #2 2025-02-24 10:20:28 ~7 min android-e2e 🤖apk 📲
✔️ 358b35c #2 2025-02-24 10:21:19 ~8 min android 🤖apk 📲
✔️ 358b35c #2 2025-02-24 10:22:08 ~9 min ios 📱ipa 📲
443e88b #3 2025-02-24 18:30:49 ~3 min tests 📄log
✔️ 443e88b #3 2025-02-24 18:35:25 ~8 min android-e2e 🤖apk 📲
✔️ 443e88b #3 2025-02-24 18:35:56 ~8 min android 🤖apk 📲
✔️ 443e88b #3 2025-02-24 18:37:03 ~9 min ios 📱ipa 📲
7d8041a #4 2025-02-24 20:42:00 ~2 min tests 📄log
✔️ 7d8041a #4 2025-02-24 20:46:12 ~6 min android-e2e 🤖apk 📲
✔️ 7d8041a #4 2025-02-24 20:47:36 ~8 min android 🤖apk 📲
✔️ 7d8041a #4 2025-02-24 20:51:43 ~12 min ios 📱ipa 📲
b517215 #6 2025-03-03 08:35:37 ~2 min tests 📄log
ac07213 #7 2025-03-03 08:39:34 ~3 min tests 📄log
9567033 #8 2025-03-03 08:44:35 ~2 min tests 📄log
✔️ 9567033 #8 2025-03-03 08:49:14 ~7 min android 🤖apk 📲
✔️ 9567033 #8 2025-03-03 08:49:50 ~7 min android-e2e 🤖apk 📲
✔️ 9567033 #8 2025-03-03 08:52:14 ~10 min ios 📱ipa 📲
263fc45 #9 2025-04-08 20:09:36 ~4 min tests 📄log
✔️ 263fc45 #9 2025-04-08 20:13:24 ~8 min android-e2e 🤖apk 📲
✔️ 263fc45 #9 2025-04-08 20:15:17 ~10 min android 🤖apk 📲
✔️ 263fc45 #9 2025-04-08 20:17:17 ~12 min ios 📱ipa 📲
ff65daf #10 2025-04-10 12:17:02 ~3 min tests 📄log
73ecaf1 #11 2025-04-10 12:24:17 ~2 min tests 📄log
9948480 #12 2025-04-10 12:32:29 ~3 min tests 📄log
✔️ 9948480 #12 2025-04-10 12:38:14 ~9 min android-e2e 🤖apk 📲
✔️ 9948480 #12 2025-04-10 12:38:48 ~9 min android 🤖apk 📲
✔️ 9948480 #12 2025-04-10 12:39:11 ~9 min ios 📱ipa 📲
✔️ 320d016 #13 2025-04-10 16:12:41 ~5 min tests 📄log
✔️ 320d016 #13 2025-04-10 16:16:35 ~9 min android-e2e 🤖apk 📲
✔️ 320d016 #13 2025-04-10 16:17:09 ~9 min ios 📱ipa 📲
✔️ 320d016 #13 2025-04-10 16:17:18 ~9 min android 🤖apk 📲
✔️ 8a06a6d #14 2025-04-11 07:09:37 ~4 min tests 📄log
✔️ 8a06a6d #14 2025-04-11 07:13:10 ~8 min android-e2e 🤖apk 📲
✔️ 8a06a6d #14 2025-04-11 07:13:43 ~8 min android 🤖apk 📲
✔️ 8a06a6d #14 2025-04-11 07:15:26 ~10 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ f7410e9 #15 2025-04-15 13:24:52 ~6 min tests 📄log
✔️ f7410e9 #15 2025-04-15 13:27:19 ~9 min android-e2e 🤖apk 📲
✔️ f7410e9 #15 2025-04-15 13:28:26 ~10 min android 🤖apk 📲
✔️ f7410e9 #15 2025-04-15 13:35:55 ~17 min ios 📱ipa 📲
f0e5a6c #16 2025-05-19 08:29:42 ~3 min tests 📄log
✔️ f0e5a6c #16 2025-05-19 08:34:21 ~7 min android-e2e 🤖apk 📲
✔️ f0e5a6c #16 2025-05-19 08:35:30 ~9 min android 🤖apk 📲
✔️ f0e5a6c #16 2025-05-19 08:38:04 ~11 min ios 📱ipa 📲

@alwx alwx force-pushed the bug/swap-bridge-improvements branch 3 times, most recently from b517215 to ac07213 Compare March 3, 2025 08:36
@alwx alwx marked this pull request as ready for review March 3, 2025 08:39
@shivekkhurana shivekkhurana added the wallet-core Issues for mobile wallet team label Mar 4, 2025
@churik
Copy link
Member

churik commented Mar 10, 2025

@alwx
please, move PR to E2E column once conflicts and review comments are resolved. thanks!

@churik
Copy link
Member

churik commented Apr 7, 2025

сс @alwx - pinging for visibility, seems this Pr is here for awhile, may we take actions to move it forward?

Thanks!

@alwx
Copy link
Contributor Author

alwx commented Apr 7, 2025

@churik sure, just other things were more important. Updating it today.

@alwx alwx removed the request for review from briansztamfater April 8, 2025 19:58
@alwx alwx force-pushed the bug/swap-bridge-improvements branch 2 times, most recently from 263fc45 to ff65daf Compare April 10, 2025 12:13
@alwx alwx requested a review from smohamedjavid April 10, 2025 12:26
@alwx alwx moved this from REVIEW to E2E Tests in Pipeline for QA Apr 10, 2025
@alwx
Copy link
Contributor Author

alwx commented Apr 10, 2025

Moving it to E2E tests column (finally)

@pavloburykh
Copy link
Contributor

pavloburykh commented Apr 10, 2025

@alwx thank for the PR. Is it ready for testing? If, yes could you please add request-manual-qa label + rebase PR to the latest develop.

Also, I see tests build is failing. Could you take a look at this as well please?

Thank you.

@status-im-auto
Copy link
Member

61% of end-end tests have passed

Total executed tests: 23
Failed tests: 9
Expected to fail tests: 0
Passed tests: 14
IDs of failed tests: 727229,741840,727230,740490,741612,741554,742015,741841,742016 

Failed tests (9)

Click to expand
  • Rerun failed tests

  • Class TestWalletOneDevice:

    1. test_wallet_balance_mainnet, id: 740490

    Device 1: Tap on found: Button
    Device 1: Find `Button` by `accessibility id`: `Base, NEW, label-component`

    wallet/test_wallet_mainnet_no_send.py:60: in test_wallet_balance_mainnet
        self.wallet_view.set_network_in_wallet(network)
    ../views/wallet_view.py:236: in set_network_in_wallet
        element.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 accessibility id: `Base, NEW, label-component` 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_wallet_bridge_flow_mainnet, id: 741612

    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']
    Device 1: Click system back button

    wallet/test_wallet_mainnet_no_send.py:349: in test_wallet_bridge_flow_mainnet
        self.errors.verify_no_errors()
    base_test_case.py:205: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: Optimism to Arbitrum: Est. time has incorrect value -  min on the Review Bridge screen
    E    Device 1: Arbitrum to Base: Est. time has incorrect value -  min on the Review Bridge screen
    E    Device 1: Base to Optimism: Est. time has incorrect value -  min on the Review Bridge screen
    



    Device sessions

    3. test_wallet_send_flow_mainnet, id: 741554

    Device 1: Tap on found: Button
    Device 1: Find EditBox by accessibility id: address-text-input

    wallet/test_wallet_mainnet_no_send.py:76: in test_wallet_send_flow_mainnet
        self.wallet_view.address_text_input.send_keys(self.receiver['wallet_address'])
    ../views/base_element.py:380: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: EditBox by accessibility id: `address-text-input` 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

    Class TestWalletMultipleDevice:

    1. test_send_eth[Status Network Sepolia-0.0002], id: 727229

    # STEP: Sending funds from wallet on Status Network Sepolia
    Device 1: Find Button by xpath: //android.view.ViewGroup[contains(@content-desc,'Account 1')]

    wallet_txs/test_wallet_testnet.py:45: in test_send_eth
        self.wallet_1.get_account_element().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: `//android.view.ViewGroup[contains(@content-desc,'Account 1')]` 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_wallet_send_erc20_from_drawer[Optimism Sepolia-USD Coin-USDC-2-0.01], id: 727230

    Device 1: Double tap on: Button
    Device 1: Find Button by xpath: //*[@content-desc='send']/*[@content-desc='left-icon-for-action']

    wallet_txs/test_wallet_testnet.py:81: in test_wallet_send_erc20_from_drawer
        self.wallet_1.send_asset_from_drawer(address=self.receiver['wallet_address'],
    ../views/wallet_view.py:289: in send_asset_from_drawer
        self.send_from_drawer_button.double_click()
    ../views/base_element.py:114: in double_click
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:114: in <listcomp>
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='send']/*[@content-desc='left-icon-for-action']` 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

    3. test_send_eth[Arbitrum Sepolia-0.0001], id: 742015

    Device 1: Tap on found: Button
    Device 1: Find Button by xpath: //*[@content-desc='network-list']/*[@text='Arbitrum Sepolia']

    wallet_txs/test_wallet_testnet.py:46: in test_send_eth
        self.wallet_1.send_asset(address=self.receiver['wallet_address'],
    ../views/wallet_view.py:282: in send_asset
        self.select_network(network_name)
    ../views/wallet_view.py:257: in select_network
        xpath="//*[@content-desc='network-list']/*[@text='%s']" % network_name).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: `//*[@content-desc='network-list']/*[@text='Arbitrum Sepolia']` 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

    4. test_wallet_send_erc20_from_drawer[Sepolia-USD Coin-USDC-2-0.01], id: 742016

    Device 1: Double tap on: Button
    Device 1: Find Button by xpath: //*[@content-desc='send']/*[@content-desc='left-icon-for-action']

    wallet_txs/test_wallet_testnet.py:81: in test_wallet_send_erc20_from_drawer
        self.wallet_1.send_asset_from_drawer(address=self.receiver['wallet_address'],
    ../views/wallet_view.py:289: in send_asset_from_drawer
        self.send_from_drawer_button.double_click()
    ../views/base_element.py:114: in double_click
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:114: in <listcomp>
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='send']/*[@content-desc='left-icon-for-action']` 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

    Class TestWalletCollectibles:

    1. test_wallet_send_collectible, id: 741840

    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']
    Device 1: Click system back button

    wallet/test_collectibles.py:154: in test_wallet_send_collectible
        self.errors.verify_no_errors()
    base_test_case.py:205: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: Unexpected value ' min' is shown for est. time on the Review Send page
    



    Device sessions

    2. test_wallet_collectible_send_from_expanded_info_view, id: 741841

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

    wallet/test_collectibles.py:206: in test_wallet_collectible_send_from_expanded_info_view
        self.errors.verify_no_errors()
    base_test_case.py:205: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: Unexpected value ' min' is shown for est. time on the Review Send page
    



    Device sessions

    Passed tests (14)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    Class TestProfileMultipleDevices:

    1. test_profile_change_profile_photo, id: 741969
    Device sessions

    2. test_profile_change_username, id: 741968
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    2. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    3. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestWalletCollectibles:

    1. test_wallet_collectibles_balance, id: 741839
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_delete, id: 702839
    Device sessions

    2. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    3. test_community_one_image_send_reply_set_reaction, id: 702859
    Device sessions

    4. test_community_message_edit, id: 702843
    Device sessions

    Class TestWalletOneDeviceTwo:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_swap_flow_mainnet, id: 741555
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    pavloburykh commented Apr 10, 2025

    @alwx could you please expand on how exactly this issue #21473 is fixed, what is the expected result?

    User should not face the described error anymore OR this error is handled in some other way?

    Same question about #21735 : do you expect that user should not face Route not built randomly problem anymore OR we should show some specific error when routes are not build?

    @alwx
    Copy link
    Contributor Author

    alwx commented Apr 11, 2025

    @pavloburykh the thing is when working with external providers we cannot really guarantee that things work 100% of times — sometimes the provider might be unavailable, sometimes you might reach the request limit, etc etc.

    But #21473 must be gone, and the whole error handling process was updated so that the errors you might be getting in the process should match those you see on desktop.
    When it comes to route not being built randomly — it might still happen and there is no way around that (see the beginning of my explanation) but at least you should be able to see the clear reason in logs and the better error description in this case.

    @VolodLytvynenko VolodLytvynenko self-assigned this Apr 11, 2025
    @VolodLytvynenko VolodLytvynenko moved this from E2E Tests to IN TESTING in Pipeline for QA Apr 11, 2025
    @status-im-auto
    Copy link
    Member

    78% of end-end tests have passed

    Total executed tests: 9
    Failed tests: 2
    Expected to fail tests: 0
    Passed tests: 7
    
    IDs of failed tests: 741840,741841 
    

    Failed tests (2)

    Click to expand
  • Rerun failed tests

  • Class TestWalletCollectibles:

    1. test_wallet_send_collectible, id: 741840

    Device 1: Tap on found: WalletTab
    Device 1: Find `Button` by `xpath`: `//android.view.ViewGroup[contains(@content-desc,'Account 1')]`

    wallet/test_collectibles.py:103: in test_wallet_send_collectible
        self.wallet_view.get_account_element().click()
    ../views/base_element.py:92: 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))
     The element 'By.xpath: //android.view.ViewGroup[contains(@content-desc,'Account 1')]' is not linked to the same object in DOM anymore; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#stale-element-reference-exception
    E   Stacktrace:
    E   io.appium.uiautomator2.common.exceptions.StaleElementReferenceException: The element 'By.xpath: //android.view.ViewGroup[contains(@content-desc,'Account 1')]' is not linked to the same object in DOM anymore
    E   	at io.appium.uiautomator2.model.ElementsCache.restore(ElementsCache.java:122)
    E   	at io.appium.uiautomator2.model.ElementsCache.get(ElementsCache.java:153)
    E   	at io.appium.uiautomator2.handler.Click.safeHandle(Click.java:36)
    E   	at io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:277)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:271)
    E   	at io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:77)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:435)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
    E   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
    E   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:611)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:552)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:466)
    E   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
    E   	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
    E   	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
    E   	at java.lang.Thread.run(Thread.java:1012)
    



    Device sessions

    2. test_wallet_collectible_send_from_expanded_info_view, id: 741841

    Device 1: Find Button by accessibility id: collectibles-tab
    Device 1: Tap on found: Button

    wallet/test_collectibles.py:159: in test_wallet_collectible_send_from_expanded_info_view
        self.wallet_view.get_collectible_element('Glitch Punks').wait_for_element().click()
    ../views/base_element.py:121: in wait_for_element
        raise TimeoutException(
     Device `1`: `CollectibleItemElement` by` xpath`: `//*[@content-desc='collectible-list-item']//*[contains(@text,'Glitch Punks')]/../..` is not found on the screen after wait_for_element
    



    Device sessions

    Passed tests (7)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_balance_mainnet, id: 740490
    Device sessions

    2. test_wallet_bridge_flow_mainnet, id: 741612
    Device sessions

    3. test_wallet_send_flow_mainnet, id: 741554
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_erc20_from_drawer[Sepolia-USD Coin-USDC-2-0.01], id: 742016
    Device sessions

    2. test_send_eth[Arbitrum Sepolia-0.0001], id: 742015
    Device sessions

    3. test_send_eth[Status Network Sepolia-0.0002], id: 727229
    Device sessions

    4. test_wallet_send_erc20_from_drawer[Optimism Sepolia-USD Coin-USDC-2-0.01], id: 727230
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    VolodLytvynenko commented Apr 11, 2025

    hi @alwx Thank you for PR. Take a look, this issue still exists

    PR_ISSUE 1: Unclear validation messages are shown for unsupported assets for Base on bridge

    Steps:

    1. Attempt to bridge a non-supported token.
    2. Try the following bridge actions:
    • Bridge FROM Base.
    • Bridge TO Base.

    Actual result:

    The validation toast is not clear on the bridge if a non-supported token is used:
    "Not available for chainID" is displayed when attempting to bridge FROM Base.
    image

    Expected result:

    Clear and user-friendly validation messages should be displayed, such as:
    "Bridging from Base is not supported for this token."
    "Bridging to Base is not supported for this token.

    https://www.figma.com/design/xLs1KYmF4e6WwRTZVJKeUK/Wallet?node-id=10232-108495&t=sVvADfGe0WsbBGA4-1
    discussing in https://discord.com/channels/1210237582470807632/1274068685266489434/1335942271274713109

    Devices:

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

    @VolodLytvynenko VolodLytvynenko moved this from IN TESTING to CONTRIBUTOR in Pipeline for QA Apr 11, 2025
    @pavloburykh
    Copy link
    Contributor

    pavloburykh commented Apr 11, 2025

    @VolodLytvynenko regarding ISSUE 1: I am not sure we expect this issue #22012 to be fixed by current PR. I do not see this issue in the PR description. Why do you assume it should be fixed? Anyway, @alwx can provide more clarification on this.

    @VolodLytvynenko
    Copy link
    Contributor

    Also improves and simplifies error handling which is required for #22046 as well

    Hi @alwx, I noticed this in the description of the current PR. Could you confirm if this is an issue that should be fixed in scope of this PR? I understood it to be so

    @VolodLytvynenko
    Copy link
    Contributor

    I'm surprised to see this issue in the current PR, as I was sure it wasn’t related to it. However, I'm unable to reproduce it in the latest development, but I can consistently reproduce it on 2 devices across different networks. Could you please take a look

    PR_ISSUE 2: Approval transaction is shown before bridge transaction in activity tab

    Steps to reproduce:

    1. Perform a bridge transaction using an ERC-20 asset.
    2. Open the Activity tab and observe the order of displayed transactions.

    Actual result:

    The Approval transaction appears first (at the top).
    The Bridge transaction appears below the approval transaction.
    image

    Expected result:

    The Bridge transaction should be shown first at the top as within blockchain
    image

    OS:

    IOS, Android

    Devices:

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

    Logs

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

    @alwx alwx force-pushed the bug/swap-bridge-improvements branch from f7410e9 to f0e5a6c Compare May 19, 2025 08:26
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    Projects
    Status: CONTRIBUTOR
    8 participants