PartyB Allocation Suspension Gates

Suspended PartyBs can no longer manage allocation through allocate or allocation-transfer actions.

Summary

v0.8.6 aligns PartyB allocation management with suspension semantics. When a PartyB is suspended, it can no longer call allocateForPartyB or transferAllocation.

What changed

  • allocateForPartyB now checks that the PartyB signer is not suspended.
  • transferAllocation now checks that the PartyB signer is not suspended.
  • transferAllocation is also explicitly restricted to registered PartyBs.

A suspended PartyB can no longer move allocation between PartyA buckets after the protocol freezes its account.

Effect on callers

Bots and AccountLayer adapters should read isSuspended(partyB) before submitting either action. A suspended signer reverts with Accessibility: Sender is Suspended before allocation state changes or events are emitted.

The gate follows the effective signer returned by LibSigner.getSigner(), so relayed and AccountLayer calls are checked against the PartyB they represent rather than the transport address.