idea160-exprove-open-source/exprove/engine.py

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,
)