You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implementations of MakerDao surplus auctions, triggered on `vow.flap`. The current featured Flapper is `FlapperUniV2`.
3
+
Implementations of MakerDAO surplus auctions, triggered on `vow.flap`.
4
4
5
-
### FlapperUniV2
5
+
### Splitter
6
6
7
-
Exposes a `kick` operation to be triggered periodically. Its logic withdraws `DAI` from the `vow` and buys `gem` tokens on Uniswap v2. The acquired tokens, along with a proportional amount of additional `DAI` withdrawn from the `vow`, are deposited back into the liquidity pool. Finally, the minted LP tokens are sent to a predefined `receiver` address.
7
+
Exposes a `kick` operation to be triggered periodically. Its logic withdraws `USDS` from the `vow` and splits it in two parts. The first part (`burn`) is sent to the underlying `flapper` contract to be processed by the burn engine. The second part (`WAD - burn`) is distributed as reward to a `farm` contract. The `kick` cadence is determined by the `hop` value.
8
8
9
9
Configurable Parameters:
10
+
*`burn` - The percentage of the `vow.bump` to be moved to the underlying `flapper`. For example, a value of 0.70 \*`WAD` corresponds to funneling 70% of the `USDS` to the burn engine.
10
11
*`hop` - Minimum seconds interval between kicks.
12
+
*`flapper` - The underlying burner strategy (e.g. the address of `FlapperUniV2SwapOnly`).
13
+
*`farm` - The staking rewards contract receiving the rewards.
14
+
15
+
### FlapperUniV2
16
+
17
+
Exposes an `exec` operation to be triggered periodically by the `Splitter` (at a cadence determined by `Splitter.hop()`). Its logic withdraws `USDS` from the `Splitter` and buys `gem` tokens on Uniswap v2. The acquired tokens, along with a proportional amount of `USDS` (saved from the initial withdraw) are deposited back into the liquidity pool. Finally, the minted LP tokens are sent to a predefined `receiver` address.
18
+
19
+
Configurable Parameters:
11
20
*`pip` - A reference price oracle, used for bounding the exchange rate of the swap.
12
21
*`want` - Relative multiplier of the reference price to insist on in the swap. For example, a value of 0.98 * `WAD` allows for a 2% worse price than the reference.
13
22
14
-
#### Notes:
23
+
#### Note:
15
24
16
-
* As a `kick` operation also withdraws `DAI` for depositing in the pool (and not only for swapping), it can in practice reduce the Surplus Buffer to below `vow.bump`.
17
-
18
-
* Although the Flapper interface is conformant with the Emergency Shutdown procedure and will stop operating when it is triggered, LP tokens already sent to the receiver do not have special redeeming handling. Therefore, in case the Pause Proxy is the receiver and governance does not control it, the LP tokens can be lost or seized by a governance attack.
25
+
* Although the Flapper interface is conformant with the Emergency Shutdown procedure and will stop operating when it is triggered, LP tokens already sent to the `receiver` do not have special redeeming handling. Therefore, in case the Pause Proxy is the `receiver` and governance does not control it, the LP tokens can be lost or seized by a governance attack.
19
26
20
27
### FlapperUniV2SwapOnly
21
28
22
-
Exposes a `kick` operation to be triggered periodically. Its logic withdraws `DAI` from the `vow` and buys `gem` tokens on Uniswap v2. The acquired tokens are sent to a predefined `receiver` address.
29
+
Exposes an `exec` operation to be triggered periodically by the `Splitter` (at a cadence determined by `Splitter.hop()`). Its logic withdraws `USDS` from the `Splitter` and buys `gem` tokens on Uniswap v2. The acquired tokens are sent to a predefined `receiver` address.
23
30
24
31
Configurable Parameters:
25
-
*`hop` - Minimum seconds interval between kicks.
26
32
*`pip` - A reference price oracle, used for bounding the exchange rate of the swap.
27
33
*`want` - Relative multiplier of the reference price to insist on in the swap. For example, a value of 0.98 * `WAD` allows for a 2% worse price than the reference.
28
34
29
-
### FlapperMom
35
+
### SplitterMom
30
36
31
-
This contract allows bypassing the governance delay when disabling the Flapper in an emergency.
37
+
This contract allows bypassing the governance delay when disabling the Splitter in an emergency.
32
38
33
39
### OracleWrapper
34
40
35
41
Allows for scaling down an oracle price by a certain value. This can be useful when the `gem` is a redenominated version of an existing token, which already has a reliable oracle.
36
42
37
43
### General Note:
38
44
39
-
* Availability and accounting of the withdrawn `DAI` is the responsibility of the `vow`. At the time of a `kick`, the `vow` is expected to hold at least the swapped amount (`vow.bump`) over the configured flapping threshold (`vow.hump`).
45
+
* Availability and accounting of the withdrawn `USDS` is the responsibility of the `vow`. At the time of a `kick`, the `vow` is expected to hold at least the drawn amount (`vow.bump`) over the configured flapping threshold (`vow.hump`).
0 commit comments