PartyB Position Actions Facet (0.8.4)
PartyB Position Actions Facet (0.8.4)
The PartyB Position Actions Facet enables Party B users to manage the positions they have open with partyA. After locking a quote (using the PartyB Quote Actions Facet or the grouped actions facet), Party B can open a position by specifying the filled amount and open price. In addition, they can fill close requests, accept cancellation of close requests, or trigger an emergency close if required. These actions help ensure that positions are managed according to the protocol rules and that the necessary solvency checks are performed before any state changes occur.
openPosition()
Opens a position for a specified quote. Party B can choose to fill the entire requested amount or only a portion of it. This function verifies that the quote meets the necessary conditions (e.g., minimum position size and sufficient solvency after the position is opened) and then updates nonce counters for both Party A and Party B. If a residual (new) quote is generated due to partial fill, additional events are emitted based on its status.
Function Signature:
Parameters:
quoteId: The ID of the quote for which the position is being opened.
filledAmount: The amount with which Party B is opening the position. This may be a fraction or the full requested amount.
openedPrice: The price at which the position is opened.
upnlSig: A
PairUpnlAndPriceSig
structure containing the Muon signature data for UPnL and price verification.
Example Usage:
Events Emitted:
OpenPosition:
Emitted immediately after the position is opened.
SendQuote (optional): If the openPosition call returns a new quote (i.e. a residual quote), and its status is PENDING, a
SendQuote
event is emitted with full quote details.AcceptCancelRequest (optional): If the new quote is canceled, an
AcceptCancelRequest
event is emitted (for backward compatibility).
fillCloseRequest()
Fills a close request for an open position. Party B can partially fill a close request (especially for LIMIT orders, which may be filled in multiple steps) by specifying the amount to fill and the closed price. This function verifies the provided UPnL and price signature, checks that closing the position maintains solvency, and then updates nonce counters for both parties.
Function Signature:
Parameters:
quoteId: The ID of the quote whose close request is being filled.
filledAmount: The amount by which the close request is being filled.
closedPrice: The price at which the position is being closed.
upnlSig: A
PairUpnlAndPriceSig
structure with UPnL and price signature data for verification.
Example Usage:
Events Emitted:
Also, a backward compatibility version is emitted without the closeId
.
acceptCancelCloseRequest()
Accepts a cancel close request for a specified quote. This function updates the quote’s status from CANCEL_CLOSE_PENDING
to OPENED
, effectively canceling the close request and reopening the position.
Function Signature:
Parameters:
quoteId: The ID of the quote for which the close request cancellation is accepted.
Example Usage:
Events Emitted:
AcceptCancelCloseRequest:
Also emits a backward compatibility event without the
closeId
.
emergencyClosePosition()
Allows Party B to emergency close a position for a specified quote. This function is typically used during emergency scenarios (e.g., when the system is in emergency mode, Party B is in emergency status, or if the symbol is delisted). It verifies that emergency conditions are met, checks the solvency of both parties based on the provided UPnL signature, and then closes the quote at the specified price.
Function Signature:
Parameters:
quoteId: The ID of the quote for which the emergency close is executed.
upnlSig: A
PairUpnlAndPriceSig
structure containing the Muon signature for UPnL and the closing price.
Example Usage:
Events Emitted:
EmergencyClosePosition:
Also, a backward compatibility event is emitted without the
closeId
.
Last updated