aea.crypto.fetchai

Fetchai module wrapping the public and private key cryptography and ledger api.

FetchAICrypto

class FetchAICrypto(Crypto[Entity])

Class wrapping the Entity Generation from Fetch.AI ledger.

__init__

 | __init__(private_key_path: Optional[str] = None)

Instantiate a fetchai crypto object.

Arguments:

  • private_key_path: the private key path of the agent

public_key

 | @property
 | public_key() -> str

Return a public key in hex format.

Returns:

a public key string in hex format

address

 | @property
 | address() -> str

Return the address for the key pair.

Returns:

a display_address str

load_private_key_from_path

 | @classmethod
 | load_private_key_from_path(cls, file_name: str) -> Entity

Load a private key in hex format from a file.

Arguments:

  • file_name: the path to the hex file.

Returns:

the Entity.

sign_message

 | sign_message(message: bytes, is_deprecated_mode: bool = False) -> str

Sign a message in bytes string form.

Arguments:

  • message: the message we want to send
  • is_deprecated_mode: if the deprecated signing is used

Returns:

signature of the message in string form

sign_transaction

 | sign_transaction(transaction: Any) -> Any

Sign a transaction in bytes string form.

Arguments:

  • transaction: the transaction to be signed

Returns:

signed transaction

recover_message

 | recover_message(message: bytes, signature: str, is_deprecated_mode: bool = False) -> Tuple[Address, ...]

Recover the addresses from the hash.

Arguments:

  • message: the message we expect
  • signature: the transaction signature
  • is_deprecated_mode: if the deprecated signing was used

Returns:

the recovered addresses

get_address_from_public_key

 | @classmethod
 | get_address_from_public_key(cls, public_key: str) -> Address

Get the address from the public key.

Arguments:

  • public_key: the public key

Returns:

str

dump

 | dump(fp: BinaryIO) -> None

Serialize crypto object as binary stream to fp (a .write()-supporting file-like object).

Arguments:

  • fp: the output file pointer. Must be set in binary mode (mode='wb')

Returns:

None

FetchAIApi

class FetchAIApi(LedgerApi)

Class to interact with the Fetch ledger APIs.

__init__

 | __init__(**kwargs)

Initialize the Fetch.AI ledger APIs.

Arguments:

  • kwargs: key word arguments (expects either a pair of 'host' and 'port' or a 'network')

api

 | @property
 | api() -> FetchaiLedgerApi

Get the underlying API object.

get_balance

 | get_balance(address: Address) -> Optional[int]

Get the balance of a given account.

Arguments:

  • address: the address for which to retrieve the balance.

Returns:

the balance, if retrivable, otherwise None

transfer

 | transfer(crypto: Crypto, destination_address: Address, amount: int, tx_fee: int, tx_nonce: str, is_waiting_for_confirmation: bool = True, **kwargs, ,) -> Optional[str]

Submit a transaction to the ledger.

send_signed_transaction

 | send_signed_transaction(tx_signed: Any) -> Optional[str]

Send a signed transaction and wait for confirmation.

Arguments:

  • tx_signed: the signed transaction

is_transaction_settled

 | is_transaction_settled(tx_digest: str) -> bool

Check whether a transaction is settled or not.

get_transaction_receipt

 | get_transaction_receipt(tx_digest: str) -> Optional[Any]

Get the transaction receipt for a transaction digest (non-blocking).

Arguments:

  • tx_digest: the digest associated to the transaction.

Returns:

the tx receipt, if present

generate_tx_nonce

 | generate_tx_nonce(seller: Address, client: Address) -> str

Generate a random str message.

Arguments:

  • seller: the address of the seller.
  • client: the address of the client.

Returns:

return the hash in hex.

is_transaction_valid

 | is_transaction_valid(tx_digest: str, seller: Address, client: Address, tx_nonce: str, amount: int) -> bool

Check whether a transaction is valid or not (non-blocking).

Arguments:

  • seller: the address of the seller.
  • client: the address of the client.
  • tx_nonce: the transaction nonce.
  • amount: the amount we expect to get from the transaction.
  • tx_digest: the transaction digest.

Returns:

True if the random_message is equals to tx['input']

FetchAIFaucetApi

class FetchAIFaucetApi(FaucetApi)

Fetchai testnet faucet API.

get_wealth

 | get_wealth(address: Address) -> None

Get wealth from the faucet for the provided address.

Arguments:

  • address: the address.

Returns:

None