boltAsyncSRC20EventWatcher

Asynchronous SRC20 event watcher class

Polling-based SRC20 event watcher that runs as an asyncio.Task.

Typically created via async_watch_src20_events() or async_watch_src20_events_with_key() rather than instantiated directly.

Constructor

class AsyncSRC20EventWatcher:
    def __init__(
        self,
        w3: AsyncWeb3,
        aes_key: Bytes32,
        *,
        token_address: ChecksumAddress | None = None,
        on_transfer: AsyncTransferCallback | TransferCallback | None = None,
        on_approval: AsyncApprovalCallback | ApprovalCallback | None = None,
        on_error: AsyncErrorCallback | ErrorCallback | None = None,
        poll_interval: float = 2.0,
        from_block: int | str = "latest",
    ) -> None

Parameters

Parameter
Type
Default
Description

w3

AsyncWeb3

Async Web3 instance

aes_key

32-byte AES-256 viewing key

token_address

ChecksumAddress | None

None

SRC20 contract to filter (None = all tokens)

on_transfer

Callback

None

Async or sync callback for Transfer events

on_approval

Callback

None

Async or sync callback for Approval events

on_error

Callback

None

Async or sync callback for errors

poll_interval

float

2.0

Seconds between polls

from_block

int | "latest"

"latest"

Starting block

Methods

Method
Description

await start()

Start the async polling task

await stop()

Cancel the task and wait for cleanup

is_running

Property — True if task is active

Async Context Manager

Notes

  • Callbacks can be sync or async — the watcher detects and awaits coroutines automatically

  • CancelledError is suppressed during shutdown

  • If on_error is not provided, errors are logged at DEBUG level

See Also

Last updated