Replies: 4 comments 11 replies
-
Depending on the user to trigger the close of expired user has several advantages
We should though look at the following things:
|
Beta Was this translation helpful? Give feedback.
-
I agree that the solution I propose will require some thought in terms of presentation. As would do the solution you guys discussed. I'm not against the alternative solution, but I do think we need to block the UI and display a loud message when we close expired positions. I slightly prefer the solution I suggested because it's less intrusive and I think we're less likely to interrupt the closure if the user has given permission first. We could still nudge the user towards closing the position by sending a push notification or showing a pop-up on startup (like you guys suggest), but ultimately give control to the user. |
Beta Was this translation helpful? Give feedback.
-
I thought this is actually a complex topic so I'll write a longer answer to ensure we are aligned :) Some conceptsLet's separate the concepts of
As long as we are focusing on perpetual futures, a position does not expire. Which means, it might only one party be interested in closing a position (or DLC) while the other party wants to keep it open. Note: I'm aware that we haven't implemented perpetual futures yet, but it is the plan. Let's specify things a bit more:
The above might not be that relevant for this discussion, but I thought I mention it again :) A DLC expired, what do we do?We identified that a (perpetual) position does not expire, only the DLC expires.
The latter one should be avoided because of on-chain cost but is inevitable if a user never comes online again. The former one is the preferred action but it requires both parties to be online. If a DLC has expired, both parties get the price what the oracle attests to. This may or may not be favorable for either of the parties. _As of today, the coordinator proposes to collaboratively remove an expired DLC whenever its counterparty is online. How long can a user come online to collaboratively remove a DLC?If a DLC has expired, any party should go on-chain asap as in the worst case the refund timelock might kick in and both parties can refund their initial collateral. As of today, the coordinator waits indefinitely for the other party to come online so that the DLC can be removed collaboratively. What does this mean for the position?The coordinator's goal is to stay net zero in regards to all of his positions. He does not want to take exchange risk and hedges his position by always having two matching positions open at all times. Ideal caseIn an ideal case, a user comes online before his DLC expires and triggers a counter trade, i.e. he closes his position. The non-ideal caseIf a DLC expired, the coordinator needs to find a new party asap or he runs in the danger of taking up exchange risk. The ideal non-ideal caseIdeally, there is a suitable order waiting in the orderbook and the coordinator can just open a new position with another trader. The non-ideal non-ideal caseIf a DLC expires and there is no suitable order in the orderbook,
(1.) is not feasible because (i) it might not be in the interest of the counterparty, (ii) there might not be a single position which matches exactly the size he needs to close ProposalsIf a DLC expires:
|
Beta Was this translation helpful? Give feedback.
-
We all agreed with #1051 (comment). |
Beta Was this translation helpful? Give feedback.
-
Here are some things I've observed:
I suggest that when the coordinator expires a position it should just mean that the closing price has been determined. If the counterparty comes online any time after expiry they are able to execute the closure of the position at the predetermined price.
Obviously the coordinator needs to deal with users that never execute the collaborative closure, but that is equivalent to users who never come back online as things stand. We need to introduce a policy of force-closure if a user does not execute the collaborative closure of the DLC channel either way.
This proposal aims to avoid situations where the app user closes the app whilst a collaborative closure is taking place. Currently the user is not told that this is happening. There are alternative approaches to deal with this problem, but I like giving the user explicit control because it provides greater guarantees that they will not navigate away from the app and it is more self-custodial.
Beta Was this translation helpful? Give feedback.
All reactions