diff --git a/arbsphere/energi_bridge.py b/arbsphere/energi_bridge.py index 9da9794..1f5dd17 100644 --- a/arbsphere/energi_bridge.py +++ b/arbsphere/energi_bridge.py @@ -40,6 +40,10 @@ class EnergiBridge: "legs": list(delta.legs), "total_size": float(delta.total_size), "delta_id": delta.delta_id, + # Extended provenance fields for deterministic replay and auditing + "timestamp": getattr(delta, "timestamp", None), + "parent_delta_id": getattr(delta, "parent_id", None), + "signature": getattr(delta, "signature", None), } diff --git a/arbsphere/go_registry.py b/arbsphere/go_registry.py index ae87471..5f4b5ff 100644 --- a/arbsphere/go_registry.py +++ b/arbsphere/go_registry.py @@ -12,3 +12,7 @@ class GoCRegistry: def get_adapter(self, name: str) -> Any: return self._registry.get(name) + + def list_adapters(self) -> list: + """Return the list of registered adapter names in deterministic order.""" + return sorted(self._registry.keys()) diff --git a/arbsphere/primitives.py b/arbsphere/primitives.py index 00ca84f..e723eca 100644 --- a/arbsphere/primitives.py +++ b/arbsphere/primitives.py @@ -8,6 +8,10 @@ class LocalArbProblem: target_mispricing: float liquidity_budget: float latency_budget: float + # Optional identifiers for cross-system tracing; kept optional to remain + # backwards-compatible with tests that instantiate with the original fields. + id: str | None = None + venue: str | None = None @dataclass