aea.decision_maker.default

This module contains the decision maker class.

SigningDialogues Objects

class SigningDialogues(BaseSigningDialogues)

This class keeps track of all oef_search dialogues.

__init__

 | __init__(self_address: Address, **kwargs) -> None

Initialize dialogues.

Arguments:

  • self_address: the address of the entity for whom dialogues are maintained

Returns:

None

StateUpdateDialogues Objects

class StateUpdateDialogues(BaseStateUpdateDialogues)

This class keeps track of all oef_search dialogues.

__init__

 | __init__(self_address: Address, **kwargs) -> None

Initialize dialogues.

Arguments:

  • self_address: the address of the entity for whom dialogues are maintained

Returns:

None

GoalPursuitReadiness Objects

class GoalPursuitReadiness()

The goal pursuit readiness.

Status Objects

class Status(Enum)

The enum of the readiness status.

In particular, it can be one of the following:

  • Status.READY: when the agent is ready to pursuit its goal
  • Status.NOT_READY: when the agent is not ready to pursuit its goal

__init__

 | __init__()

Instantiate the goal pursuit readiness.

is_ready

 | @property
 | is_ready() -> bool

Get the readiness.

update

 | update(new_status: Status) -> None

Update the goal pursuit readiness.

Arguments:

  • new_status: the new status

Returns:

None

OwnershipState Objects

class OwnershipState(BaseOwnershipState)

Represent the ownership state of an agent (can proxy a ledger).

__init__

 | __init__()

Instantiate an ownership state object.

Arguments:

  • decision_maker: the decision maker

set

 | set(amount_by_currency_id: CurrencyHoldings = None, quantities_by_good_id: GoodHoldings = None, **kwargs, ,) -> None

Set values on the ownership state.

Arguments:

  • amount_by_currency_id: the currency endowment of the agent in this state.
  • quantities_by_good_id: the good endowment of the agent in this state.

apply_delta

 | apply_delta(delta_amount_by_currency_id: Dict[str, int] = None, delta_quantities_by_good_id: Dict[str, int] = None, **kwargs, ,) -> None

Apply a state update to the ownership state.

This method is used to apply a raw state update without a transaction.

Arguments:

  • delta_amount_by_currency_id: the delta in the currency amounts
  • delta_quantities_by_good_id: the delta in the quantities by good

Returns:

None

is_initialized

 | @property
 | is_initialized() -> bool

Get the initialization status.

amount_by_currency_id

 | @property
 | amount_by_currency_id() -> CurrencyHoldings

Get currency holdings in this state.

quantities_by_good_id

 | @property
 | quantities_by_good_id() -> GoodHoldings

Get good holdings in this state.

is_affordable_transaction

 | is_affordable_transaction(terms: Terms) -> bool

Check if the transaction is affordable (and consistent).

E.g. check that the agent state has enough money if it is a buyer or enough holdings if it is a seller. Note, the agent is the sender of the transaction message by design.

Arguments:

  • terms: the transaction terms

Returns:

True if the transaction is legal wrt the current state, false otherwise.

is_affordable

 | is_affordable(terms: Terms) -> bool

Check if the tx is affordable.

Arguments:

  • terms: the transaction terms

Returns:

whether the transaction is affordable or not

update

 | update(terms: Terms) -> None

Update the agent state from a transaction.

Arguments:

  • terms: the transaction terms

Returns:

None

apply_transactions

 | apply_transactions(list_of_terms: List[Terms]) -> "OwnershipState"

Apply a list of transactions to (a copy of) the current state.

Arguments:

  • list_of_terms: the sequence of transaction terms.

Returns:

the final state.

__copy__

 | __copy__() -> "OwnershipState"

Copy the object.

Preferences Objects

class Preferences(BasePreferences)

Class to represent the preferences.

__init__

 | __init__()

Instantiate an agent preference object.

set

 | set(exchange_params_by_currency_id: ExchangeParams = None, utility_params_by_good_id: UtilityParams = None, **kwargs, ,) -> None

Set values on the preferences.

Arguments:

  • exchange_params_by_currency_id: the exchange params.
  • utility_params_by_good_id: the utility params for every asset.

is_initialized

 | @property
 | is_initialized() -> bool

Get the initialization status.

Returns True if exchange_params_by_currency_id and utility_params_by_good_id are not None.

exchange_params_by_currency_id

 | @property
 | exchange_params_by_currency_id() -> ExchangeParams

Get exchange parameter for each currency.

utility_params_by_good_id

 | @property
 | utility_params_by_good_id() -> UtilityParams

Get utility parameter for each good.

logarithmic_utility

 | logarithmic_utility(quantities_by_good_id: GoodHoldings) -> float

Compute agent's utility given her utility function params and a good bundle.

Arguments:

  • quantities_by_good_id: the good holdings (dictionary) with the identifier (key) and quantity (value) for each good

Returns:

utility value

linear_utility

 | linear_utility(amount_by_currency_id: CurrencyHoldings) -> float

Compute agent's utility given her utility function params and a currency bundle.

Arguments:

  • amount_by_currency_id: the currency holdings (dictionary) with the identifier (key) and quantity (value) for each currency

Returns:

utility value

utility

 | utility(quantities_by_good_id: GoodHoldings, amount_by_currency_id: CurrencyHoldings) -> float

Compute the utility given the good and currency holdings.

Arguments:

  • quantities_by_good_id: the good holdings
  • amount_by_currency_id: the currency holdings

Returns:

the utility value.

marginal_utility

 | marginal_utility(ownership_state: BaseOwnershipState, delta_quantities_by_good_id: Optional[GoodHoldings] = None, delta_amount_by_currency_id: Optional[CurrencyHoldings] = None, **kwargs, ,) -> float

Compute the marginal utility.

Arguments:

  • ownership_state: the ownership state against which to compute the marginal utility.
  • delta_quantities_by_good_id: the change in good holdings
  • delta_amount_by_currency_id: the change in money holdings

Returns:

the marginal utility score

utility_diff_from_transaction

 | utility_diff_from_transaction(ownership_state: BaseOwnershipState, terms: Terms) -> float

Simulate a transaction and get the resulting utility difference (taking into account the fee).

Arguments:

  • ownership_state: the ownership state against which to apply the transaction.
  • terms: the transaction terms.

Returns:

the score.

is_utility_enhancing

 | is_utility_enhancing(ownership_state: BaseOwnershipState, terms: Terms) -> bool

Check if the tx is utility enhancing.

Arguments:

  • ownership_state: the ownership state against which to apply the transaction.
  • terms: the transaction terms

Returns:

whether the transaction is utility enhancing or not

__copy__

 | __copy__() -> "Preferences"

Copy the object.

DecisionMakerHandler Objects

class DecisionMakerHandler(BaseDecisionMakerHandler)

This class implements the decision maker.

__init__

 | __init__(identity: Identity, wallet: Wallet)

Initialize the decision maker.

Arguments:

  • identity: the identity
  • wallet: the wallet

handle

 | handle(message: Message) -> None

Handle an internal message from the skills.

Arguments:

  • message: the internal message

Returns:

None