Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bailout Mechanisms #33

Open
Psyf opened this issue Sep 12, 2022 · 0 comments
Open

Bailout Mechanisms #33

Psyf opened this issue Sep 12, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@Psyf
Copy link
Contributor

Psyf commented Sep 12, 2022

The goal of Barren Wuffet and the underlying smart contracts is to make guardrails for traders, such that investors can have some peace of mind about the collateral they put in. Once a fund is deployed, the trader has control over these funds within the constraints of the system and investors can't pull their money out.

However, there are at least 2 ways in which investors lose out:

  1. The trader raises with a lock-in for 100 days, and does some horrible trades on day 1. Investors want out, but trader won't cancel the fund (would lose managementFeePercentage).
  2. The trader opens a position on protocol X, and does not have enough collateral to close it at the end. All funds are stuck even if only 1% of the collateral pertains to the open position.

I suggest a bailout mechanism to counteract these situations - where investors can vote (majority wins) to do one of the following.

  1. Change the fund's manager, essentially giving someone else control over the funds; or
  2. Force the contract to give back whatever collateral is left, even if positions remain open.

We can have a Bailout smart contract, which can call 2 corresponding functions on a Fund Instance, guarded by onlyBailoutContract if > 50% votes by investors is reached (vote proportional to stake):

  1. function changeManager(address newManager) onlyDeployedFund onlyBailoutContract public;
  2. function forceClose() onlyClosableFund onlyBailoutContract public; and then people can withdraw.
@Psyf Psyf added the enhancement New feature or request label Sep 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant