mirror of
https://github.com/luxfi/mpc.git
synced 2026-09-24 00:26:24 +00:00
- F2: handleApproveOperation now runs tryApproveOperation inside RunInTransaction with CAS guard on (ApprovedBy, Status). Two concurrent final-approvers can no longer both satisfy quorum and both trigger signing; exactly one wins, the other retries or sees "operation not in pending_approval state". 5 retries with backoff, then 409 conflict. - F23: initiator can NEVER self-approve, regardless of how many approvals already exist. Previous code only blocked self-approval when len(ApprovedBy) == 0. - F10: list handlers (operations + audit) now call Count() on the filtered query before fetching the page; totalItems reflects the real count, not len(page). Added page/perPage response fields. - F20: operation status filter is validated against the spec enum (pending_approval, approved, signed, rejected, failed, expired). Unknown values return 400 instead of silently dropping the filter.