Skip to content
This repository has been archived by the owner on Jan 29, 2023. It is now read-only.

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
shuaiLiWang committed Sep 10, 2021
1 parent 6433056 commit 72da60c
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 34 deletions.
1 change: 0 additions & 1 deletion electrum/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
from .i18n import _
from .logging import Logger
from .transaction import Transaction
from electrum_gui.common.provider.data import Address
if TYPE_CHECKING:
from .network import Network
from .simple_config import SimpleConfig
Expand Down
1 change: 0 additions & 1 deletion electrum_gui/android/console.py
Original file line number Diff line number Diff line change
Expand Up @@ -5355,7 +5355,6 @@ def find_accounts(
start_index=start_index,
searching_count=searching_count,
search_count_as_requested_by_user=search_count_as_requested_by_user,
network=self.network,
)
return data

Expand Down
102 changes: 72 additions & 30 deletions electrum_gui/common/tests/unit/wallet/test_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -437,36 +437,6 @@ def test_export_mnemonic__standalone_mnemonic_wallet(self):
(self.mnemonic, self.passphrase), wallet_manager.export_mnemonic(wallet_info["wallet_id"], self.password)
)

@patch("electrum_gui.common.wallet.manager.provider_manager.get_address")
def test_search_existing_wallets(self, fake_get_address):
fake_get_address.side_effect = (
lambda chain_code, address: provider_data.Address(address=address, balance=18888, existing=True)
if address == "0xa0331fcfa308e488833de1fe16370b529fa7c720"
else provider_data.Address(address=address, balance=0, existing=False)
)

self.assertEqual(
[
{
'address': '3Nu7tDXHbqtuMfMi3DMVrnLFabTvaY2FyF',
'address_encoding': 'P2WPKH-P2SH',
'balance': 0,
'bip44_path': "m/49'/0'/0'/0/0",
'chain_code': 'btc',
'name': 'BTC-1',
},
{
'address': '0xa0331fcfa308e488833de1fe16370b529fa7c720',
'address_encoding': None,
'balance': 18888,
'bip44_path': "m/44'/60'/0'/0/11",
'chain_code': 'eth',
'name': 'ETH-1',
},
],
wallet_manager.search_existing_wallets(["btc", "eth"], self.mnemonic, passphrase=self.passphrase),
)

def test_update_wallet_password(self):
wallet_info = wallet_manager.import_standalone_wallet_by_mnemonic(
"ETH-1",
Expand Down Expand Up @@ -1237,3 +1207,75 @@ def _searching_paths(start, end):
list(_searching_paths(5, 20)),
list(wallet_manager.generate_searching_bip44_address_paths(chain_info, start_index=5, searching_count=15)),
)

@patch("electrum_gui.common.wallet.manager.provider_manager.batch_get_address")
def test_search_existing_wallets__eth_base(self, fake_batch_get_address):
fake_batch_get_address.return_value = [
provider_data.Address(address="0x9858effd232b4033e47d90003d41ec34ecaeda94", balance=0, existing=True),
provider_data.Address(address="0x6fac4d18c912343bf86fa7049364dd4e424ab9c0", balance=10000, existing=True),
provider_data.Address(address="0xb6716976a3ebe8d39aceb04372f22ff8e6802d7a", balance=0, existing=False),
]

self.assertEqual(
{
'chain_code': 'eth',
'next': 5,
'found_wallet_info': {
"m/44'/60'/0'/0/0": {
'sub_path': [
{
'path': "m/44'/60'/0'/0/0",
'address': '0x9858effd232b4033e47d90003d41ec34ecaeda94',
'balance': 0,
}
]
},
"m/44'/60'/0'/0/1": {
'sub_path': [
{
'path': "m/44'/60'/0'/0/1",
'address': '0x6fac4d18c912343bf86fa7049364dd4e424ab9c0',
'balance': 10000,
}
]
},
},
},
wallet_manager.search_existing_wallets("eth", self.mnemonic, start_index=0, searching_count=5),
)

@patch("electrum_gui.common.wallet.manager.provider_manager.batch_get_address")
def test_search_existing_wallets__btc_base(self, fake_batch_get_address):
fake_batch_get_address.side_effect = (
lambda chain_code, addresses: [
provider_data.Address(address="37VucYSaXLCAsxYyAPfbSi9eh4iEcbShgf", balance=0, existing=True),
provider_data.Address(address="3LtMnn87fqUeHBUG414p9CWwnoV6E2pNKS", balance=10000, existing=True),
provider_data.Address(address="3B4cvWGR8X6Xs8nvTxVUoMJV77E4f7oaia", balance=0, existing=False),
]
if "37VucYSaXLCAsxYyAPfbSi9eh4iEcbShgf" in addresses
else [
provider_data.Address(address="37mbeJptxfQC6SNNLJ9a8efCY4BwBh5Kak", balance=20, existing=True),
provider_data.Address(address="3QrMAP4ZG3a7Y1qFF5A4sY8MeSUxZ8Yxjy", balance=0, existing=False),
]
)

self.assertEqual(
{
'chain_code': 'btc',
'next': 1,
'found_wallet_info': {
"m/49'/0'/0'": {
'sub_path': [
{'path': "m/49'/0'/0'/0/0", 'address': '37VucYSaXLCAsxYyAPfbSi9eh4iEcbShgf', 'balance': 0},
{
'path': "m/49'/0'/0'/0/1",
'address': '3LtMnn87fqUeHBUG414p9CWwnoV6E2pNKS',
'balance': 10000,
},
{'path': "m/49'/0'/0'/0/4", 'address': '37mbeJptxfQC6SNNLJ9a8efCY4BwBh5Kak', 'balance': 20},
]
}
},
},
wallet_manager.search_existing_wallets("btc", self.mnemonic, start_index=0, searching_count=1),
)
3 changes: 1 addition & 2 deletions electrum_gui/common/wallet/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,7 @@ def search_existing_wallets(
passphrase: str = None,
start_index: int = 0,
searching_count: int = 5,
search_count_as_requested_by_user: bool = False,
network=None,
search_count_as_requested_by_user: bool = True,
) -> List[dict]:
if search_count_as_requested_by_user:
require(0 < searching_count <= 20)
Expand Down

0 comments on commit 72da60c

Please sign in to comment.