2023-12-05 13:23:02 +00:00
|
|
|
import time
|
|
|
|
|
|
|
|
import allure
|
|
|
|
|
|
|
|
import configs
|
|
|
|
import constants
|
|
|
|
import driver
|
|
|
|
from driver.objects_access import wait_for_template
|
|
|
|
from gui.components.base_popup import BasePopup
|
|
|
|
from gui.components.community.authenticate_popup import AuthenticatePopup
|
|
|
|
from gui.elements.button import Button
|
|
|
|
from gui.elements.object import QObject
|
|
|
|
from gui.elements.text_edit import TextEdit
|
|
|
|
from gui.elements.text_label import TextLabel
|
|
|
|
|
|
|
|
|
|
|
|
class SendPopup(BasePopup):
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
super().__init__()
|
|
|
|
self._tab_item_template = QObject('tab_Status_template')
|
2023-12-06 08:59:39 +00:00
|
|
|
self._search_field = TextEdit('search_TextEdit')
|
2023-12-05 13:23:02 +00:00
|
|
|
self._asset_list_item = QObject('o_TokenBalancePerChainDelegate_template')
|
|
|
|
self._amount_text_edit = TextEdit('amountInput_TextEdit')
|
|
|
|
self._paste_button = Button('paste_StatusButton')
|
|
|
|
self._ens_address_text_edit = TextEdit('ens_or_address_TextEdit')
|
|
|
|
self._my_accounts_tab = Button('accountSelectionTabBar_My_Accounts_StatusTabButton')
|
|
|
|
self._account_list_item = QObject('status_account_WalletAccountListItem_template')
|
|
|
|
self._arbitrum_network = QObject('arbitrum_StatusListItem')
|
|
|
|
self._mainnet_network = QObject('mainnet_StatusListItem')
|
|
|
|
self._fiat_fees_label = TextLabel('fiatFees_StatusBaseText')
|
|
|
|
self._send_button = Button('send_StatusFlatButton')
|
|
|
|
|
|
|
|
def _select_asset(self, asset: str):
|
|
|
|
item = wait_for_template(self._asset_list_item.real_name, asset, 'title')
|
|
|
|
driver.mouseClick(item)
|
|
|
|
|
|
|
|
def _open_tab(self, name: str):
|
|
|
|
assets_tab = wait_for_template(self._tab_item_template.real_name, name, 'text')
|
|
|
|
driver.mouseClick(assets_tab)
|
|
|
|
|
|
|
|
@allure.step('Send {2} {3} to {1}')
|
|
|
|
def send(self, address: str, amount: int, asset: str):
|
|
|
|
self._open_tab('Assets')
|
|
|
|
self._search_field.type_text(asset)
|
|
|
|
self._select_asset(asset)
|
|
|
|
self._amount_text_edit.text = str(amount)
|
|
|
|
self._ens_address_text_edit.type_text(address)
|
|
|
|
driver.waitFor(lambda: self._send_button.is_visible, timeout_msec=6000)
|
2023-12-11 07:20:57 +00:00
|
|
|
self.click_send()
|
|
|
|
|
|
|
|
@allure.step('Click send button')
|
|
|
|
def click_send(self):
|
2023-12-05 13:23:02 +00:00
|
|
|
self._send_button.click()
|
|
|
|
|
|
|
|
def is_arbitrum_network_identified(self) -> bool:
|
|
|
|
return self._arbitrum_network.is_visible
|
|
|
|
|
|
|
|
def is_mainnet_network_identified(self) -> bool:
|
|
|
|
return self._mainnet_network.is_visible
|
|
|
|
|
|
|
|
def get_fiat_fees(self) -> str:
|
|
|
|
return self._fiat_fees_label.text
|