30 lines
925 B
Python
30 lines
925 B
Python
"""Deterministic execution planner for ExProve."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import hashlib
|
|
from typing import Any, Dict
|
|
|
|
from .contracts import LocalExecutionTask, SharedMarketContext, PlanDelta
|
|
|
|
|
|
def _deterministic_delta(task: LocalExecutionTask, ctx: SharedMarketContext) -> Dict[str, Any]:
|
|
seed_input = f"{task.task_id}:{task.instrument}:{task.venue}:{ctx.version}:{ctx.contract_id}"
|
|
digest = hashlib.sha256(seed_input.encode("utf-8")).hexdigest()
|
|
return {
|
|
"route": [task.venue],
|
|
"size_adjustment": int(digest[:6], 16) % 1000,
|
|
"timestamp": 0.0,
|
|
"hash_seed": digest,
|
|
}
|
|
|
|
|
|
def compute_plan_delta(task: LocalExecutionTask, ctx: SharedMarketContext, *, author: str) -> PlanDelta:
|
|
return PlanDelta(
|
|
delta=_deterministic_delta(task, ctx),
|
|
timestamp=0.0,
|
|
author=author,
|
|
contract_id=ctx.contract_id,
|
|
privacy_budget=None,
|
|
)
|