e2e: tx users

This commit is contained in:
Churikova Tetiana 2022-03-07 22:17:39 +01:00
parent 891d1e6360
commit 55915a9176
No known key found for this signature in database
GPG Key ID: 0D4EA7B33B47E6D8
23 changed files with 103 additions and 459 deletions

View File

@ -10,7 +10,7 @@ project-board:
automated-tests:
repo-full-name: 'status-im/status-react'
job-full-name: 'end-to-end-tests/status-app-prs'
job-full-name: 'status-react/e2e/status-app-prs'
kickoff-column-name: 'E2E Tests'
github-team:

3
.gitignore vendored
View File

@ -168,4 +168,5 @@ project.clj
##appium
test/appium/report/
result.xml
result.xml
test/appium/tests/users.py

View File

@ -101,7 +101,7 @@ pipeline {
steps { script {
e2eApk = utils.getEnv(apke2e, 'SAUCE_URL')
build(
job: 'end-to-end-tests/status-app-nightly',
job: 'status-react/e2e/status-app-nightly',
parameters: [string(name: 'APK_NAME', value: e2eApk)],
wait: false
)

View File

@ -48,15 +48,21 @@ pipeline {
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
file(
credentialsId: "mobile-tests-eth-accounts",
variable: 'TEST_ETH_ACCOUNTS_FILE'
),
]) {
dir('test/appium/tests') {
/* Provide Eth test accounts secrets. */
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """
python3 -m pytest \
--numprocesses 15 \
--rerun_count=2 \
--testrail_report=True \
-m testrail_id \
-m \"not upgrade and not transaction\" \
-m \"not upgrade\" \
-k \"${params.KEYWORD_EXPRESSION}\" \
--apk=${params.APK_NAME}
"""

View File

@ -85,8 +85,14 @@ pipeline {
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
file(
credentialsId: "mobile-tests-eth-accounts",
variable: 'TEST_ETH_ACCOUNTS_FILE'
),
]) {
dir('test/appium/tests') {
/* Provide Eth test account secrets. */
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """
python3 -m pytest \
--numprocesses 15 \

View File

@ -62,8 +62,14 @@ pipeline {
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
file(
credentialsId: "mobile-tests-eth-accounts",
variable: 'TEST_ETH_ACCOUNTS_FILE'
),
]) {
dir('test/appium/tests') {
/* Provide Eth test accounts secrets. */
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
sh """
python3 -m pytest \
-m "upgrade" \

23
test/appium/README.md Normal file
View File

@ -0,0 +1,23 @@
# E2E tests requirements
### Environment variables
- WEB3_INFURA_PROJECT_ID
- ETHERSCAN_API_KEY
1) If running on SauceLab emulators:
- SAUCE_USERNAME
- SAUCE_ACCESS_KEY
2) If running with Testrail (`--testrail_report=True` param):
- TESTRAIL_PASS
- TESTRAIL_USER
## Other
Userdata is stored in `tests.users` module (`test/appium/tests/users.py`, which is not committed to repo).
So to launch e2e you need to copy `users.py` to `test/appium/tests/` to prevent `ImportError`
If you are external contributor, you can contact us at [error-reports@status.im](mailto:error-reports@status.im) to get `users.py`
More info on local setup for e2e can be found [here](https://notes.status.im/setup-e2e)

View File

@ -10,8 +10,8 @@ from os import environ
import tests
import support.api.web3_api as w3
class NetworkApi(object):
class NetworkApi(object):
def __init__(self):
self.network_url = 'http://api-ropsten.etherscan.io/api?'
@ -148,9 +148,9 @@ class NetworkApi(object):
pass
def faucet_backup(self, address):
self.log("Trying to get funds from %s" % self.faucet_backup_address)
address = "0x" + address
w3.donate_testnet_eth(address=address, amount=0.005, inscrease_default_gas_price=10)
self.log("Trying to get funds from %s" % self.faucet_backup_address)
address = "0x" + address
w3.donate_testnet_eth(address=address, amount=0.005, inscrease_default_gas_price=10)
def get_donate(self, address, external_faucet=False, wait_time=300):
initial_balance = self.get_balance(address)

View File

@ -102,7 +102,7 @@ class BaseTestReport:
@staticmethod
def get_jenkins_link_to_rerun_e2e(branch_name="develop", pr_id="", apk_name="", tr_case_ids=""):
return 'https://ci.status.im/job/end-to-end-tests/job/status-app-prs-rerun/parambuild/' \
return 'https://ci.status.im/job/status-react/job/e2e/job/status-app-prs-rerun/parambuild/' \
'?BRANCH_NAME=%s&APK_NAME=%s&PR_ID=%s&TR_CASE_IDS=%s' % (branch_name, apk_name, pr_id, tr_case_ids)
def get_sauce_final_screenshot_url(self, job_id):

View File

@ -10,7 +10,8 @@ class TestCreateAccount(SingleDeviceTestCase):
@marks.critical
def test_restore_account_migrate_multiaccount_to_keycard(self):
sign_in = SignInView(self.driver)
seed = basic_user['passphrase']
user = transaction_senders['ETH_ADI_STT_2']
seed = user['passphrase']
home = sign_in.recover_access(passphrase=seed)
profile = home.profile_button.click()
profile.privacy_and_security_button.click()
@ -29,7 +30,7 @@ class TestCreateAccount(SingleDeviceTestCase):
self.errors.append("Get a keycard banner is not shown on login screen for ordinary multiaccount")
sign_in.options_button.click()
sign_in.manage_keys_and_storage_button.click()
if not sign_in.element_by_text(basic_user['username']).is_element_displayed():
if not sign_in.element_by_text(user['username']).is_element_displayed():
self.driver.fail("Default username is not shown when migrating multiaccount to keycard!")
home.just_fyi("Checking validation of seed phrase during migration")
@ -78,15 +79,15 @@ class TestCreateAccount(SingleDeviceTestCase):
sign_in.just_fyi('Check that after migration wallet address matches expected')
address = wallet.get_wallet_address()
if address != '0x%s' % basic_user['address']:
if address != '0x%s' % user['address']:
self.errors.append('Restored address %s does not match expected' % address)
sign_in.just_fyi('Check that after migration username and public key match expected')
public_key, default_username = sign_in.get_public_key_and_username(return_username=True)
profile = sign_in.get_profile_view()
if public_key != basic_user['public_key']:
if public_key != user['public_key']:
self.errors.append('Public key %s does not match expected' % public_key)
if default_username != basic_user['username']:
if default_username != user['username']:
self.errors.append('Default username %s does not match expected' % default_username)
profile.logout()
@ -97,14 +98,14 @@ class TestCreateAccount(SingleDeviceTestCase):
self.errors.append("Get a keycard banner is shown on migrated keycard multiaccount")
keycard.one_button.wait_for_visibility_of_element(10)
keycard.enter_default_pin()
if not sign_in.home_button.is_element_displayed(10):
if not sign_in.home_button.is_element_displayed(30):
self.driver.fail('Keycard user is not logged in')
sign_in.just_fyi('Check that can add another wallet account and send transaction')
home.wallet_button.click()
wallet.add_account(account_name="another_keycard_account", keycard=True)
transaction_amount_added = wallet.get_unique_amount()
wallet.send_transaction(amount=transaction_amount_added, recipient=transaction_senders['B']['address'],
wallet.send_transaction(amount=transaction_amount_added, recipient=transaction_senders['ETH_8']['address'],
keycard=True, sign_transaction=True)
self.driver.reset()
home = sign_in.recover_access(passphrase=seed)
@ -303,12 +304,14 @@ class TestCreateAccount(SingleDeviceTestCase):
@marks.testrail_id(6311)
@marks.medium
@marks.transaction
def test_same_seed_added_inside_multiaccount_and_keycard(self):
sign_in = SignInView(self.driver)
recipient = "0x" + transaction_senders['G']['address']
recipient = "0x" + transaction_senders['ETH_7']['address']
user = transaction_senders['ETH_ADI_STT_3']
sign_in.just_fyi('Restore keycard multiaccount and logout')
sign_in.recover_access(passphrase=basic_user['passphrase'], keycard=True)
sign_in.recover_access(passphrase=user['passphrase'], keycard=True)
profile_view = sign_in.profile_button.click()
profile_view.logout()
@ -332,7 +335,7 @@ class TestCreateAccount(SingleDeviceTestCase):
wallet.enter_your_password_input.send_keys(common_password)
account_name = 'subacc'
wallet.account_name_input.send_keys(account_name)
wallet.enter_seed_phrase_input.set_value(basic_user['passphrase'])
wallet.enter_seed_phrase_input.set_value(user['passphrase'])
wallet.add_account_generate_account_button.click()
wallet.get_account_by_name(account_name).click()
@ -352,9 +355,9 @@ class TestCreateAccount(SingleDeviceTestCase):
wallet.send_transaction(amount=transaction_amount_keycard, recipient=recipient, keycard=True,
sign_transaction=True)
sign_in.just_fyi('Check both transactions from keycard multiaccount and from added account in network')
for amount in [transaction_amount_keycard, transaction_amount_added]:
self.network_api.find_transaction_by_unique_amount(basic_user['address'], amount)
sign_in.just_fyi("Checking '%s' tx" % amount)
self.network_api.find_transaction_by_unique_amount(user['address'], amount)
self.errors.verify_no_errors()

View File

@ -80,7 +80,7 @@ class TestProfileSingleDevice(SingleDeviceTestCase):
from views.send_transaction_view import SendTransactionView
send_tx = SendTransactionView(self.driver)
send_tx.amount_edit_box.set_value('0')
send_tx.set_recipient_address(ens_user['address'])
send_tx.set_recipient_address(transaction_senders['ETH_7']['address'])
send_tx.next_button.click()
send_tx.set_up_wallet_when_sending_tx()
send_tx.advanced_button.click()

View File

@ -11,7 +11,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase):
@marks.critical
@marks.transaction
def test_send_eth_in_1_1_chat_transaction_push(self):
sender = transaction_senders['B']
sender = transaction_senders['ETH_7']
self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
home_1 = device_1.recover_access(passphrase=sender['passphrase'], enable_notifications=True)
@ -99,7 +99,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase):
@marks.critical
@marks.transaction
def test_request_and_receive_stt_in_1_1_chat_offline(self):
sender = transaction_senders['L']
sender = transaction_senders['ETH_STT_3']
self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
asset_name = 'STT'
@ -171,7 +171,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase):
@marks.critical
@marks.transaction
def test_decline_transactions_in_1_1_chat_push_notification_changing_state(self):
sender = transaction_senders['B']
sender = transaction_senders['ETH_8']
self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
home_1 = device_1.recover_access(passphrase=sender['passphrase'], enable_notifications=True)
@ -222,7 +222,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase):
@marks.medium
@marks.transaction
def test_network_mismatch_for_send_request_in_1_1_chat(self):
sender = transaction_senders['D']
sender = transaction_senders['ETH_1']
self.create_drivers(2)
sign_in_1, sign_in_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
sign_in_1.recover_access(passphrase=sender['passphrase'])
@ -273,7 +273,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase):
def test_send_eth_to_ens_in_chat(self):
self.create_drivers(2)
sign_in_1, sign_in_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
sender, reciever = transaction_senders['E'], ens_user
sender, reciever = transaction_senders['ETH_3'], ens_user
home_1, home_2 = sign_in_1.recover_access(sender['passphrase']), sign_in_2.recover_access(
reciever['passphrase'])

View File

@ -253,10 +253,10 @@ class TestCommandsSingleDevices(SingleDeviceTestCase):
def test_cant_add_more_twenty_participants_to_group_chat(self):
sign_in = SignInView(self.driver)
home = sign_in.create_user()
users = [transaction_senders['A'], transaction_senders['B'], transaction_senders['C'], transaction_senders['D'],
transaction_senders['E'], transaction_senders['F'], transaction_senders['G'], transaction_senders['H'],
transaction_senders['I'], transaction_senders['K'], transaction_senders['L'], transaction_senders['M'],
transaction_senders['N'], transaction_senders['O'], transaction_senders['P'], transaction_senders['Q'],
users = [transaction_senders['A'], transaction_senders['ETH_8'], transaction_senders['C'], transaction_senders['ETH_1'],
transaction_senders['ETH_2'], transaction_senders['F'], transaction_senders['G'], transaction_senders['H'],
transaction_senders['I'], transaction_senders['ETH_STT_4'], transaction_senders['ETH_STT_3'], transaction_senders['M'],
transaction_senders['N'], transaction_senders['ETH_2'], transaction_senders['ETH_STT_ADI_1'], transaction_senders['Q'],
transaction_senders['R'], transaction_senders['S'], transaction_senders['T'], transaction_senders['U'],
]
usernames = []

View File

@ -12,7 +12,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase):
@marks.critical
@marks.transaction
def test_keycard_send_eth_in_1_1_chat(self):
sender = transaction_senders['E']
sender = transaction_senders['ETH_2']
self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
home_1 = device_1.recover_access(passphrase=sender['passphrase'], keycard=True)
@ -82,7 +82,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase):
@marks.medium
@marks.transaction
def test_keycard_request_and_receive_stt_in_1_1_chat_offline_opened_from_push(self):
sender = transaction_senders['D']
sender = transaction_senders['ETH_STT_1']
self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
@ -166,7 +166,7 @@ class TestCommandsSingleDevices(SingleDeviceTestCase):
@marks.transaction
def test_keycard_send_eth_to_ens(self):
sign_in = SignInView(self.driver)
sender = transaction_senders['E']
sender = transaction_senders['ETH_4']
home = sign_in.recover_access(sender['passphrase'], keycard=True)
wallet = home.wallet_button.click()
wallet.home_button.click()

View File

@ -1002,7 +1002,7 @@ class TestMessagesOneToOneChatSingle(SingleDeviceTestCase):
@marks.testrail_id(6322)
@marks.medium
def test_can_scan_different_links_with_universal_qr_scanner(self):
user = transaction_senders['L']
user = transaction_senders['ETH_STT_3']
home = SignInView(self.driver).recover_access(user['passphrase'])
wallet = home.wallet_button.click()
wallet.home_button.click()

View File

@ -1,7 +1,7 @@
from tests import marks, pytest_config_global, test_dapp_name, staging_fleet, mailserver_hk, mailserver_ams, \
mailserver_gc
from tests.base_test_case import SingleDeviceTestCase, MultipleDeviceTestCase
from tests.users import upgrade_users, transaction_recipients, basic_user, ens_user
from tests.users import upgrade_users, transaction_recipients, basic_user, ens_user, transaction_senders
from views.sign_in_view import SignInView
import views.upgrade_dbs.chats.data as chat_data
import views.upgrade_dbs.dapps.data as dapp_data
@ -209,7 +209,7 @@ class TestUpgradeApplication(SingleDeviceTestCase):
@marks.testrail_id(695810)
def test_keycard_upgrade(self):
user = basic_user
user = transaction_senders['ETH_STT_ADI_1']
sign_in = SignInView(self.driver)
home = sign_in.recover_access(passphrase=user['passphrase'], keycard=True)
wallet = home.wallet_button.click()
@ -226,7 +226,7 @@ class TestUpgradeApplication(SingleDeviceTestCase):
home.just_fyi('Check that can sign transaction in STT from wallet')
transaction_amount = wallet.get_unique_amount()
wallet.send_transaction(amount=transaction_amount, asset_name='STT', sign_transaction=True, keycard=True,
recipient=transaction_recipients['I']['address'])
recipient=transaction_senders['ETH_STT_1']['address'])
self.network_api.find_transaction_by_unique_amount(user['address'], transaction_amount, token=True)
wallet.just_fyi('Check that transaction is appeared in transaction history')

View File

@ -10,7 +10,7 @@ class TestTransactionDApp(SingleDeviceTestCase):
@marks.critical
@marks.transaction
def test_request_stt_from_dapp(self):
sender = transaction_senders['K']
sender = transaction_senders['ETH_STT_4']
home = SignInView(self.driver).recover_access(sender['passphrase'], unique_password)
wallet = home.wallet_button.click()
wallet.scan_tokens()
@ -41,7 +41,7 @@ class TestTransactionDApp(SingleDeviceTestCase):
@marks.transaction
def test_sign_message_and_2tx_in_batch_and_transactions_filters_from_daap(self):
password = 'password_for_daap'
home = SignInView(self.driver).recover_access(passphrase=transaction_senders['W']['passphrase'],
home = SignInView(self.driver).recover_access(passphrase=transaction_senders['ETH_9']['passphrase'],
password=password)
wallet = home.wallet_button.click()
@ -90,7 +90,7 @@ class TestTransactionDApp(SingleDeviceTestCase):
@marks.medium
@marks.transaction
def test_sign_typed_message_deploy_simple_contract_request_pub_key_from_dapp(self):
user = transaction_senders['W']
user = transaction_senders['ETH_5']
home = SignInView(self.driver).recover_access(passphrase=user['passphrase'])
home.just_fyi("Checking requesting public key from dapp")
@ -113,13 +113,13 @@ class TestTransactionDApp(SingleDeviceTestCase):
send_transaction = status_test_dapp.sign_typed_message_button.click()
send_transaction.enter_password_input.send_keys(common_password)
send_transaction.sign_button.click_until_absense_of_element(send_transaction.sign_button)
if not status_test_dapp.element_by_text_part('0xde3048417e5881acc9ca8466ab0b3e2f9f96').is_element_displayed(30):
if not status_test_dapp.element_by_text_part('0x1673d96e836').is_element_displayed(30):
self.errors.append("Hash of signed typed message is not shown!")
home.just_fyi("Checking deploy simple contract")
send_transaction = status_test_dapp.deploy_contract_button.click()
send_transaction.sign_transaction()
if not status_test_dapp.element_by_text('Contract deployed at: ').is_element_displayed(180):
if not status_test_dapp.element_by_text('Contract deployed at: ').is_element_displayed(240):
self.errors.append('Contract was not created')
for text in ['Call contract get function',
'Call contract set function', 'Call function 2 times in a row']:

View File

@ -10,8 +10,8 @@ from views.sign_in_view import SignInView
class TestKeycardTxOneDeviceMerged(MultipleSharedDeviceTestCase):
@classmethod
def setup_class(cls):
cls.user = transaction_senders['P']
cls.address = '0x%s' % basic_user['address']
cls.user = transaction_senders['ETH_STT_ADI_1']
cls.address = '0x%s' % transaction_senders['ETH_7']['address']
cls.drivers, cls.loop = create_shared_drivers(1)
cls.sign_in = SignInView(cls.drivers[0])
@ -251,7 +251,7 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
@marks.medium
@marks.transaction
def test_keycard_sign_typed_message_deploy_simple_contract(self):
sender = transaction_senders['W']
sender = transaction_senders['ETH_6']
home = SignInView(self.driver).recover_access(sender['passphrase'], keycard=True)
wallet = home.wallet_button.click()
status_test_dapp = home.open_status_test_dapp()
@ -263,7 +263,7 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
send_transaction.sign_with_keycard_button.click()
keycard_view = send_transaction.sign_with_keycard_button.click()
keycard_view.enter_default_pin()
if not keycard_view.element_by_text_part('0xde3048417').is_element_displayed():
if not keycard_view.element_by_text_part('0x6df0ce').is_element_displayed():
self.errors.append('Typed message was not signed')
wallet.just_fyi("Checking deploy simple contract")

View File

@ -14,7 +14,7 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
@classmethod
def setup_class(cls):
cls.user = transaction_senders['S']
cls.recipient_address = '0x%s' % basic_user['address']
cls.recipient_address = '0x%s' % transaction_senders['ETH_7']['address']
cls.drivers, cls.loop = create_shared_drivers(1)
[cls.amount_adi, cls.amount_eth, cls.amount_stt] = ['0.000%s' % str(random.randint(100, 999)) + '1' for _ in range(3)]
cls.sign_in = SignInView(cls.drivers[0])
@ -540,7 +540,7 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
@marks.transaction
@marks.medium
def test_custom_gas_settings(self):
sender = wallet_users['B']
sender = transaction_senders['ETH_7']
sign_in = SignInView(self.driver)
sign_in.recover_access(sender['passphrase'])
wallet = sign_in.wallet_button.click()
@ -653,8 +653,8 @@ class TestTransactionWalletMultipleDevice(MultipleDeviceTestCase):
@marks.medium
@marks.transaction
def test_can_send_all_tokens_via_max_option(self):
sender = transaction_senders['V']
receiver = transaction_recipients['K']
sender = transaction_senders['ETH_STT_2']
receiver = transaction_senders['ETH_1']
self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
home_1, home_2 = device_1.recover_access(sender['passphrase']), device_2.recover_access(receiver['passphrase'])

View File

@ -1,404 +0,0 @@
basic_user = dict()
basic_user['passphrase'] = "tree weekend ceiling awkward universe pyramid glimpse raven pair lounge grant grief"
basic_user['username'] = "Royal Defensive Solenodon"
basic_user['public_key'] = "0x042e0309b5f6bedee93a1b984af08f89a101aff62d01ddd0a1c8f4a1d4db3b91e648c914019d09de9f07dd" \
"baacb77fdf07e89b5e0d60e9a8df05b75f213661fcad"
basic_user['address'] = "f184747445c3B85CEb147DfB136067CB93d95F1D"
basic_user['special_chars_password'] = " !\"#$Á%Ö&'()*+Í, -./:ä;<=>?@[\\]^_`{|}~ "
ens_user = dict()
ens_user['passphrase'] = "fashion quality know robust copy neck stand embody entry task orient suggest"
ens_user['username'] = "Legal Vibrant Indianabat"
ens_user['public_key'] = "0x04359bb3e73cba0b815d71e562670ad00bb5d2db0d16cd1c4c92c668b61fde2274d6e487fcdffe66f913b3fea2a" \
"3058f53ce7946c2b501aa61a9ca8a883df72dc9"
ens_user['ens'] = 'statuse2e.eth'
ens_user['ens_upgrade'] = 'statuse2e'
ens_user['ens_another'] = 'status-another-ens-e2e.eth'
ens_user['address'] = '0x1eE3058Bd300246B4B20E687Efc9Eba81FF7814b'
user_mainnet = dict()
user_mainnet['passphrase'] = "gallery zoo inspire work used slush deliver surface adjust struggle lazy virtual"
user_mainnet['mainnet'] = {
'ETH': 0.000372125264,
'SNT': 60,
'DGD': 0.00001
}
user_mainnet['xdai'] = '0.0002 xDAI'
user_mainnet['bsc'] = '0.00001 BNB'
ens_user_ropsten = dict()
ens_user_ropsten['ens'] = 'nastya'
ens_user_ropsten['username'] = 'Thoughtful Stupendous Graywolf'
ens_user_ropsten['address'] = '0x58d8c3D70ce4FA4b9fb10a665C8712238746F2ff'
ens_user_ropsten['public_key'] = '0x045efbcc044e5ae21ac3cf111ea6df6186e0cc50a2cd747f52a56d19ce516e683c66cb47f4b0a211108' \
'59aea9592dfba1e0bf4af11ff3eab995f844b3673643bf1'
ens_user_message_sender = dict()
ens_user_message_sender['ens'] = 'ensmessenger'
ens_user_message_sender['username'] = 'Glaring Plush Arkshell'
ens_user_message_sender['passphrase'] = 'tribe life dune clog throw situate robust gospel panic blanket timber eagle'
ens_user_message_sender['address'] = '0x75fF623fe856012b0667876582038A63F4004184'
ens_user_message_sender[
'public_key'] = '0x0471e18b2a9867161383919d85741389a829299ae0833c23e003818c1222942f5dddcbb792daee7c88' \
'e8a30ee44c00d03240a971d90d76ed8200b75572241da9ef'
dummy_user = dict()
dummy_user['username'] = "Vain Wordy Hagfish"
dummy_user['passphrase'] = "near broom kiss excess sad switch slab melt trade crash spare dinner"
dummy_user['public_key'] = "0x04596348471aa19d31c8503fa00f95abd0fc3ca908668817284b52b7ced95f966cc13457254aa908aa8e64" \
"a2748453accf9d358b8d7a1448597201c664dc280e37"
dummy_user['address'] = "0xdF6Bc71206d7ea89ec905a7f5ce8Ff34C85eB04e"
upgrade_users = dict()
upgrade_users['chats'] = dict()
upgrade_users['chats']['passphrase'] = 'identify level pink lift choose winner hour onion style festival rather salmon'
upgrade_users['chats']['public_key'] = '0x045d8a344ffee0c5ce187d0248a9b8ffc4a12493c9d9e8b9a395f38' \
'825ebe55ac2350d9e7090e39e6c8d7020aaa799aefe563f1db5b6151370eae246558772ad9e'
upgrade_users['chats']['username'] = 'Rapid Gleeful Cheetah'
wallet_users = dict()
wallet_users['A'] = dict()
wallet_users['A']['passphrase'] = "heavy earn fence pool drift balcony act coast stairs basic juice hip"
wallet_users['A']['username'] = "Equatorial Navyblue Tegus"
wallet_users['A']['address'] = "c8f8b3376814d0dfe61e4b9eaf7970697c24f6b2"
wallet_users['A']['public_key'] = "0x04fa759cc29261fd7779cf8b3566de61e3fb22aca4699a0a77a930a4f5af83b6f922a9cd67" \
"9a957fdab86e277e4bb7ec90f7998d21fc16690397d3783b8d8711e1"
wallet_users['B'] = dict()
wallet_users['B']['passphrase'] = "unknown endless ill average shell foil kitchen runway left race neither exhaust"
wallet_users['B']['username'] = "Bulky Able Firecrest"
wallet_users['B']['address'] = "0F3EFF5CacEe63045be97281316457fb78dd659E"
wallet_users['B']['public_key'] = "0x04f3c372522a087bd6895a67b669601e6b6825b2ee7add5942d10efd1c3c836a1d9a677d94d33" \
"895833b6ebe523f0fe5965f73558da58520a3f9c7a00e73f75d61"
wallet_users['C'] = dict()
wallet_users['C']['passphrase'] = "purchase ensure mistake crystal person similar shaft family shield clog risk market"
wallet_users['C']['username'] = "Mellow Virtual Nubiangoat"
wallet_users['C']['address'] = "8DcE052cCda2F6F6B555759cEe6957e04A6dDf5B"
wallet_users['C']['public_key'] = "0x040e562b69362e7e57492bca50b6095acfa636c48b85eef2bc0e4180b6e99fc5e73f45c3" \
"40837da01728d4585695fda7f1de2ed193a1dd4080291d90812e1cae77"
wallet_users['C']['private_key'] = '7800C28310576645BBF6BF6355F7AA4CEC659B1713AF7E7713E1A33097A3DDF6'
# Do not use this user for send/receive transactions
wallet_users['D'] = dict()
wallet_users['D']['passphrase'] = "hen mango since lottery laundry flag report whisper cycle rate festival carry"
wallet_users['D']['username'] = "Competent Rectangular Albino"
wallet_users['D']['address'] = "80B663E82657Caf5657ce79b11aEaEDa02C6CD92"
wallet_users['D']['public_key'] = "0x04f79d02bab51efe903645e74b23df471b041ce3c964a5cf376c7ae572039569af7cf934d094e" \
"86b2177db49b6943d0c8720550e39868ef5c7108ebffb5522b140"
wallet_users['E'] = dict()
wallet_users['E']['passphrase'] = "record sphere illegal section blame swing wreck estate celery same excite summer"
wallet_users['E']['username'] = "Wry Shiny Damselfly"
wallet_users['E']['address'] = "0x3e2e4077753d3c229a9ae332b9ca46958945e2f6"
wallet_users['E']['public_key'] = "0x044cf0620ec3ea0aba9fb0e19cb42a6fbd6b4e74f234f0da82580564817b238cc6434745d31" \
"fa1649927ba48adfa7c95991fd51940bc00a71e80b095db5b107f1b"
wallet_users['E']['collectibles'] = {
'Coins & Steel Exclusive Item Skin V2': '1',
'Coins & Steel Founder Aura': '1',
'CryptoKittiesRinkeby': '2',
'KudosToken V7': '1',
}
wallet_users['F'] = dict()
wallet_users['F']['passphrase'] = "jazz human replace save wreck merry evolve oval black expose clutch sword"
wallet_users['F']['username'] = "Dual Sour Galapagostortoise"
wallet_users['F']['address'] = "0x8A4339aE98df2B2e51E37631C8B4F853048D4556"
wallet_users['F']['public_key'] = "0x049d0b39d95b20114fac79c3173a36c60a126c060dce52bba4128ab9a3885f0f058f2af9c92099" \
"315eb564412b718d8bfe697a4425e4bc603063abd4f5c45f8e57"
# Users used in chats. E.g. as members of a group chat
chat_users = dict()
chat_users['A'] = dict()
chat_users['A']['passphrase'] = "canoe edit leg exit game glue blame electric bar now box point"
chat_users['A']['username'] = "Petty Mediumaquamarine Avians"
chat_users['A']['address'] = "0x5626db866676d70f5fa58366d8df3b1053b8d9cc"
chat_users['A']['public_key'] = "0x0445c001a3b365b55304e2cd23b8418a8381786d96be01a69cf7569786086a2a4c7b2a602ea" \
"355c85225ae1e7b0444a666fefe9902b465414e6c0ef0b5997b073a"
chat_users['B'] = dict()
chat_users['B']['passphrase'] = "found ridge build seven whisper enact weekend nation during law external december"
chat_users['B']['username'] = "Repentant Velvety Adeliepenguin"
chat_users['B']['address'] = "0xB094A8c0A3F71e3246C3eD89a51f81008c800088"
chat_users['B']['public_key'] = "0x0439a66cd420082741147ef8b1ab9c8d8558d21f2cc3cb4099fd0aa5507c5d8bdb94ded8beccfa" \
"2812f6b641de9f9c31fa62379af6d148fdec45335196b2e6307b"
transaction_senders = dict()
transaction_senders['A'] = dict()
transaction_senders['A']['passphrase'] = \
'night fortune spider version version armed amused winner matter tonight cave flag'
transaction_senders['A']['username'] = 'Darkorchid Clueless Ewe'
transaction_senders['A']['address'] = 'efca4fd47b98b9f01c4eef4827e576a01459728a'
transaction_senders['A']['public_key'] = "0x046c0ec05e1f13481af0e3d9cc7869e6f1b64306adcfb325827518c66f4ea3dafbd18de3" \
"0269f95aadcf3aae40a27075505b625c1cd08b41a335b318bf3fe7ca21"
transaction_senders['B'] = dict()
transaction_senders['B']['passphrase'] = \
"quality walk globe dune rally distance fragile year turn horror sample lobster"
transaction_senders['B']['username'] = "New Awesome Tenrec"
transaction_senders['B']['address'] = "a456a6bde144695879a754b19dd13e9f75ea43f2"
transaction_senders['B']['public_key'] = "0x04b9687c94bc9d573d7455d9fed1039253b1fa063afda5ca3280de605208c760202479645" \
"ff84755d5bf20cc029daa0881c94cab9a65bdfe9568849efe4ac707e3"
transaction_senders['C'] = dict()
transaction_senders['C']['passphrase'] = "potato labor object reward minor casino dismiss size flame task winter report"
transaction_senders['C']['username'] = "Breakable Productive Prayingmantis"
transaction_senders['C']['address'] = "549b9bcd069d720390a6819ff8b3d9dd252fa3be"
transaction_senders['C']['public_key'] = "0x048536ec9fcc25e879920fb548a484de5be64b4a93a0b16c6d78deb1d140ac636ed3ca1" \
"d86e17a75f83422ab651f0743c162ffb006707721719e02d2cbd5f54d51"
transaction_senders['D'] = dict()
transaction_senders['D']['passphrase'] = "weekend unable empty crime blind rhythm crunch answer travel coast silly like"
transaction_senders['D']['username'] = "Indelible Dapper Hoatzin"
transaction_senders['D']['address'] = "616874dc6cc2810cdc930dea26496fcf217d58ca"
transaction_senders['D']['public_key'] = "0x044764a9ba22bb4ae355619ca3824ee66b9f704c7fc08280e6305112bf80fd96b2fcd73" \
"d0dd570471986c229c077c8053ee47784416eb6604d52e41f8f9d566ef8"
transaction_senders['E'] = dict()
transaction_senders['E'][
'passphrase'] = "sea ill guard bounce gesture tomato walnut fitness plastic affair oven transfer"
transaction_senders['E']['username'] = "Fatal Metallic Imperialeagle"
transaction_senders['E']['address'] = "f7cb60839c0de25e37be0391c33bb34a8f0f8414"
transaction_senders['E']['public_key'] = "0x04db6128352e5c2d05ee5a6556848453cf3a7af34e94b3e20a302de684e9906461e38adf" \
"51c39e1abf20f5ae7f418e0383633e08d7acee31d4aaee0473af2e6ed8"
transaction_senders['F'] = dict()
transaction_senders['F']['passphrase'] = "style case lazy pole general section dawn royal slice evoke crowd boat"
transaction_senders['F']['username'] = "Lightsalmon Wry Umbrette"
transaction_senders['F']['address'] = "a94a2a7584620677d290549a96046e59a18f09ef"
transaction_senders['F']['public_key'] = "0x044f13fa489032ad7fefd82a5d9dedc40ab3787096ef2870848a7537b26c5262ea7a29b" \
"53026d1cbf992b99bce5d0609a933a06f89fb6206606b34a43c1f160e35"
transaction_senders['G'] = dict()
transaction_senders['G']['passphrase'] = "load other time gadget fury sudden gossip hurry entry curtain jaguar inflict"
transaction_senders['G']['username'] = "Acidic Focused Xantus"
transaction_senders['G']['address'] = "876c331d60aedd175ca78cb6a50eaeb9681a1868"
transaction_senders['G']['public_key'] = "0x04885bb487d9e8c3b51f963e564669118f7a9bead224df5334dd3242d463dc0420b2c1e" \
"2dfced6dc9dca1a36771584e2edb83da39edaaae969616254f26da5b07a"
transaction_senders['H'] = dict()
transaction_senders['H']['passphrase'] = "age three camp tip jump radio copper merry mention top panther motor"
transaction_senders['H']['username'] = "Fine Huge Beagle"
transaction_senders['H']['address'] = "762d87f77c88048281ddad78501fcfe0700f08ce"
transaction_senders['H']['public_key'] = "0x042b9be3f4887d0504ebc31f42e809919641e95ed98ba9b643961019ad6af7bc258064d" \
"ca2ca860f182e4f528a9be3d969e4536f04f3e4e1b9203e16b57508ec1b"
transaction_senders['I'] = dict()
transaction_senders['I']['passphrase'] = "six runway asthma blur secret rebuild parent logic horror decline rib buyer"
transaction_senders['I']['username'] = "Finished Infatuated Whiteeye"
transaction_senders['I']['address'] = "0887afe0ee3e1b195f596350bb04bba034514af9"
transaction_senders['I']['public_key'] = "0x04e61e616f881383e807cd1fb714fa2e06b5ad1cb6cd7b97a9265da2ad9a133ee750954a" \
"6c4da3635f2e406b310f6e294ca94ea3a686287a1276e4e86612886f8e"
transaction_senders['K'] = dict()
transaction_senders['K']['passphrase'] = "fly west avoid depend tape direct foster off cry crucial blame elegant"
transaction_senders['K']['username'] = "Decimal Healthy Harpyeagle"
transaction_senders['K']['address'] = "6a4dd6e2dcef1139cd04e6a24c19ded819340f85"
transaction_senders['K']['public_key'] = "0x044ab7a9d8f6f146a52534327bd301e85afe02b61108a03cd5afdd1c555f7268e46cb8ac" \
"37636f3590f9fed80a1124d78be041d010dba61d09f6278dee272dc661"
transaction_senders['L'] = dict()
transaction_senders['L']['passphrase'] = "road rabbit tuna bacon man raccoon equal note cream rescue core chunk"
transaction_senders['L']['username'] = "Funny Lavish Goldfinch"
transaction_senders['L']['address'] = "002881321fd06d77ba2deed035140631f49506be"
transaction_senders['L']['public_key'] = "0x04dfe571200b1cf05b1f743f5730a833da60b46de9437d29c0573c4970ba8e8e5980f76b" \
"80aa71a7e66b54235e869ade8f91dfde925d06ef3b2397fa007540dd34"
transaction_senders['M'] = dict()
transaction_senders['M']['passphrase'] = "thank fruit brisk pond opera census grid husband claw sight chunk arena"
transaction_senders['M']['username'] = "Wellgroomed Impartial Cornsnake"
transaction_senders['M']['address'] = 'bd4e3eede0f942b843a031007190c08cab373248'
transaction_senders['M']['public_key'] = "0x04d52c290fbd4f32bba82e5efa673d8f6aaf698f99ed16266662acd0cd583ee534703c547" \
"a06e24b4a2244c6788e2e92f22aa95f0ad999d07e6b993c9274132e13"
transaction_senders['N'] = dict()
transaction_senders['N']['passphrase'] = "label ill slender audit atom love vote snap edit program climb beyond"
transaction_senders['N']['username'] = "Immaculate Aqua Banteng"
transaction_senders['N']['address'] = 'd117188dbf1c160074cc4850a1d140286fdfc831'
transaction_senders['N']['public_key'] = "0x04331e35cdb205e201502719edb97c307f5f997dd58aa68d9f6378188f4ed8ccf0b3908e" \
"f0151f60aa639c3652937e9df30f1c0c1b8b43f922167c5c0447dda6b5"
transaction_senders['O'] = dict()
transaction_senders['O']['passphrase'] = "you salmon ticket antique spray panther flee neck scale mad trial exile"
transaction_senders['O']['username'] = "Wavy Yellow Rainbowfish"
transaction_senders['O']['address'] = '45798efe501340efbe265bce950f9ddcad8d7ce5'
transaction_senders['O']['public_key'] = "0x045925e701303feb8c1c98be2c9825e2c1c7005a0da7ab509d2d989e1d837c064fc8e06be" \
"51b417113f55cfe147cf7413c4016df748c29a6fd2efe20b2d8f59a05"
transaction_senders['P'] = dict()
transaction_senders['P']['passphrase'] = "warm beach mind real stay oil evil giggle core tilt paddle invest"
transaction_senders['P']['username'] = "Grave Able Arcticfox"
transaction_senders['P']['address'] = "9164f86170290ba3080e37d19d1953d3c5945913"
transaction_senders['P']['public_key'] = "0x04a7d3e9f637325f6195607ec5b60d1198487da9f172cc717729fa475f6ea682a93dc56" \
"f00bbb3652e014d9569da5bf3de0e1ba98884fcb64d3ca5a724eb24cfbc"
transaction_senders['Q'] = dict()
transaction_senders['Q']['passphrase'] = "junior forum symptom twin route scare source cycle extra engage worth prison"
transaction_senders['Q']['username'] = "Jealous Third Howlermonkey"
transaction_senders['Q']['address'] = "e9fd13b1bcfff497f21b28e141fa2e5049ebcee4"
transaction_senders['Q']['public_key'] = "0x044cee9f6c12a46da7142d5fa3cc29e34f1a82d22435cebcd73d41981a73577cd31adc38b" \
"b6b747dfa75857d452b94630b4672b80e6fc8d6974421b95fcf9d6513"
transaction_senders['R'] = dict()
transaction_senders['R']['passphrase'] = "ahead warrior poet radio image topic wasp clever banner angry age quality"
transaction_senders['R']['username'] = "Icky Tan Flickertailsquirrel"
transaction_senders['R']['address'] = "d54bf6c67e349bf889fd5d411a8c410b3a4cc099"
transaction_senders['R']['public_key'] = "0x04ec7a5b6cd54a2d7aa7f156013870e8c7559a14239752dfbe879167b3deb55fc713da44d" \
"096fd2e02aac143cb8999139ebd4a07b7e7c1fd72cc192a2a2f576682"
transaction_senders['S'] = dict()
transaction_senders['S']['passphrase'] = \
"tree capable picnic swap venture correct open enforce assault news inform pear"
transaction_senders['S']['username'] = "Cyan Intent Meadowlark"
transaction_senders['S']['address'] = "061fae3dd75beab5855f584837ca0c0a8e84f5c1"
transaction_senders['S']['public_key'] = "0x04579ab8085e685a6ab1dee8435b05bcb04c8332d22f96ecc7300da95e7565c8e4a950a6f" \
"b1809db7590ad87d28c7aec58632e8870cb642df839252e356010a9eb"
transaction_senders['T'] = dict()
transaction_senders['T']['passphrase'] = \
"describe adult cat kidney disagree stick timber unaware yellow jungle leave warrior"
transaction_senders['T']['username'] = "Faithful Specific Brownbutterfly"
transaction_senders['T']['address'] = "7e33ab11ae8ca21e8d3c15ceb74b6cc429834b5b"
transaction_senders['T']['public_key'] = "0x04cd6e1b7c76bd7abe54c8cd30fb1be6a08233d9c77b298700c3983d812c98698963c9db" \
"4b0c4648de69237e9e140397258f3e3bdd526a11a37c64c477be4953fa"
transaction_senders['U'] = dict()
transaction_senders['U']['passphrase'] = "club script position scare face medal already quality company flat item pill"
transaction_senders['U']['username'] = "Qualified Gifted Prayingmantis"
transaction_senders['U']['address'] = "b92496fffd668c2de08694623303456aa98cdf33"
transaction_senders['U']['public_key'] = "0x048f6828bad09baabbead08de7fc9672d6d15d6433e7941d99322bf0f61f3b5891a2bf740" \
"2027fd46896b869d46ae85c7096d4a47d7184682fa14bee7bb772f29a"
transaction_senders['V'] = dict()
transaction_senders['V']['passphrase'] = "true bus equip ensure speed blame universe renew gasp clip glide unaware"
transaction_senders['V']['username'] = "Likely Imaginary Hound"
transaction_senders['V']['address'] = "785acde6058a670e674aa0f66ccbabe98bbce7b1"
transaction_senders['V']['public_key'] = "0x04ebd187fba2169f7544fc5c1cee4f486c2d498d94f42ed4b570420b6e926da163bc514b" \
"7f3b234bcad3062a48cacf51411d2f7e4dfd079d8eabdfd12f0ee774f6"
transaction_senders['W'] = dict()
transaction_senders['W']['passphrase'] = \
"setup portion luxury fatigue unhappy position pioneer sell angry trust hat magic"
transaction_senders['W']['username'] = "Stable Blueviolet Stonefly"
transaction_senders['W']['address'] = "d5de9a58a3eab0643ecbd01729312215ef647a4d"
transaction_senders['W']['public_key'] = "0x04e801e4cf211a7846fdd96c6591cf75f5c37cb8df6b1bd5c9e4471b6b3f7f2936d29dc93" \
"4820ea0fabd460b90aef3b66c7b1552baf60146ba8fc354c2fa22b3cf"
transaction_senders['X'] = dict()
transaction_senders['X']['passphrase'] = "denial lend kit learn jacket mail ceiling crack affair stool spike sound"
transaction_senders['X']['username'] = "Polite Experienced Hackee"
transaction_senders['X']['address'] = "0xc9cf2ff3ca98a91f2e3dfc35a13cf8425ecaf082"
transaction_senders['X']['public_key'] = "0x04907b745916c763613654a9a679c6b04da97c142c2ad1f08ebe9412e9745fd9721d5237b" \
"9374a2b3217da001c50481e83467cb98b1a9bd1ed50501638db1f08bd"
transaction_senders['Y'] = dict()
transaction_senders['Y']['passphrase'] = "slight thunder cup divorce hawk paper blush memory shaft extend laundry bone"
transaction_senders['Y']['username'] = "Navajowhite Goldenrod Rasbora"
transaction_senders['Y']['address'] = "0x2a5ed44a7092404ae08369ffde6e54ce47e3761c"
transaction_senders['Y']['public_key'] = "0x04245454f9fe931133388a228bd9ed98e36ad1969f76a027bf92d3a0f26a44ee168a2c790" \
"35d4d1c49b0b932b2f093c3636a11bb8d893f4d719e4d61d9bd52f278"
transaction_senders['Z'] = dict()
transaction_senders['Z']['passphrase'] = "congress club image core lens hope clever transfer tiny true alien favorite"
transaction_senders['Z']['username'] = "Ill Brisk Cleanerwrasse"
transaction_senders['Z']['address'] = "29ff033fa04f5ba4192823ddbf23f8397809995c"
transaction_senders['Z']['public_key'] = "0x04563c506aaf728a37e19b00dd3db3d0e44acd01069191a68e4063ed09bc47e91eac5e0c" \
"7c77fae568960ec9ce7f1ba7b49d3b930389e387665dcde213c344eafc"
transaction_recipients = dict()
transaction_recipients['A'] = dict()
transaction_recipients['A']['passphrase'] = "lesson pull call also fork credit cycle spray purity force sail hub"
transaction_recipients['A']['username'] = "Genuine Sane Islandcanary"
transaction_recipients['A']['address'] = 'd630b1224683a438582e3e14e35ba5e03513eaab'
transaction_recipients['A']['public_key'] = "0x040f0b01746f3bad9887ffcd6f2099382b0713bcbaa00883709200b17fc65563d9278" \
"200ac1e095e0c5993e95427b44aa93e981798b19b4256f1058125518ec07b"
transaction_recipients['B'] = dict()
transaction_recipients['B']['passphrase'] = "night grit town donate length zoo meat collect vapor brush topic check"
transaction_recipients['B']['username'] = "Glass Poised Spoonbill"
transaction_recipients['B']['address'] = "1fc705a336a0a2e48eb3c953ce577e591f2767ad"
transaction_recipients['B']['public_key'] = "0x0476459f2e03920dec063bab5e7e85443bda598a97746cab7eb306d9bcb99fe2548af" \
"301922bc84030ad181876401faef0eda4019fdae1a5cc1b41435536317906"
transaction_recipients['C'] = dict()
transaction_recipients['C']['passphrase'] = "pig public focus dream mango match use aunt machine potato depend toilet"
transaction_recipients['C']['username'] = "Concrete Khaki Velvetcrab"
transaction_recipients['C']['address'] = "702995aa7dc6aad543661aab35494f4986022659"
transaction_recipients['C']['public_key'] = "0x04547d1bdec51a73b4df80c2a6bfa873e38f9c6f5ebeb71ab0350e3baf6e545b34a888" \
"f34e5e26889a79cbb4b28d32c82fce052788172328a3ddb59970978de14f"
transaction_recipients['D'] = dict()
transaction_recipients['D']['passphrase'] = "dog smooth myth loud unveil excite chimney cousin rain license cross palm"
transaction_recipients['D']['username'] = "Blushing Occasional Nudibranch"
transaction_recipients['D']['address'] = "e71c43413559e40ebcb602fb95c33662926cc000"
transaction_recipients['D']['public_key'] = "0x041ff79cb8e5a8280bcc80d9d28810ae08c96b3558238e0c87f806baffdd3fbeccde9a" \
"041c745fc15ffa7ec428a135edb11ff32104e054de644194509c733e5269"
transaction_recipients['E'] = dict()
transaction_recipients['E']['passphrase'] = "private dial force harsh crunch bottom draw fish image used notable school"
transaction_recipients['E']['username'] = "Devoted Frank Alpineroadguidetigerbeetle"
transaction_recipients['E']['address'] = "5c1d183ca67f651d864a2c88318c05dc0e32f188"
transaction_recipients['E']['public_key'] = "0x0429f5d1588be860c24ff57b699366bf5e3e25fc697be5e204adfd4cd438de42db5f2" \
"a6fd860b7431a3c91f5f2e1bc8703c0e92b8beb19c8979c1e11550b9e7ce6"
transaction_recipients['F'] = dict()
transaction_recipients['F']['passphrase'] = "gather please ritual cactus plunge cruel foil armor sock topic fence urge"
transaction_recipients['F']['username'] = "Pretty Super Myna"
transaction_recipients['F']['address'] = "81e0b035fe73f4f1aefeb5c75537c7d9b423149f"
transaction_recipients['F']['public_key'] = "0x04adbd5386508ecfb493d663f3c197aeebc2e3953492680489ee66d5d208e573c20eb" \
"4f0cead0c5634f29df6921f08f8fb5b3cb8a15cb91330d58d37b3358783e6"
transaction_recipients['G'] = dict()
transaction_recipients['G']['passphrase'] = \
"spray tired dentist case please list occur envelope they across picture spatial"
transaction_recipients['G']['username'] = "Acrobatic Foolish Marabou"
transaction_recipients['G']['address'] = "b1f8b0db0f12e45d7712625bc53535235d245a9f"
transaction_recipients['G']['public_key'] = "0x04659aa00141aa2f9a0658f56427f3ee06abb7218f5c8a5c6afd377581fde3c474645" \
"334f7cfd2faeac627e65536dca578bc0bad3f91bba0862de5ebac98ef4eeb"
transaction_recipients['H'] = dict()
transaction_recipients['H']['passphrase'] = \
"rail change device celery metal husband panda avoid often shiver payment real"
transaction_recipients['H']['username'] = "Prudent Big Nerka"
transaction_recipients['H']['address'] = "0xe9676a57a28800d83301d9d3f9c77fd2e933609c"
transaction_recipients['H']['public_key'] = "0x042b6405c7a4c34342c950cfb330f779ab27f49bc58f35e204fd927abda4706f1b9367" \
"cd68166661a62266447ecfe4f320280174e87f3c7867a3c6583c1933ab5a"
transaction_recipients['I'] = dict()
transaction_recipients['I']['passphrase'] = \
"engine equal wisdom saddle icon spring express limit surprise salute unique rose"
transaction_recipients['I']['username'] = "Teal Sienna Perch"
transaction_recipients['I']['address'] = "0x4e6c60f344b13d730682f0a6d8ae1255c75e730e"
transaction_recipients['I']['public_key'] = "0x041f67fd8c2c4fd2ece77b51a72bb9e31ba8848af8585b4c7e8fcf8f77a750faa868" \
"ada014c77fcb11b9a5342e188d8892b669320dc4f9e6283fb7bdf1dd33897a"
transaction_recipients['J'] = dict()
transaction_recipients['J']['passphrase'] = "estate add believe wonder riot used brain wing lecture misery order echo"
transaction_recipients['J']['username'] = "Seashell Amazing Gemsbuck"
transaction_recipients['J']['address'] = "0xa03a75b7888cac24b35b4d1f5924406f3b491795"
transaction_recipients['J']['public_key'] = "0x04e7e481932714c1a13ffb29fc79446ee9f30d27b4dec47af9dcd20c68a771c2520a0e" \
"7a80804ff59a750693492a65be9682d0b850b4080d976cf9e43ff37ec841"
transaction_recipients['K'] = dict()
transaction_recipients['K'][
'passphrase'] = "core orphan clerk involve trade admit exhibit valid short canvas disorder world"
transaction_recipients['K']['username'] = "Upright Authorized Waterstrider"
transaction_recipients['K']['address'] = "0x6a1aC3a7a5A064FF6E0f169E0d384703245556b4"
transaction_recipients['K']['public_key'] = "0x04d1c98a6e25a7ea0241349a41709c5dc51c7c1d59224076d13d1ebe16671eedc8f" \
"3b23ab95db679a9124752ed77339424034fd9a12f0184894c0d7a25710d2f3c"
recovery_users = {
"radar blur cabbage chef fix engine embark joy scheme fiction master release":
"0xaC39b311DCEb2A4b2f5d8461c1cdaF756F4F7Ae9",
"fruit wave dwarf banana earth journey tattoo true farm silk olive fence":
"0x31a4aD7593D06D049b3Cc07aB5430264Bf7e069f",
"board flee heavy tunnel powder denial science ski answer betray cargo cat":
"0x7B9BC6897BbbEbD5e3F1D71e1d0Af035F35a714a",
"vessel ladder alter error federal sibling chat ability sun glass valve picture":
"0x93bb483bD2D0190d48778bA21F7D85F793bBcEd0",
"legal winner thank year wave sausage worth useful legal winner thank yellow":
"0x58A57ed9d8d624cBD12e2C467D34787555bB1b25",
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon "
"abandon abandon abandon abandon abandon abandon abandon abandon abandon art":
"0xF278cF59F82eDcf871d630F28EcC8056f25C1cdb",
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner "
"thank year wave sausage worth title":
"0x2f826cb22E80a2c40f149Ecb92b2Fa5ecBf67170"
}

View File

@ -506,7 +506,7 @@ class BaseView(object):
@staticmethod
def get_unique_amount():
return '0.00%s' % datetime.now().strftime('%-d%-H%-M%-S').strip('0')
return '0.000%s' % datetime.now().strftime('%-d%-H%-M%-S').strip('0')
@staticmethod
def get_random_chat_name():

View File

@ -25,11 +25,11 @@ dapps = {
}
}
wallets = {
'default' : {
'default': {
'name': 'Ethereum account1',
'address': '0x%s' % transaction_recipients['K']['address']
},
'generated' : {
'generated': {
'name': 'dapp',
'address': '0x6a0e09b209eEa2a448B2361dD27c06Fc1f316e6c'
},

View File

@ -235,8 +235,11 @@ class WalletView(BaseView):
if not asset_value.is_element_displayed():
self.element = asset_value.scroll_to_element()
try:
return float(asset_value.text.split()[0])
value = float(asset_value.text.split()[0])
self.driver.info("%s value is %s" % (asset, value))
return value
except ValueError:
self.driver.info("No value for %s" % asset)
return 0.0
def asset_by_name(self, asset_name):