diff --git a/beaker/sandbox/kmd.py b/beaker/sandbox/kmd.py index ebf65fd5..ffe8c7de 100644 --- a/beaker/sandbox/kmd.py +++ b/beaker/sandbox/kmd.py @@ -1,6 +1,8 @@ from dataclasses import dataclass + from algosdk.atomic_transaction_composer import AccountTransactionSigner from algosdk.kmd import KMDClient +from algosdk.wallet import Wallet DEFAULT_KMD_ADDRESS = "http://localhost:4002" DEFAULT_KMD_TOKEN = "a" * 64 @@ -8,6 +10,20 @@ DEFAULT_KMD_WALLET_PASSWORD = "" +def get_client() -> KMDClient: + """creates a new kmd client using the default sandbox parameters""" + return KMDClient(kmd_token=DEFAULT_KMD_TOKEN, kmd_address=DEFAULT_KMD_ADDRESS) + + +def get_sandbox_default_wallet() -> Wallet: + """returns the default sandbox kmd wallet""" + return Wallet( + wallet_name=DEFAULT_KMD_WALLET_NAME, + wallet_pswd=DEFAULT_KMD_WALLET_PASSWORD, + kmd_client=get_client(), + ) + + @dataclass class SandboxAccount: """SandboxAccount is a simple dataclass to hold a sandbox account details""" diff --git a/tests/sandbox/kmd_test.py b/tests/sandbox/kmd_test.py index 3c0593f1..1d065cf3 100644 --- a/tests/sandbox/kmd_test.py +++ b/tests/sandbox/kmd_test.py @@ -1,8 +1,18 @@ import pytest - from algosdk.account import generate_account from algosdk.error import KMDHTTPError -from beaker.sandbox.kmd import delete_account, get_accounts, add_account + +from beaker.sandbox.kmd import ( + delete_account, + get_accounts, + add_account, + get_client, + DEFAULT_KMD_ADDRESS, + DEFAULT_KMD_TOKEN, + get_sandbox_default_wallet, + DEFAULT_KMD_WALLET_NAME, + DEFAULT_KMD_WALLET_PASSWORD, +) def test_get_accounts(): @@ -24,3 +34,17 @@ def test_add_remove_account(): with pytest.raises(KMDHTTPError): delete_account("lol") + + +def test_get_client(): + kmd_client = get_client() + assert kmd_client.kmd_address == DEFAULT_KMD_ADDRESS + assert kmd_client.kmd_token == DEFAULT_KMD_TOKEN + kmd_client.list_wallets() + + +def test_get_sandbox_default_wallet(): + sandbox_default_wallet = get_sandbox_default_wallet() + assert sandbox_default_wallet.name == DEFAULT_KMD_WALLET_NAME + assert sandbox_default_wallet.pswd == DEFAULT_KMD_WALLET_PASSWORD + sandbox_default_wallet.list_keys()