import json from exprove.contracts import LocalExecutionTask, SharedMarketContext, PlanDelta, Attestation from exprove.contracts import compute_delta from exprove.crypto import generate_signing_key, verify_key_hex_from_signing_key, sign_message_hex, verify_signature_hex def test_sign_and_verify_plan_delta(): task = LocalExecutionTask(task_id="t-sig", instrument="AAPL", venue="V1", objective="VWAP", constraints={}) ctx = SharedMarketContext(signals={"depth": 5}, version=1, contract_id="c-sig") delta = compute_delta(task, ctx) # canonical payload for signing payload = json.dumps(delta.to_dict(), sort_keys=True).encode("utf-8") sk = generate_signing_key() vk_hex = verify_key_hex_from_signing_key(sk) sig_hex = sign_message_hex(sk, payload) # attach signature to attestation and verify a = Attestation(entry=delta.to_json(), signer=vk_hex, timestamp=0.0, contract_id=ctx.contract_id, version=1, signature=sig_hex) assert verify_signature_hex(vk_hex, payload, a.signature) is True