Skip to content

Commit

Permalink
Provide functions to get a sandbox KMD client and the default wallet (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
oysterpack authored Jan 28, 2023
1 parent 6068c20 commit 87e7310
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
16 changes: 16 additions & 0 deletions beaker/sandbox/kmd.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
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
DEFAULT_KMD_WALLET_NAME = "unencrypted-default-wallet"
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"""
Expand Down
28 changes: 26 additions & 2 deletions tests/sandbox/kmd_test.py
Original file line number Diff line number Diff line change
@@ -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():
Expand All @@ -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()

0 comments on commit 87e7310

Please sign in to comment.