Monaco Protocol SDK v1.1.2
This release fixes thebalances WebSocket channel, which now sends the lock and unlock balance_update frames it documents. No request or response shape changed. Action item: if your client re-read spot balances over REST after placing or cancelling a resting spot order to see its lock move, you can apply the balances frame instead.
Fixed
The balances channel sends lock and unlock
Thebalances channel (sdk.ws.balances; WebSocket balances, authenticated) now sends a lock frame when a spot order rests on the book and an unlock frame when that lock is released. It had sent neither since spot orders moved onto the sequenced placement path.
lockarrives when a spot order rests: placed alone or in a batch, as a replacement, or as a passive TWAP child.unlockarrives on a cancel, partial cancel, expiry, a replace whose replacement doesn’t rest on the same row, a batch cancel or cancel-all, a self-trade-prevention cancel, or a TWAP parent cancelling its child.- Each frame carries the spot row after the step:
available,locked,totaland their raw forms,tokenSymbol,referenceId(the order), andversion, the same revision REST and the subscribe snapshot report. The fee-lock reconcile after an engine restart re-sizes a row across all of its resting orders and sends noreferenceId. - One step sends one frame per row. An order that fills and rests in one step sends only its
tradeframe, which already carries the lock, and a batch or replace sends one frame per row with its final state. - Market, IOC and FOK orders never rest, and margin orders lock margin collateral, so none of them sends
lockorunlock. The release still sends itsmovementsframe as before.
balances channel reference.

