From ffba51a4b0c831a7a377a608949cdbc9e5b30f41 Mon Sep 17 00:00:00 2001 From: Jakub Ziebinski <ziebinskijakub@gmail.com> Date: Wed, 19 Feb 2025 14:09:17 +0100 Subject: [PATCH] Move account credentials to local-tools --- .../_interface/account_credentials.py | 18 - beekeepy/beekeepy/interfaces.py | 2 - .../handle/api_tests/test_api_close.py | 3 +- .../api_tests/test_api_has_matching_key.py | 4 +- .../handle/api_tests/test_api_import_key.py | 2 +- .../handle/api_tests/test_api_remove_key.py | 2 +- tests/beekeepy_test/handle/conftest.py | 11 +- .../generate_wallets_and_keys.py | 2 +- .../handle/various/test_empty_sign_digest.py | 2 +- .../test_sign_digest_response_uniques.py | 2 +- .../beekeepy/account_credentials.py | 537 ++++++++++++++++++ .../local_tools/beekeepy/models.py | 2 +- 12 files changed, 550 insertions(+), 37 deletions(-) delete mode 100644 beekeepy/beekeepy/_interface/account_credentials.py create mode 100644 tests/local-tools/local_tools/beekeepy/account_credentials.py diff --git a/beekeepy/beekeepy/_interface/account_credentials.py b/beekeepy/beekeepy/_interface/account_credentials.py deleted file mode 100644 index 37554dab..00000000 --- a/beekeepy/beekeepy/_interface/account_credentials.py +++ /dev/null @@ -1,18 +0,0 @@ -from __future__ import annotations - -from beekeepy._interface.key_pair import KeyPair -from helpy._interfaces.wax import calculate_public_key, generate_private_key - - -class AccountCredentials(KeyPair): - name: str - - @classmethod - def create(cls, name: str) -> AccountCredentials: - pv_key = generate_private_key() - pub_key = calculate_public_key(pv_key) - return AccountCredentials(name=name, public_key=pub_key, private_key=pv_key) - - @classmethod - def create_multiple(cls, number_of_accounts: int, *, name_base: str = "account") -> list[AccountCredentials]: - return [AccountCredentials.create(f"{name_base}-{i}") for i in range(number_of_accounts)] diff --git a/beekeepy/beekeepy/interfaces.py b/beekeepy/beekeepy/interfaces.py index a0af5a11..65742fb8 100644 --- a/beekeepy/beekeepy/interfaces.py +++ b/beekeepy/beekeepy/interfaces.py @@ -2,7 +2,6 @@ from __future__ import annotations from beekeepy._interface._sanitize import mask, sanitize from beekeepy._interface._suppress_api_not_found import SuppressApiNotFound -from beekeepy._interface.account_credentials import AccountCredentials from beekeepy._interface.context import ( ContextAsync, ContextSync, @@ -20,7 +19,6 @@ from beekeepy._interface.stopwatch import Stopwatch, StopwatchResult from beekeepy._interface.url import HttpUrl, P2PUrl, Url, WsUrl __all__ = [ - "AccountCredentials", "ContextAsync", "ContextSettingsUpdater", "ContextSync", diff --git a/tests/beekeepy_test/handle/api_tests/test_api_close.py b/tests/beekeepy_test/handle/api_tests/test_api_close.py index fcf27b9a..53999acf 100644 --- a/tests/beekeepy_test/handle/api_tests/test_api_close.py +++ b/tests/beekeepy_test/handle/api_tests/test_api_close.py @@ -9,8 +9,9 @@ from local_tools.beekeepy.models import WalletInfo from beekeepy.exceptions import ErrorInResponseError if TYPE_CHECKING: + from local_tools.beekeepy.account_credentials import AccountCredentials + from beekeepy.handle.runnable import Beekeeper - from beekeepy.interfaces import AccountCredentials def test_api_close(beekeeper: Beekeeper, wallet: WalletInfo) -> None: diff --git a/tests/beekeepy_test/handle/api_tests/test_api_has_matching_key.py b/tests/beekeepy_test/handle/api_tests/test_api_has_matching_key.py index 1454e7a8..a2655fc9 100644 --- a/tests/beekeepy_test/handle/api_tests/test_api_has_matching_key.py +++ b/tests/beekeepy_test/handle/api_tests/test_api_has_matching_key.py @@ -2,7 +2,7 @@ from __future__ import annotations from typing import TYPE_CHECKING -from beekeepy.interfaces import AccountCredentials +from local_tools.beekeepy.account_credentials import AccountCredentials if TYPE_CHECKING: from local_tools.beekeepy.models import WalletInfo @@ -12,7 +12,7 @@ if TYPE_CHECKING: def test_api_has_matching_key(beekeeper: Beekeeper, wallet: WalletInfo) -> None: # ARRANGE - account = AccountCredentials.create("alice") + account = AccountCredentials.create() beekeeper.api.import_key(wallet_name=wallet.name, wif_key=account.private_key) # ACT diff --git a/tests/beekeepy_test/handle/api_tests/test_api_import_key.py b/tests/beekeepy_test/handle/api_tests/test_api_import_key.py index 6c07e6f8..ad09eb6e 100644 --- a/tests/beekeepy_test/handle/api_tests/test_api_import_key.py +++ b/tests/beekeepy_test/handle/api_tests/test_api_import_key.py @@ -7,10 +7,10 @@ import pytest from beekeepy.exceptions import ErrorInResponseError if TYPE_CHECKING: + from local_tools.beekeepy.account_credentials import AccountCredentials from local_tools.beekeepy.models import WalletInfo, WalletsGeneratorT from beekeepy.handle.runnable import Beekeeper - from beekeepy.interfaces import AccountCredentials def test_api_import_key(beekeeper: Beekeeper, setup_wallets: WalletsGeneratorT) -> None: diff --git a/tests/beekeepy_test/handle/api_tests/test_api_remove_key.py b/tests/beekeepy_test/handle/api_tests/test_api_remove_key.py index f8c8fef4..1ae0818a 100644 --- a/tests/beekeepy_test/handle/api_tests/test_api_remove_key.py +++ b/tests/beekeepy_test/handle/api_tests/test_api_remove_key.py @@ -3,9 +3,9 @@ from __future__ import annotations from typing import TYPE_CHECKING import pytest +from local_tools.beekeepy.account_credentials import AccountCredentials from beekeepy.exceptions import ErrorInResponseError -from beekeepy.interfaces import AccountCredentials from schemas.fields.basic import PublicKey if TYPE_CHECKING: diff --git a/tests/beekeepy_test/handle/conftest.py b/tests/beekeepy_test/handle/conftest.py index 0929dddc..3063076f 100644 --- a/tests/beekeepy_test/handle/conftest.py +++ b/tests/beekeepy_test/handle/conftest.py @@ -4,9 +4,9 @@ from functools import wraps from typing import Iterator import pytest +from local_tools.beekeepy.account_credentials import AccountCredentials from local_tools.beekeepy.generators import ( default_wallet_credentials, - generate_account_name, generate_wallet_name, generate_wallet_password, ) @@ -18,7 +18,6 @@ from local_tools.beekeepy.models import ( ) from beekeepy.handle.runnable import Beekeeper -from beekeepy.interfaces import AccountCredentials @pytest.fixture() @@ -47,7 +46,7 @@ def wallet(beekeeper: Beekeeper) -> WalletInfo: @pytest.fixture() def account(beekeeper: Beekeeper, wallet: WalletInfo) -> AccountCredentials: - acc = AccountCredentials.create(generate_account_name()) + acc = AccountCredentials.create() beekeeper.api.import_key(wallet_name=wallet.name, wif_key=acc.private_key) return acc @@ -67,11 +66,7 @@ def setup_wallets(beekeeper: Beekeeper) -> WalletsGeneratorT: WalletInfoWithImportedAccounts( name=generate_wallet_name(i), password=generate_wallet_password(i), - accounts=( - AccountCredentials.create_multiple(keys_per_wallet, name_base=generate_account_name(i)) - if keys_per_wallet - else [] - ), + accounts=(AccountCredentials.create_multiple(keys_per_wallet) if keys_per_wallet else []), ) for i in range(count) ] diff --git a/tests/beekeepy_test/handle/simple_flow/prepared_wallets/generate_wallets_and_keys.py b/tests/beekeepy_test/handle/simple_flow/prepared_wallets/generate_wallets_and_keys.py index dfba2b0d..a98fdd71 100644 --- a/tests/beekeepy_test/handle/simple_flow/prepared_wallets/generate_wallets_and_keys.py +++ b/tests/beekeepy_test/handle/simple_flow/prepared_wallets/generate_wallets_and_keys.py @@ -6,12 +6,12 @@ import json import sys from pathlib import Path +from local_tools.beekeepy.account_credentials import AccountCredentials from local_tools.beekeepy.models import WalletInfoWithImportedAccounts from loguru import logger from beekeepy import Settings from beekeepy.handle.runnable import AsyncBeekeeper -from beekeepy.interfaces import AccountCredentials async def generate_wallets_and_keys(number_of_wallets: int) -> None: diff --git a/tests/beekeepy_test/handle/various/test_empty_sign_digest.py b/tests/beekeepy_test/handle/various/test_empty_sign_digest.py index 41cc962d..f4cb76a2 100644 --- a/tests/beekeepy_test/handle/various/test_empty_sign_digest.py +++ b/tests/beekeepy_test/handle/various/test_empty_sign_digest.py @@ -7,10 +7,10 @@ from local_tools.beekeepy.network import raw_http_call from schemas.jsonrpc import JSONRPCRequest if TYPE_CHECKING: + from local_tools.beekeepy.account_credentials import AccountCredentials from local_tools.beekeepy.models import WalletInfo from beekeepy.handle.runnable import Beekeeper - from beekeepy.interfaces import AccountCredentials def test_empty_sign_digest(beekeeper: Beekeeper, wallet: WalletInfo, account: AccountCredentials) -> None: # noqa: ARG001 diff --git a/tests/beekeepy_test/handle/various/test_sign_digest_response_uniques.py b/tests/beekeepy_test/handle/various/test_sign_digest_response_uniques.py index 6ffe994e..d60287fb 100644 --- a/tests/beekeepy_test/handle/various/test_sign_digest_response_uniques.py +++ b/tests/beekeepy_test/handle/various/test_sign_digest_response_uniques.py @@ -7,10 +7,10 @@ from local_tools.beekeepy.network import raw_http_call from schemas.jsonrpc import JSONRPCRequest if TYPE_CHECKING: + from local_tools.beekeepy.account_credentials import AccountCredentials from local_tools.beekeepy.models import WalletInfo from beekeepy.handle.runnable import Beekeeper - from beekeepy.interfaces import AccountCredentials def test_sign_digest_response_uniques(beekeeper: Beekeeper, wallet: WalletInfo, account: AccountCredentials) -> None: # noqa: ARG001 diff --git a/tests/local-tools/local_tools/beekeepy/account_credentials.py b/tests/local-tools/local_tools/beekeepy/account_credentials.py new file mode 100644 index 00000000..a30be4bf --- /dev/null +++ b/tests/local-tools/local_tools/beekeepy/account_credentials.py @@ -0,0 +1,537 @@ +from __future__ import annotations + +import random +from typing import Final + +from beekeepy._interface.key_pair import KeyPair + +ACCOUNTS_DATA: Final[list[dict[str, str]]] = [ + { + "private_key": "5HyrZRsejVQWns9QFtTXZPMXeopTK7GUpHx2Sy1qD2omayn3LS4", + "public_key": "STM82ntKLzbYi8vgYvZFwRWX8iC8b3aChsp1y7YufiZfyLAs3eQ1Q", + "account_name": "account-0", + }, + { + "private_key": "5KE321Buyp5ZRQ4DhetxjuBkekcknLwbW1LNLUt3UtQ5CjWMGzh", + "public_key": "STM6CUYDwRY2nrC8m3H78HpdGFoA1Fp5vQ7pivNFoUcmLwyxpSgde", + "account_name": "account-1", + }, + { + "private_key": "5KRJixCyjjmQePaG9zSMiRxcc6xPGmADuCXLxkjotztML6y6zvK", + "public_key": "STM6kNKZQ5kxJsrUdMMufSJpoWCrwaFj1rYZJfd4RnjcNw4GGwyFY", + "account_name": "account-2", + }, + { + "private_key": "5JsPjhAFccR9gkJYgMdA6TA6Dt3E9qV3LN1CoqpQJAYGt5jC1Um", + "public_key": "STM8FXEeK9edTTKaY6aB2VfhCv8dDweMWs6hk5fhkG11BM6AuosyN", + "account_name": "account-3", + }, + { + "private_key": "5K9fVKHtb1uk2NaGDgUyDjH7hBcRFAwEDiXRrRTijvzdu42cCMQ", + "public_key": "STM6E4w4QJxFwyPixTqAx9GBdV72HNj5FVzNtoWA36y9hP3VEkP4u", + "account_name": "account-4", + }, + { + "private_key": "5JG41mHyH8ZbnmYepRnxNLhBZBMGPBuzaED2vkSS2HXaw8PfKzP", + "public_key": "STM7T9s6XQWWswidguTky8oCu5yvpMZQQ8SQDVPprnyg8N2LL67hs", + "account_name": "account-5", + }, + { + "private_key": "5JX3JzmUsEHCZLvSLcyT2pqCFGZTrhPj4ob6ewhXV5G8XXgKFDh", + "public_key": "STM81CBAKqkPRfLQrTXr4esxbu6Zn3xLnqeRHnytz4LNmvsWJ37Lv", + "account_name": "account-6", + }, + { + "private_key": "5JEV7t2xZ2hvJheLmA9ZhFj44ycXxfcPDTvM2wWfo489sxYuSQx", + "public_key": "STM7GZGuVRVZ3XUkaQCm4F5abvsrTBrhV9P4FG8XyP5fMzMWnKpm9", + "account_name": "account-7", + }, + { + "private_key": "5Jff3UYKEv9EnRWj5hu75bTK1tnD9gEqXtLwJ3q44qXR6SrSKq6", + "public_key": "STM6YpeBVhYappteeqxAHqpoZAncJRpTkUZhteNiRfxhPYHjZa6h4", + "account_name": "account-8", + }, + { + "private_key": "5Jd76MCvKfv2DAztK86GR4ETdiDM9BD3RAJ8vmV8p1n6J1k6tXF", + "public_key": "STM63kZLfJX4Qi8xzm5DtSzgi7JVRjkak8w1Kb5ZiwagHJYCSbP3k", + "account_name": "account-9", + }, + { + "private_key": "5HsQRmMjHKxkivLie2XFjScqa87ta14dbF4sNxfvjAnmgszHp4K", + "public_key": "STM8LsSm6s8J9r8sfnC6xiViTkTVpneDmuCwbkdBZSNWjqDSwWHwa", + "account_name": "account-10", + }, + { + "private_key": "5KZdsnmmgzaB8sMpw2yAmjgTxMYjRJWQp9w3fLAUcRJHYUNFsCa", + "public_key": "STM7LWb3MrKuiVKsc4XAC6zDfKoEfuJ5hgRVpmZ1dqQh7ALC543eq", + "account_name": "account-11", + }, + { + "private_key": "5JHkH21ybyK3opD42CHuBwJDe6L7Mc5UXNjwec4f1vNW4Gijgxs", + "public_key": "STM89P7cNXmhjmJeFDdgidCpay6hzdxJqgyyF2jJDtcXuCyvt2tyn", + "account_name": "account-12", + }, + { + "private_key": "5J6jqBuCXUxYHFD7CHjkdebyKRDqJmFXGREeBayCumGtB78r7ff", + "public_key": "STM7DLqJwZCkKHcLYz3S4FssaWFMFnpKZ4SnJBQMCpyauRkfjRHKL", + "account_name": "account-13", + }, + { + "private_key": "5JP8a7CAqkMGAESSaXWEHUVdHJsPwzdSBn4EN3EvbHwZRcmffPB", + "public_key": "STM6iHftppLZpoFL9yR8XGTcF1CLxCYsn2vFZda7ioCrqGWFnaN7W", + "account_name": "account-14", + }, + { + "private_key": "5Jk5VFnLzZPHUVkUhT9ba6vfmPcsNy8A21MG4cbiP5Fc3g42ihe", + "public_key": "STM4ue4CJwWAbBech5Z7dr5AziJk7eJhnTHbNCff8QkXQZStnnwsZ", + "account_name": "account-15", + }, + { + "private_key": "5HyxSCUncHiFwmPMWxLS4EhC46TjZGDGroythNgMLiBBJuQiZ8C", + "public_key": "STM6Hq6uKsV4jBpDxjp9E7fTpsp9MsLd7mKaNwnAX2MU1LPfWJyJq", + "account_name": "account-16", + }, + { + "private_key": "5JaGswLAX5Vfk4seRAbY6m7hknkBj8QVV8Zp14y5hkjeJBs7i4d", + "public_key": "STM7GVcJ31F4uBZuVa7MnUSN5qJrtUG82yPqc2ua8c7YEgHiC2qq1", + "account_name": "account-17", + }, + { + "private_key": "5HpeGc2JzHeXJFpCcXaE5v5zvfkAN3rAq3L4EEg6DHbEQWWnYb3", + "public_key": "STM5DrY3Ev4BHPyf6MFPAohQHxqNv3HufazFLVBxVdHnmqFrK2tN4", + "account_name": "account-18", + }, + { + "private_key": "5JQERr7ypDp3ayN464pdQyNBZ6VnUT9bzqMUFGmJgpyeUAUmYLi", + "public_key": "STM8k1FB5Uyakk58gALxVcMeuBm3i1yDMq7Fpia9WQfmSxZ3veALQ", + "account_name": "account-19", + }, + { + "private_key": "5JXjKtv9qhvhPTEThDRj1Jn2uR6C8XfyDX2hZNfsn6gN4ARPqR7", + "public_key": "STM5cBXU7zzprt9mQwktiPJccL2hNrUked9q2KztAeQux6zPYq6np", + "account_name": "account-20", + }, + { + "private_key": "5K9WVYVcQZV8VMRZbnsxk6epc5HJ7p6dKeqvLyWEBTChSzpYnw3", + "public_key": "STM7rDWhkPwz361xHUqjiy44qvRweGDDR2Darnvn2UHb2oMB4owsP", + "account_name": "account-21", + }, + { + "private_key": "5JJnvC4gGmxTC7qpo7xAUwuTQcwVmZpBZsgLeYZBAqe7F1Kf2pe", + "public_key": "STM8GGjPHzBCiDZucsGeeWoZFxbcuxg2NeR5eVofSqCWPGTPNB3gC", + "account_name": "account-22", + }, + { + "private_key": "5JEo7yGJN6TCwbmgQM3UNZkqnsGi5aWTX48FeskCaawRJ2mZJ2M", + "public_key": "STM6LyoAoQ5gjwNwXKQgiAawSBUno4nCDT6385Jqgbp1U7iQ17Tci", + "account_name": "account-23", + }, + { + "private_key": "5KRSM7Bryji2TPyfKCpeDMcyiDqkvpqHHLqVQgaDioFymyxn7Ri", + "public_key": "STM7GCQSKZDTMH1b4Gi48wd243L8EPwexVSLZmLTdvfjXnVfppi5H", + "account_name": "account-24", + }, + { + "private_key": "5JkPEqpYYVJUsbKJzUEqbpum1AA4ZLsUPJgPX6TUJEUPWdWsUdd", + "public_key": "STM69GVYU3DDc84eNpapx58wRs6HDW6qbvANzgwK1y1uj2NRwRLmA", + "account_name": "account-25", + }, + { + "private_key": "5HxtUksEejv3Nwqdd273ZRRR1AVtSgZbAMB3i8fTs5EYBAEkGh1", + "public_key": "STM6HC1LAQekCWC2rhwvGfJRg9jwRUJafeqfMU6QYAJgGFciT4yJp", + "account_name": "account-26", + }, + { + "private_key": "5JDZQJJ7UX6HfF4kyuNYRTqzw4WFRx33Ugeji2fVmqxa44UuqsT", + "public_key": "STM59FWVAVdqgRa2b8BF7pDm1BB5ReteiDL3xhQtW3sqjjPCwUcHy", + "account_name": "account-27", + }, + { + "private_key": "5JTVNsLjTjZDWHDq5MShs4i9svc1X3HJ2UCMTjjMvDudNicSJf2", + "public_key": "STM6tXepUeYjb3wj1ERz4Hj26VCFuSCZQgiUMHhp4suiZAHTFXiFs", + "account_name": "account-28", + }, + { + "private_key": "5JzQ1HTmJPaDpWpRFtbQ8hEjaX82fBmPEs7GPUzp3EXH1GtdGT9", + "public_key": "STM6D9RuCeHQZH6MqoNzxhY2kkH6dBzpx96yYKzjcBmKZGg7U6wBA", + "account_name": "account-29", + }, + { + "private_key": "5Jsos1GvWwVzPCYvqjQPWVHTuGj3Hi7dhMSsb3XwgDXNpQsbAoX", + "public_key": "STM5FVNcd74RwrEECXiXv89Swdw9DzdJTWaACxhuT8aF8pWRGeQjE", + "account_name": "account-30", + }, + { + "private_key": "5JLZbTXbD4kUbxBXi3GhQvxksYDDFmJCWusrDtTyZBgAZSMmg72", + "public_key": "STM7UXciojf3FT8EEkyVa5rHraiLNi4ZJVRDVjee7TsReyuzUzeNe", + "account_name": "account-31", + }, + { + "private_key": "5JQiqdqyrTmaBFL1hi7hic2hbF2Mo78kuz8s9X4aKALae4j6o8k", + "public_key": "STM8g7WCmRGLrdcZZCbWsUaWGArYLGj6fpkKnb6xKEzzUcyhCdPrk", + "account_name": "account-32", + }, + { + "private_key": "5KN7ktJjqkKx5pUdG6EX2i9Mza5N2Hs83qHVy7LayudYptXvmLi", + "public_key": "STM4w4xoBDDQKJHSkWQtCV3yhtN3VS8cYkswUxtjF6YxCrs1PsJVd", + "account_name": "account-33", + }, + { + "private_key": "5KMAzFcHxhyRV1QGorto7rcNuUs1PsKWZjgoJqRPD9b71WYYBy9", + "public_key": "STM6hpfeYSrnaB1P4xkR5En2KRmZ71HjXeDgkyZABshBpDqvs9c5H", + "account_name": "account-34", + }, + { + "private_key": "5KKNJCzYrBrSCXd2G3UJX9TpPgG9H5iAYZa8XfXmdoTKcCVsGhE", + "public_key": "STM6NVKdroEDBsDqwYz7DS7SzBJt8JWPiLhs1nGCJbLouDVyhRyjK", + "account_name": "account-35", + }, + { + "private_key": "5Jf2AynonkRQPP6d3mmZjFbrhY1FnLt2x1aLKgyFJMFkooN4xhA", + "public_key": "STM5NPWS6viRduE9MoKfe5aFUKMgTsawzpnT5KtKiFdgZ8TqKMGeW", + "account_name": "account-36", + }, + { + "private_key": "5KVAbi1C32EpXVDFNSNVDw8BYAmhuQgx4GERCDh4nRbCh8dhKN4", + "public_key": "STM87u15qFhYFbpxNx2Bf9xF1YJguMbP5KRmL5LNRz8Ky1TVns8LA", + "account_name": "account-37", + }, + { + "private_key": "5J9TZS4RWoF4umbnGgVEPSRjYXLfRuf1Y57uCxSoREmftSRR8Sv", + "public_key": "STM6ucZ6rV3jEZvnqVkcfk6eu3ij4FiwqicSk3taeFo3UkyzPraXR", + "account_name": "account-38", + }, + { + "private_key": "5K4QckBje4wAwebB7D2J7vjeMmZ69SiFnCXfcZREyUE15maWTSg", + "public_key": "STM5xAPePNdP3b4kPwDPrEJ7QXkew4LPp9XEmSnXZK7Pi5MaYE5YF", + "account_name": "account-39", + }, + { + "private_key": "5HwpmvU5PwLSm61qGCnbsZJDG3Gka6RATuS8Jfvtp5YYhCoxxNV", + "public_key": "STM8GXBUUAENmDcf1diwyvSoCmLf83c5YkhMJtSFwTNnzvg3XkGxt", + "account_name": "account-40", + }, + { + "private_key": "5HsQKoZs78edV9ZJeygKehb6qnefdfHduuD2oJQuoMnAYo3rU8Q", + "public_key": "STM7TihvhcHM9eQicp7N7iPbMd4gwEXtNoQKBvckfYhxWaDVMrhvN", + "account_name": "account-41", + }, + { + "private_key": "5KjzPNJ9sDYDQMcDG6RBUYgMNDVTYdVcKAHUDwRM4YQDRwVyGZ6", + "public_key": "STM6wGeu77VqqVK3Jt2xY2f8RCzm9ZWCvsFzd6wxPMh7t9WmnAkSk", + "account_name": "account-42", + }, + { + "private_key": "5HuDgKPyqypfa7h6AmTbUxVLGAfXTt9XKsYVQFf5g37hdiwbZkJ", + "public_key": "STM8ZBsRvDMCdc7bthTKsyE9EJGMXzaU3y41jdysWbbfy6j5tgkR7", + "account_name": "account-43", + }, + { + "private_key": "5Hz3QmiZhDm1RWxVPc7UrXU92Q29YAvNiYE5XpiFGYziB7FPtix", + "public_key": "STM5g1qEqw3qHT3C7LLzcaPi9ptacJhC46WEByF5BBXCxJR79m3xS", + "account_name": "account-44", + }, + { + "private_key": "5J418EySwQEzKE7jAuyBVZ2td5dvE4SHr9Tcq85vW4BK2GHNz9t", + "public_key": "STM5gyhooLmQdotryux8cXCbtuBoUq4f4dCNkAM8BeU39h7aC5Zn7", + "account_name": "account-45", + }, + { + "private_key": "5KFFcwbSLi4jSksCcaPYnQqVpMKjktZJPmqwUspjqJX6tp1b3zw", + "public_key": "STM6hBaSk9ikpWNXvgYEp7nsEn9MmkrRFNAFpsR8HtxCBbq9LTsUH", + "account_name": "account-46", + }, + { + "private_key": "5JTM2CJmiLcErXcsRXSe59NXbAufaJBHy1Xa9LdV1kPuvrN7XSK", + "public_key": "STM6wzFw6DrkPxvnqMtjvxhyrEMLJ3Wf9re7a6zzmhK6Ex5be7UkG", + "account_name": "account-47", + }, + { + "private_key": "5KEWKwRoenmPf4BsSSScGQHsVqpuLH5kYY5harsZLrZyiTsxo3L", + "public_key": "STM5zi342nrNwTMDxDVJgPbxk9m6Ua3AjEPD5JdC3bCAXWVNhgmVd", + "account_name": "account-48", + }, + { + "private_key": "5K2jub1xMiMBxUz525rV2YuoDLUswHxHGNNJRnMvivWsyr82wFP", + "public_key": "STM567EM6mvRDSiUtNRTVNtgViPoeKDu1ScuRKYdX9jWyqRxXL6ux", + "account_name": "account-49", + }, + { + "private_key": "5JDkWBgm4JdpaYgyAXAWvfVgucD8TzRubzaKCuvZ4ChPpHhWEac", + "public_key": "STM5rG2aiBC7ZLMitpzntbq6rcpT5JrDRSzdBVjrPuaszNaMHaaG2", + "account_name": "account-50", + }, + { + "private_key": "5JfALZ4UhFykVF9w5emxVnbzfRwxzf5yaBDMc75CEew8Mc1rypL", + "public_key": "STM83suoHYzomT8Ns8PUwum3i3ow9MLJyvWWPBZTSekRqVVAtuYMi", + "account_name": "account-51", + }, + { + "private_key": "5JaixGmSsf8WWSMs81ZNbozsk6ZhMm29bQTK45uhbpCV2E7TttW", + "public_key": "STM5A4UFqhzv6nUzMMdRrmVJd9j7iHW7FXxPnzLd1o8Kunoqi29mT", + "account_name": "account-52", + }, + { + "private_key": "5JDnPidRbGcTjSjZFagdEat3nTMd3UQgXrcH5kj5RJRjgtZJgSG", + "public_key": "STM7dGoyQGFDCS3G3qgGSJoHnuTVVjAfCDhHtSnLEQtnMVv3pfaJi", + "account_name": "account-53", + }, + { + "private_key": "5J9uKqiGAEBacXqgkttR8a4GHv9zzjgxAyv3u3d8bv7MibqhsBf", + "public_key": "STM81RdgojtTUBexxA3UHMQTEWnmwhFP4EPctyW4f2fuSq5AQGMNd", + "account_name": "account-54", + }, + { + "private_key": "5JMQuEGpg8aBtogF8aJRfgyy6XdYCA9NGzCtw88PkLbxGGbytYq", + "public_key": "STM4zT2EAwwykPMFfggdEyqqZRoQnrDGdNCQCCFFd4qF6tG9yhLwA", + "account_name": "account-55", + }, + { + "private_key": "5JutEpSfwp3tn61zQcRh1imPiPanrgM3yuHpNM1VEyqvZhEcUdn", + "public_key": "STM8GKXZaWkY4ENxjmhwYDsiUhrapFUQos1jM8tkpv1g5TZFgxsrW", + "account_name": "account-56", + }, + { + "private_key": "5Jmzumhzn62LbeUaGZLNZpfcKkiMQXWTRTdoheLFSxidtnePwua", + "public_key": "STM7hxDubaqcoG41n79h4jxhYrPbLtDDyJPxVoenxrnx2MtqSyNRo", + "account_name": "account-57", + }, + { + "private_key": "5JTeEKq5DjL1ZKvRZTLpNWAGgUqqhVNZCgLiyhduB8ugRbFSm46", + "public_key": "STM6YHzEfuFpCroo1kyDB66zeu93yyqqE3mVcqFqbQDQx67uTL6G7", + "account_name": "account-58", + }, + { + "private_key": "5KVDRsD1cjXMkUpUkwGj9NV9SxiaLhz1E3AhwrL85M4eS3PSXUy", + "public_key": "STM5VGcLabiMRj7sHWNSb4qhZk8DPfrHoSTPppow3UbtGRxUDvfHe", + "account_name": "account-59", + }, + { + "private_key": "5JxBmPDxo94jHjFE5aRcwkwLJ7SfnZR1iRBTQY1EQ3oUxraTNRB", + "public_key": "STM68W4yCDAm4E5R3YfdrnNgRqF47ennJyMa82Y6dCaJVa2gz89Ap", + "account_name": "account-60", + }, + { + "private_key": "5J6hKDMCTwgnC6ttbWMxQNtfdNnPMfevXU3esfMS4PFkVvDNDX6", + "public_key": "STM7wWqTddXHr4uDJqbFBA4dEa2R2A7GoEPzrCakEdWAKrULuF1Jq", + "account_name": "account-61", + }, + { + "private_key": "5KUrWes8EExsrSJRufLeA2mMPQdjCGS8LfHZgiMsk8BTKxQ8Rww", + "public_key": "STM4xUWVu5ecKuhB23u3HQqaBP4xXGsGLUjiTY1nSBQgkTq4iw1W8", + "account_name": "account-62", + }, + { + "private_key": "5KQV54oEW95uhSTwF7vzz6mwWUL87rbbYHLUz4xUUAHh12ryiQY", + "public_key": "STM7k5QaYYCiSMn5A6snexPoaF6T5FWEiGsrUuSc894jckVcSeYu2", + "account_name": "account-63", + }, + { + "private_key": "5JfNQME8n6gNBzEjvEvfZxygQitaD1eaNWYk4KDGF3UoCq2dXu6", + "public_key": "STM863HJ8kpFwpVasbFw31stuZbDZdzNhscuVMBMsz1BtLZcnD6HS", + "account_name": "account-64", + }, + { + "private_key": "5KifS1mxscoi9iGEFb5cKTxE31z9wLPdM3z5LXdUDtmLt5AhTUd", + "public_key": "STM7w9Ss8hSXzwatMMJ7aWPhCFT6cTfB4Qy7XvBBEsxGrtoVb6dDJ", + "account_name": "account-65", + }, + { + "private_key": "5JSoYku5fVCi2vhvDbx5UD3ZPd4dUzfDbXVQtk6tAguA6195VFY", + "public_key": "STM6q9UBxqk5k8RKbCtT6r4ztFTy9TWJ7ULuuCcJRprEG4pWLrK7f", + "account_name": "account-66", + }, + { + "private_key": "5JbwbvrTnPsUKgDHK5DTuvKbzyYMwe7JpbD4v6XkRqp6MJXKiKY", + "public_key": "STM5YwVLiDMEmJgnBxLU1sTjTL3TcQ41hetkZ6SBjyNUvQWj892Le", + "account_name": "account-67", + }, + { + "private_key": "5KMDG5xm3oBAoHKYED8xvfNmyfdZ9WBQTfwSoKRP22YZUBtTNu5", + "public_key": "STM87dsYnEsazgxjrWJ6y4ado6DGuHtykRyAfv3gu7EpXqmupAuRp", + "account_name": "account-68", + }, + { + "private_key": "5JXaTpqJSudXV1ZZKpEwShqM4YYXmTX3BwmPZpNGkQzMpJAQCQT", + "public_key": "STM8HB5Q5mHHgopUDFvWKJuYeXCs9kMzo5t3ddgHRmYUwejTYPzwd", + "account_name": "account-69", + }, + { + "private_key": "5JqwpnzDwTmrQ8XMVGsN8HHUxJv7kpf24kWTMfXTs14thwjMfhj", + "public_key": "STM8WULhTuiy7oJr1quDwwAuS1Z84wiawFQ2uvSrzTtD3YU2DiGr5", + "account_name": "account-70", + }, + { + "private_key": "5Hshg6xNyan3e5syHCQsT1R7BtD8SJbT976cz9WrgxTS5tNm1eZ", + "public_key": "STM7EKSBzHscZNqZtYncscLq3wBdSfJx4uP9a99qiEjUnkuV3zzFH", + "account_name": "account-71", + }, + { + "private_key": "5JBFRE1jYjE6uN9kaqTJfvLUY6at86gyNo4ykWdbqy7naiV7BrS", + "public_key": "STM5x66CnBrFvAr7Rg1pDVG1oGcDCk3K7PxvPLBU8USVxNQfwW2Zi", + "account_name": "account-72", + }, + { + "private_key": "5HyLDWnBK8aL33MomFy9Wzu5Mi8FMUKuCPddqpARcJDLJuR22Ut", + "public_key": "STM5c7gX6sZRgS3kUnrJY5Ct22Mu5PLPTbLQZnQbPrtBUiKjn9uPX", + "account_name": "account-73", + }, + { + "private_key": "5K53B2JMrPKdjktW5JiymgjJ8jHVgQ1MCwejRAhPS3MZpqziWCC", + "public_key": "STM7V5MwB5ndY92wou4eSTJa4eFLSL6X7NTTtWVzuVkS5vfZoZpqg", + "account_name": "account-74", + }, + { + "private_key": "5J3eCcXkvwHdEH7rtZuwqxTteo6zMMKxXPra4Jgjz6sszg8P8o6", + "public_key": "STM7mikUKCa5o9nc1gxvPnkMhVatpdMzSiNoVjvFLfGtJLVB4fLEz", + "account_name": "account-75", + }, + { + "private_key": "5JAdEMbjadnj7Yn7UXTxLYBQYe2cY1ip3t23PFcdjuiULiDHbbZ", + "public_key": "STM8F8NY4WtJ1HPT39ysotDXYCUQmFThwDnWkAcdvroim6WdWgxqg", + "account_name": "account-76", + }, + { + "private_key": "5JhY5KXwEUgZYG4iRGM2UZyGMhaQBgzyG3tVh6vS7iVV7vwGddL", + "public_key": "STM52PPNLR8nFm8fBhWyu17Zi1sNNeLHQiTByUzCWqESUQaXZiJxe", + "account_name": "account-77", + }, + { + "private_key": "5K4YPoRGwRUnv7GtwvLoSW5oPjnY2kpDYMuNcMtYK917NCCPk8Y", + "public_key": "STM6X6QDQiEnyhmPvtcC7BQcGvWkMVUr1EySrdGFxa4EHVx62yGmA", + "account_name": "account-78", + }, + { + "private_key": "5JYkXTB3uidSAydjU1zjhHURfXD34qHNmmHAbdqJyArmBCibmqZ", + "public_key": "STM8EHLuDNdGSryuzwzwrTj7yrkZadFd5cdjtksSKEacrzD4N83md", + "account_name": "account-79", + }, + { + "private_key": "5HrZtDR3CW3UKayyWWvPz9EFwjMW9V1d8X3W1YYZzMRq1JrmGPB", + "public_key": "STM54yP4FQ6jHNjVhFaxg7Vjdc4XK7UTh4XoAi6kAGr2LTiojGWgD", + "account_name": "account-80", + }, + { + "private_key": "5JmiGhw9AKwouwDot4EefgXUjPd9EAecDcMeFmZxykqpKiBFpN3", + "public_key": "STM84tkM8HevcGu8RedV9i9NCYPYvizjqHgDPRsQP2NfamJrepim2", + "account_name": "account-81", + }, + { + "private_key": "5JXxbUk4sjYfk1E7PCYiPmnzVyW1SCisr1tPNpYwVutaMvTgsmY", + "public_key": "STM7APKM2ZAZH55JJFQPrxgq1RfYdru7Gx7qj1DFVvkdk1nGecB6v", + "account_name": "account-82", + }, + { + "private_key": "5JDZREighZFzXmc7zvqE8az2s5jJT24Fsqd3W1eHuFukpjZfbt6", + "public_key": "STM8i2BwoxMRqorUpfEpkykpPrgdBywGfed4qGrDXDqX1YHzRERem", + "account_name": "account-83", + }, + { + "private_key": "5J66DexQGjpbVfCGiQEScmzEfaXvdwLRcm7nib33jGZ8vz5Vtzz", + "public_key": "STM8bhH7XKH61AMM7LzsmMuTifBw52FWTxBvmigqydV74neNwxjKa", + "account_name": "account-84", + }, + { + "private_key": "5KDBn4zexoUyVjP2JhZzgxQwcCiedCi8Y4SNnfcgr1pDicBhaZx", + "public_key": "STM5aH1DieLRUBVhCEqdMFqLzA3B6EEKJbXQJSkrvXkHS4RyucoUb", + "account_name": "account-85", + }, + { + "private_key": "5KAaeyLGqEqDbtzKwavA5k8vVxA6FWgvZWUHjeixfn3n6Fwk5PL", + "public_key": "STM8DLgnTvaenmfMwZwRa8D8jp945tEYMcca3HBM2R3rZmrxpnwH2", + "account_name": "account-86", + }, + { + "private_key": "5Jwqd3C3L41tU98qmUaXxhQufx6fBhxaQzwx87dKENrLH9rBzUJ", + "public_key": "STM8D23ifq29k9J6TLg7cp8Ph8EDrnove7UeKM2L7nSAz1JZawSMJ", + "account_name": "account-87", + }, + { + "private_key": "5JdkqcYRmrsgZbx4QdFS7jedXBcUuzgKmYrkwwc7EjScVDfcBsm", + "public_key": "STM6Xb3iv5oPbsWyN7ZkqBm3htmPWGiVimLML4ngWqAaXMhBQu7gk", + "account_name": "account-88", + }, + { + "private_key": "5JwoTu5AwPwtSARdxzjqb7ufSLSFYn1ebTGnrXc3BrEa4jk23Qn", + "public_key": "STM7caqZxY38tB9wYM4ewyxAV8xmhmydbkrPYwmeibpwEoCZZDTkt", + "account_name": "account-89", + }, + { + "private_key": "5J2EyKZYWQ1NKNXsdgK1XBC6prJdHNJTLYFEmUEHN255PACCZq5", + "public_key": "STM8PgWRwSY9rFrWMd9Qn7Qim5t3kk2mfi3ZuUTt2fnMkiw3r7HSw", + "account_name": "account-90", + }, + { + "private_key": "5JoErPsvdFyZiXth4XWvBdTrTxoVccB754FbQF2hfjauwjC2Rsv", + "public_key": "STM6EkYBjHZZUghd5JP53eRyeGWo4TdyENie2CoSZRuq5h4qjYFB1", + "account_name": "account-91", + }, + { + "private_key": "5JjRzYBgVSTp2pW9ebPf9Ce4zN8wLM3VWgGFe4izLBZUDD7acfq", + "public_key": "STM8YQPKPNiuriErJBSSUnPc7FrfvgG3Q7udhbWUWaTp2YAZFe8xD", + "account_name": "account-92", + }, + { + "private_key": "5J9EjfRWTcdFKzLf4J7ovpMLU8QDRxwXdSGuaNqSsrN1d2znov7", + "public_key": "STM68N9LCQyT946AEV3Ci5pGjodwPNy1sg2HQh7b8FDMvH1ZYdYSk", + "account_name": "account-93", + }, + { + "private_key": "5J7eTQmuabtAz6FRn4BkSDmEpUBhtUhZEMWaLniF4Lkq9TMwBSV", + "public_key": "STM8ZeExfiuBMqEwEEFVnV4vuJPUJeGquDQNhXcWtBzxFQwpuW4i5", + "account_name": "account-94", + }, + { + "private_key": "5HwVtrkSfDWPnS9PLDBBJ1SkzSJkkrkaVHhaUP4n8BxSs6k58pM", + "public_key": "STM88v1WXpengpUep796EFMEjYbsQVazimn3D73qifTt7S81EcAjj", + "account_name": "account-95", + }, + { + "private_key": "5HuNf2imXAstuUCsaNzbHcTwbUQzsFXM4GZbXLYKR5PqU9hC8e7", + "public_key": "STM6E4JYxdx8kEYTa31U254YbGbv7yEGVBBZ2dygonJZmbEzDe4tZ", + "account_name": "account-96", + }, + { + "private_key": "5J4SkervuYB9zcKXrbFiKsigH5P7wy8tUsYL9sTfGwh1F6fbfL2", + "public_key": "STM7Y9qpTEyX2giAjk2ig87VWNJzUkFz55XSvYYLM6rijqrUy7qG8", + "account_name": "account-97", + }, + { + "private_key": "5K26jLJ9cUgAHMJtFhZwMJjrXscBgAqwc3c5UDxHxAAjWTg2Ph1", + "public_key": "STM6E1323tK5tULYW6EypotKxKqRPCsQpGwEBS3NkziKDZ8LTgnBS", + "account_name": "account-98", + }, + { + "private_key": "5KQ9RV6YZzrUL7DX7vkBn46zvE7SNiG7YMZxhWZyp6H9PmiWv5H", + "public_key": "STM5WYudvEvaozVNVPXvWAYdVtkvyjRG1U9Rd3aeSS4ZzxoQ663ta", + "account_name": "account-99", + }, + { + "private_key": "5KeTAa6TCFkEcmn1EmBAMakPgUNWPgeV1WiSfTM8oTCyR4sY5Qm", + "public_key": "STM7ykffXM9oE1FyBpVhRaCfBpfyJnoafF81ZP5vaGEyDCmXF3mGq", + "account_name": "account-100", + }, +] + +MAX_ACCOUNT_DATA_RANGE: Final[int] = 100 + + +class AccountCredentials(KeyPair): + name: str + + @classmethod + def create(cls, account_index: int | None = None) -> AccountCredentials: + if account_index is None: + account_index = random.randint(0, MAX_ACCOUNT_DATA_RANGE - 1) # noqa: S311 + + account_data = ACCOUNTS_DATA[account_index] + return AccountCredentials( + name=account_data.get("account_name"), + public_key=account_data.get("public_key"), + private_key=account_data.get("private_key"), + ) + + @classmethod + def create_multiple(cls, number_of_accounts: int) -> list[AccountCredentials]: + account_indexes = random.sample(range(MAX_ACCOUNT_DATA_RANGE), number_of_accounts) + return [AccountCredentials.create(account_index) for account_index in account_indexes] diff --git a/tests/local-tools/local_tools/beekeepy/models.py b/tests/local-tools/local_tools/beekeepy/models.py index 56ab7cec..95cc9493 100644 --- a/tests/local-tools/local_tools/beekeepy/models.py +++ b/tests/local-tools/local_tools/beekeepy/models.py @@ -9,7 +9,7 @@ if TYPE_CHECKING: from loguru import Logger from beekeepy import Settings - from beekeepy._interface.account_credentials import AccountCredentials + from local_tools.beekeepy.account_credentials import AccountCredentials @dataclass -- GitLab