fix: make corporate actions atomic and recoverable
Publish verified PortfolioHub image / verify (push) Canceled after 0s
Publish verified PortfolioHub image / publish (push) Canceled after 0s

This commit is contained in:
2026-09-13 19:33:07 +09:00
parent 2b470c735f
commit c7d8235bde
16 changed files with 711 additions and 94 deletions
+6 -1
View File
@@ -16,7 +16,12 @@ def quantize_stored_decimal(value: Decimal) -> Decimal:
def canonical_payload_hash(payload: object) -> str:
if hasattr(payload, "model_dump"):
payload = payload.model_dump(mode="json", exclude_none=True)
excluded_fields = (
{"resume_partial"} if not getattr(payload, "resume_partial", False) else set()
)
payload = payload.model_dump(mode="json", exclude_none=True, exclude=excluded_fields)
elif isinstance(payload, dict) and payload.get("resume_partial") is False:
payload = {key: value for key, value in payload.items() if key != "resume_partial"}
encoded = json.dumps(payload, sort_keys=True, separators=(",", ":"), ensure_ascii=False).encode()
return hashlib.sha256(encoded).hexdigest()