ImplicitCoin

class cometa.transaction_builder.balancing.implicit_coin.ImplicitCoin(withdrawals, deposits, reclaim_deposits)[source]

Bases: object

Represents the implicit coin values in a transaction.

Implicit coins are ADA values that are not explicitly present as inputs or outputs but affect the transaction balance. These include: - Withdrawals from reward accounts - Deposits for registrations (stake keys, pools, governance actions) - Reclaimed deposits from deregistrations

Example

>>> from cometa.transaction_builder.balancing import compute_implicit_coin
>>> implicit = compute_implicit_coin(tx, protocol_params)
>>> print(f"Withdrawals: {implicit.withdrawals}")
>>> print(f"Deposits: {implicit.deposits}")
>>> print(f"Reclaimed: {implicit.reclaim_deposits}")
Parameters:
  • withdrawals (int)

  • deposits (int)

  • reclaim_deposits (int)

withdrawals: int

The total amount of reward withdrawals in lovelace.

deposits: int

The total amount of deposits required in lovelace.

__eq__(other)

Return self==value.

__hash__ = None
__init__(withdrawals, deposits, reclaim_deposits)
Parameters:
  • withdrawals (int)

  • deposits (int)

  • reclaim_deposits (int)

Return type:

None

__repr__()

Return repr(self).

reclaim_deposits: int

The total amount of deposits being reclaimed in lovelace.

property net_value: int

Calculate the net implicit coin value.

Returns:

withdrawals + reclaim_deposits - deposits. Positive means the transaction gains ADA implicitly. Negative means the transaction loses ADA implicitly.

Return type:

The net value


cometa.transaction_builder.balancing.implicit_coin.compute_implicit_coin(transaction, protocol_params)[source]

Compute the implicit coin balance for a transaction.

This function calculates the implicit coin values that affect the transaction balance but are not represented as explicit inputs or outputs. These include reward withdrawals, deposit requirements, and deposit reclaims.

Parameters:
  • transaction (Transaction) – The transaction to analyze.

  • protocol_params (ProtocolParameters) – The protocol parameters needed for deposit calculations.

Returns:

An ImplicitCoin dataclass containing the computed values.

Raises:

CardanoError – If the computation fails.

Return type:

ImplicitCoin

Example

>>> from cometa.transaction_builder.balancing import compute_implicit_coin
>>> from cometa.protocol_params import ProtocolParameters
>>>
>>> # Assume tx is a transaction with withdrawals
>>> implicit = compute_implicit_coin(tx, protocol_params)
>>> print(f"Net implicit value: {implicit.net_value} lovelace")