import json from tradecipher_blockchain_backed_privacy_pr.contracts import LocalTrade, SharedSignals, PlanDelta def test_local_trade_json_roundtrip(): lt = LocalTrade( trade_id="T1", product_id="P-XYZ", venue="VenueA", price=123.45, size=10, side="buy", timestamp=1620000000.0, signer_id="Signer1", signature="sig123", ) j = lt.to_json() # Ensure it's valid JSON and contains expected fields obj = json.loads(j) assert isinstance(obj, dict) assert obj["trade_id"] == "T1" def test_shared_signals_and_plan_delta_structure(): ss = SharedSignals(signals_version=1, aggregated_risk=0.5, margin_impact=0.1, liquidity_metric=0.9) pd = PlanDelta(delta_version=1, timestamp=1620000001.0, allocations={"T1": 0.5}, cryptographic_tag="tag") assert isinstance(ss.to_json(), str) assert isinstance(pd.to_json(), str)