Skip to content

aea.crypto.wallet

Module wrapping all the public and private keys cryptography.

CryptoStore Objects

class CryptoStore()

Utility class to store and retrieve crypto objects.

__init__

def __init__(crypto_id_to_path: Optional[Dict[str, Optional[str]]] = None,
             password: Optional[str] = None) -> None

Initialize the crypto store.

Arguments:

  • crypto_id_to_path: dictionary from crypto id to an (optional) path to the private key.
  • password: the password to encrypt/decrypt the private key.

public_keys

@property
def public_keys() -> Dict[str, str]

Get the public_key dictionary.

crypto_objects

@property
def crypto_objects() -> Dict[str, Crypto]

Get the crypto objects (key pair).

addresses

@property
def addresses() -> Dict[str, str]

Get the crypto addresses.

private_keys

@property
def private_keys() -> Dict[str, str]

Get the crypto addresses.

Wallet Objects

class Wallet()

Container for crypto objects.

The cryptos are separated into two categories:

  • main cryptos: used by the AEA for the economic side (i.e. signing transaction)
  • connection cryptos: exposed to the connection objects for encrypted communication.

__init__

def __init__(
        private_key_paths: Dict[str, Optional[str]],
        connection_private_key_paths: Optional[Dict[str,
                                                    Optional[str]]] = None,
        password: Optional[str] = None)

Instantiate a wallet object.

Arguments:

  • private_key_paths: the private key paths
  • connection_private_key_paths: the private key paths for the connections.
  • password: the password to encrypt/decrypt the private key.

public_keys

@property
def public_keys() -> Dict[str, str]

Get the public_key dictionary.

crypto_objects

@property
def crypto_objects() -> Dict[str, Crypto]

Get the crypto objects (key pair).

addresses

@property
def addresses() -> Dict[str, str]

Get the crypto addresses.

private_keys

@property
def private_keys() -> Dict[str, str]

Get the crypto addresses.

main_cryptos

@property
def main_cryptos() -> CryptoStore

Get the main crypto store.

connection_cryptos

@property
def connection_cryptos() -> CryptoStore

Get the connection crypto store.

sign_message

def sign_message(crypto_id: str,
                 message: bytes,
                 is_deprecated_mode: bool = False) -> Optional[str]

Sign a message.

Arguments:

  • crypto_id: the id of the crypto
  • message: the message to be signed
  • is_deprecated_mode: what signing mode to use

Returns:

the signature of the message

sign_transaction

def sign_transaction(crypto_id: str, transaction: Any) -> Optional[JSONLike]

Sign a tx.

Arguments:

  • crypto_id: the id of the crypto
  • transaction: the transaction to be signed

Returns:

the signed tx