Skip to content

maker.session_logging

maker.session_logging

Structured maker CoinJoin session logging.

Attributes

CoinJoinMessageDirection = Literal['received', 'sent'] module-attribute

Functions:

log_coinjoin_message(direction: CoinJoinMessageDirection, command: str, *, peer: str, transport: str, payload_length: int, state: str, outcome: str = 'accepted', deliveries: int | None = None) -> None

Log one payload-free CoinJoin protocol message event at DEBUG.

Source code in maker/src/maker/session_logging.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def log_coinjoin_message(
    direction: CoinJoinMessageDirection,
    command: str,
    *,
    peer: str,
    transport: str,
    payload_length: int,
    state: str,
    outcome: str = "accepted",
    deliveries: int | None = None,
) -> None:
    """Log one payload-free CoinJoin protocol message event at DEBUG."""
    normalized_command = command.lstrip("!")
    details = (
        f"CoinJoin message {direction}: command=!{normalized_command}, peer={peer}, "
        f"transport={transport}, payload_len={payload_length}, state={state}, outcome={outcome}"
    )
    if deliveries is not None:
        details += f", deliveries={deliveries}"
    logger.bind(
        cj_event=True,
        direction=direction,
        command=normalized_command,
        peer=peer,
        transport=transport,
        payload_length=payload_length,
        state=state,
        outcome=outcome,
        deliveries=deliveries,
    ).debug(details)