YIP: Upgrade Treasury Vault to solve gas subsidy, gitcoin and more

Authors

@banteg

Implementers

@andre.cronje

Summary

This proposal bundles a few improvements together which have compounding effects. It will solve for gas subsidy, gitcoin grants, inability to convert other Curve tokens into rewards for governance stakers.

Abstract

Add split functionality to TreasuryVault which can send the rewards to multiple destinations before sending them to governance staking contract. Add ability to withdraw from Curve pools. Add ability to trade using Uniswap.

Motivation

There is a very good competing proposal which solves for gas refunds by modifying harvest() function. But here is some rationale for using TreasuryVault instead:

  1. Putting this in harvest() doesn’t refund on failed txs, which can eat up $500 by the moment it fails
  2. Requires redeploying and migrating all strategies, which can’t be done easily for the strategies yDAI and yWETH vaults are currently positioned in.
  3. Treasury contract needs upgrading anyway, I was working on a converter and reward distribution bot and was stuck with OneSplit not being smart enough to unwrap Curve LP tokens.
  4. We’ll be able to solve converting other assets finally and distribute the rewards accumulated from vaults other than yUSD.
  5. We can bundle this with gitcoin proposal, which is time-sensitive, since the next round starts on September 15th.

Specification

  1. Develop and deploy a TreasuryVaultV2 contract with these additional features:

    • Ability to whitelist additional CurveDeposit contracts when more pools are created.
    • Unwrap into underlying Curve LP coins or a single coin (CurveDeposit has us covered here).
    • Trade via Uniswap in addition to OneSplit, this helps immensely with testing and optimizing the bot which does the trading.
    • Disperse-like split functionality which can send different amounts to multiple recipients.
    • The split functionality should also call notifyRewardAmount when it sends rewards to ygov.
  2. This proposal will require some additional work for gas accounting, which can be delegated to a bot.

Urgency

Given the gas costs are eating through our budget at $25k/day rate, I propose to have an expedited vote for this with a 1-day duration. We should have the implementation ready shortly after.

Voting

For: Implement the proposal
Against: Do not implement the proposal

Poll: Vote now on yearn.snapshot.page

18 Likes

The poll is live
https://yearn.snapshot.page/#/yearn/proposal/QmaWoU9y6P1P7FTc4dH8gwoorwdMXM2oZbGLGRePM3MfUV

2 Likes

Agree, it is much faster to implement a gas subsidy this way compared to updating all current strategies. We can figure out the proportions for gas vs grant vs governance later since this is urgent. This proposal will lay the ground work for that. Worst-case scenario, we overpay some gas now but still figure out a better way later. Either through bots or Callers calling both the old harvest() and the new TreasuryVaultV2 functions in the same tx.

The harvest() changes may be beneficial for future strategies, but we need gas now.

3 Likes

Voted FOR implementing

1 Like

I’m trying to vote, but it’s indicating that I have 0 YFI stake balance in the Snapshot page, though I have YFI staked in Governance V2 (https://ygov.finance/stake). How do I stake in a Snapshot proposal, if not through staking in Governance V2? I recognize that this is probably a really stupid question, but hey, you’ve got to start somewhere…Can anyone help me out?

Trying to vote but it says wrong signature, my finger is broken or something.

I’m trying to vote, but it’s indicating that I have 0 YFI stake balance in the Snapshot page, though I have YFI staked in Governance V2 (https://ygov.finance/stake). How do I stake in a Snapshot proposal, if not through staking in Governance V2? I recognize that this is probably a really stupid question, but hey, you’ve got to start somewhere…Can anyone help me out?

1 Like

After you vote, the system will read the Ygov contract and show proper weight.
I have the same question as you do. Just sign the message and vote it anyway.

2 Likes

Should I not expect to see my wallet address at the bottom of the page, after my vote was cast though? How can I know that it was actually cast if I don’t see my vote listed on the page? I just have to take for granted that my signature went through?

All for it. Yes Please. Anything to help mitigate the damage high gas fees are causing on everyone’s returns in DeFi.

It’s so awesome to see a Dev Team dedicated to fixing problems now instead of this Fall, next year, or maybe 2022. ETH 2.0 developers seem to fine with as a likely fate and reality.

What I’m a bit upset about is that there never seems to be a sense of urgency from those Devs to fix high gas fee issues. Like we’re all supposed to be placated and somehow happy with the fact that ETH 2.0 is taking forever but will be here. Someday. Meanwhile, we need solutions today.

OTOH, in this project things happen at a lightning pace, there’s volunteers aplenty and community expertise coming in from all over the world. I’ve only seen something like this in the early stages of BTC and ETH. It makes it easy for me and many volunteers to spend hours chipping in and helping out, in any way we can. I love that there’s a sense of innovation & purpose to do something urgently that’s hurting us financially as a yEarn and DeFi community.

In this project, you can get a sense of what Aristotle was talking about when he once said: The whole is greater than the sum of its parts.

2 Likes

The proposal has passed with unanimous support.

  • Implement the proposal - 1.38k YFI - 100%
  • Reject the proposal - 0 YFI - 0%
6 Likes

Since the development of the new treasury it still undergoing and the issue is pressing

  • 265 WETH sent from TreasuryVault to Andre as a gas reimbursement. See transaction.

7 Likes