Skip to content

crv.core.tables.exchange

Experimental API

crv.core.tables.exchange

Canonical descriptor for the 'exchange' table.

Purpose: - Generalized ownership-exchange events (trade/order/swap/gift/vote).

Schema: - columns: bucket i64, tick i64, venue_id str, token_id str, exchange_event_type str, side str, quantity f64, price f64, actor_agent_id str, counterparty_agent_id str, baseline_value f64, additional_payload struct - required: ["bucket","tick","venue_id","token_id","exchange_event_type","additional_payload"] - nullable: ["side","quantity","price","actor_agent_id","counterparty_agent_id","baseline_value"] - partitioning: ["bucket"] - version: pinned to crv.core.versioning.SCHEMA_V

Notes: - Core is zero-IO; IO layers (crv.io) materialize and validate row schemas. - See src/crv/core/README.md (Table Catalog) for details and downstream usage.

crv.core.tables.exchange.EXCHANGE_DESC module-attribute

EXCHANGE_DESC = crv.core.grammar.TableDescriptor(
    name=crv.core.grammar.TableName.EXCHANGE,
    columns={
        "bucket": "i64",
        "tick": "i64",
        "venue_id": "str",
        "token_id": "str",
        "exchange_event_type": "str",
        "side": "str",
        "quantity": "f64",
        "price": "f64",
        "actor_agent_id": "str",
        "counterparty_agent_id": "str",
        "baseline_value": "f64",
        "additional_payload": "struct",
    },
    partitioning=["bucket"],
    required=[
        "bucket",
        "tick",
        "venue_id",
        "token_id",
        "exchange_event_type",
        "additional_payload",
    ],
    nullable=[
        "side",
        "quantity",
        "price",
        "actor_agent_id",
        "counterparty_agent_id",
        "baseline_value",
    ],
    version=crv.core.versioning.SCHEMA_V,
)