FeedProjects
Developers
Settings
๐ŸŽ‰ A new chapter begins: Boardroom has joined Agora
Learn more
protocol logo
Explore / Projects
Indexed

Proposals

Members

Information

Create Proposal

Indexed

ProposalsMembersInformation
Proposal
Back to Proposals
closedEnded 4 years ago ยท Snapshot (Offchain)

Return assets drained from FFF, CC10, DEFI5

By 0x236E...cE4d46

NOTE This proposal will only return assets to users who held FFF, CC10 or DEFI5 at the time Proposal 16 was executed. It does not return any assets other than those drained from those index pools to the Indexed treasury.

Context

In November, the Indexed DAO passed Proposal 16 to drain the assets in DEFI5, CC10, FFF and their respective market pairs. After the October hack, these pools were no longer functioning and were losing value. Proposal 16 was intended to prevent further losses by transferring the assets underlying the affected pools to the DAO, where they would be used to fund a compensation plan.

It has since become clear that this compensation plan would unfairly affect holders of these assets, as their tokens would be distributed amongst a larger pool of users who had already redeemed the value of their tokens. The DAO previously passed a Snapshot proposal to return these assets to users via a merkle distribution. For more context, see that proposal: https://gov.indexed.finance/#/proposal/0xee15c98c58c2cbb8dc29b0143ab75c8ce65eed6e31fd478e6a2d7a07041e762f

After building a database of token holders at the time of the proposal, weโ€™ve realized that the merkle distribution plan could negatively affect some users, particularly those who held assets in smart contracts which can only interact with the index pools according to their expected behavior. Because many holders of the tokens are unverified smart contracts, we can not guarantee that this merkle distribution wouldnโ€™t result in some tokens being locked.

Solution

To ensure the fairest redistribution of assets, we think the assets should simply be returned to the index pools, which still have their original balance records because the pool contracts have been locked since the proposal was executed. The pool contracts would then have their implementations set to a contract which disables all non-view pool functions aside from basic ERC20 transfers and exitPool, which burns pool tokens for all underlying assets. This will prevent any arbitrage which might affect the value of extracted underlying assets for users but should maintain interoperability with smart contracts holding tokens on behalf of users so long as they can at least be made to perform an ERC20 transfer of the pool tokens.

Each index pool will receive exactly the amount of each underlying asset which was taken by the treasury in Proposal 16. Users will then be able to burn their pool tokens for underlying tokens

This new pool implementation has been written and its code can be viewed here: https://github.com/d1ll0n/drain-reversal/blob/main/contracts/RestrictedIndexPool.sol

For Uniswap LP tokens, we have created a secondary contract called UniBurn. UniBurn will allow users to โ€œburnโ€ their Uniswap LP tokens (transfer them to the null address) in order to redeem the index tokens and ETH their LP tokens were previously worth.

If both pieces of this proposal are executed, users will be able to redeem their tokens as follows. If either proposal fails, no assets will be transferred out of the treasury.

Index Pools

Call one of the following functions on the appropriate pool contract:

  • function exitPool(uint256 poolAmountIn, uint256[] calldata minAmountsOut)
  • function exitPoolTo(address to, uint256 poolAmountIn)
  • function redeemAll()

LP Tokens

Call the appropriate function on the UniBurn contract for the index pool whose LP tokens you held on:

  • function redeemFFFLP()
  • function redeemDEFI5LP()
  • function redeemCC10LP()

Proposal #1 Actions

  1. Approve Redistributor to spend 24.51133902686067268 WETH
  2. Approve Redistributor to spend 6558.043534141821704793 UNI
  3. Approve Redistributor to spend 242.969521553963029458 AAVE
  4. Approve Redistributor to spend 151.734388687236707223 COMP
  5. Approve Redistributor to spend 562.7488494101103946 SNX
  6. Approve Redistributor to spend 11594.900216754992505371 CRV
  7. Approve Redistributor to spend 11.094471289438530485 MKR
  8. Approve Redistributor to spend 112967.732688466399021387 SUSHI
  9. Approve Redistributor to spend 0.002548769490053096 YFI
  10. Approve Redistributor to spend 8.027975305505807303 UMA

Proposal #2 Actions

  1. Approve Redistributor to spend 88.900666814888137214 BAT
  2. Approve Redistributor to spend 523.085971072278439194 OMG
  3. Approve Redistributor to spend 0.47902696 WBTC
  4. Approve Redistributor to spend 4944.681286065833316986 DEGEN
  5. Set sigma pool implementation to SigmaFallThrough
  6. Set core pool implementation to CoreFallThrough
  7. Call restoreBalances() on Redistributor
Continue Reading
Connect Wallet to Add Note
0
Votes 44
VoterCast PowerVote & Rationale
0x9D31...93abb5
200,002

Yes

0xef76...E3F8dB
145,398

Yes

0x9d91...1D5242
54,014

Yes

0xfF5F...9A5f71
4,842

Yes

0x6c5f...0c00a4
3,309

Yes

SHOW MORE
VOTE POWER
0
Connect Wallet
Proposal Status
  • Thu June 02 2022, 11:11 pmVoting Period Starts
  • Mon June 06 2022, 05:00 pmEnd Voting Period
Current Results

1-Yes

425,847.756

DocumentationBrandingContact Us
Home
This Project is Currently Disabled

If you would like to enable it, please checkout below.

Boardroom Subscription

Sign up for an individual subscription (access all projects on the platform)

Subscribe
Enable Project

Enable the entire project for every user

Enable Project
Contact Us