Gearboxby
desnakeee.eth
[GIP-226] Remove controllers, fix staleness periods and multiple small improvements
Author
desnake
Summary
List of proposed improvements:
- Remove dependencies from ControllerTimelockV3 from the protocol contracts by setting corresponding addresses to Null address: 0x0000000000000000000000000000000000000000.
- Redeploy multiple price feeds to fix incorrectly set staleness periods.
- Set zero price feed to USDecrvUSD
- Set nonzero maxRate for DVstETH
- Set nonzero liquidation fee in tBTC CMs
- Set zero quota limits and LTs for stkcvxcrvUSDUSDC, stkcvxcrvUSDUSDT, stkcvxcrvUSDFRAX, stkcvxcrvFRAX, stkcvxcrvUSDETHCRV, stkcvxcrvUSDTWBTCWETH phantom tokens.
Motivation
ControllerTimelockV3 removal
The controller is an alternative role that can call certain less dangarous functions. So while adding new collaterals, immediately changing LTs, allowing new adapters are configurator-only functions, ramping LTs slowly or changing debt limits are also callable by controller in addition to configurator. In 3.1, which will be release soon, we will have an emergencyAdmin role with a more intuitive flow. In the meantime, in case of emergency, the contract can be paused / assets can be forbidden by pausable admin. The controller is set per-contract.
Historically Controller Timelock was rarely utilized, with the last time being used in [GIP-117] to urgently raise limits during LRT mania. It proves uselessness of this entity and leads to proposal to remove it to reduce the system complexity.
Staleness periods fix
Staleness periods are set using the Heartbeat parameter specified in Chainlink an other chainlink-compatible push oracles. The heartbeat parameter of 86400s means that the price feed's update will be initiated at least once in 86400 seconds. However, the actual output price changes with some delay, creating the need to set staleness period to equal Heartbeat + buffer with 15 minutes being enough additional time.
The dev team has discovered that some feeds' staleness periods don't incorporate the buffer, and this proposal is to fix it.
Specification
Controller removal
Call setController method of the following Pools, corresponding PoolQuotaKeepers and Gauges with 0x0000000000000000000000000000000000000000 address:
Mainnet
- Pools (+ PoolQuotaKeepers and Gauges connected to the pools):
- Trade USDC v3
- Trade WBTC v3
- Trade WETH v3
- USDT v3
- GHO v3
- DAI v3
- Universal USDT v3
- crvUSD v3
- Trade DOLA v3
- Trade tBTC v3
- wstETH v3
Arbitrum:
- Pools (+ PoolQuotaKeepers and Gauges connected to the pools):
- Main USDC.e v3
- Main WETH v3
- Main USDC v3
Optimism:
- Pools (+ PoolQuotaKeepers and Gauges connected to the pools):
- Main USDC.e v3
- WETH v3
- Main USDC v3
Sonic:
- Pools (+ PoolQuotaKeepers and Gauges connected to the pools):
- USDC.e v3 Sonic
- wS v3 Sonic
Price Feeds fix
Sonic
- USDC.e
- Main:
- Chainlink USDC/USD feed (0x55bCa887199d5520B3Ce285D41e6dC10C08716C9) Staleness period: 87300 seconds
- Main:
- WETH
- Main:
- Chainlink WETH/USD feed (0x824364077993847f71293B24ccA8567c00c2de11) Staleness period: 87300 seconds
- Main:
- wS
- Main:
- Chainlink S/USD feed (0xc76dFb89fF298145b417d221B2c747d84952e01d) Staleness period: 87300 seconds
- Main:
- stS
- Main:
- Composite price feed
- Feed0: Redstone stS_FUNDAMENTAL
- Feed1:
- Chainlink S/USD feed (0xc76dFb89fF298145b417d221B2c747d84952e01d) Staleness period: 87300 seconds
- Composite price feed
- Reserve:
- Chainlink S/USD feed (0xc76dFb89fF298145b417d221B2c747d84952e01d) Staleness period: 87300 seconds
- Main:
- scUSD
- Main:
- Chainlink USDC/USD feed (0x55bCa887199d5520B3Ce285D41e6dC10C08716C9) Staleness period: 87300 seconds
- Main:
Mainnet
- USDL
- Main:
- Chainlink USDC/USD feed (0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6) Staleness period: 87300 seconds
- Main:
- csUSDL
- Main:
- ERC4626 (0xbeefc011e94f43b8b7b455ebab290c7ab4e216f1):
- ERC4626 (0xbdc7c08592ee4aa51d06c27ee23d5087d65adbcd):
- Chainlink USDC/USD feed (0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6) Staleness period: 87300 seconds
- ERC4626 (0xbdc7c08592ee4aa51d06c27ee23d5087d65adbcd):
- ERC4626 (0xbeefc011e94f43b8b7b455ebab290c7ab4e216f1):
- Reserve:
- Chainlink USDC/USD feed (0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6) Staleness period: 87300 seconds
- Main:
- wUSDL
- Main:
- ERC4626 (0xbdc7c08592ee4aa51d06c27ee23d5087d65adbcd):
- Chainlink USDC/USD feed (0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6) Staleness period: 87300 seconds
- ERC4626 (0xbdc7c08592ee4aa51d06c27ee23d5087d65adbcd):
- Main:
wstETH v3 Pool on Mainnet
Set maxRate for DVstETH to 3%
tBTC liquidation fee
Set feeLiquidation and feeLiquidationExpired to 0.1% in Trade tBTC Tier 1, tBTC Correlated Tier 1, tBTC Correlated Tier 2 CMs.
Phantom tokens' limits
- For stkcvxcrvUSDUSDC, stkcvxcrvUSDUSDT, stkcvxcrvUSDFRAX and stkcvxcrvFRAX tokens:
- Set zero quota limits in Trade USDC v3 Pool
- Set zero LTs in Farm USDC CM
- For stkcvxcrvUSDETHCRV and stkcvxcrvUSDTWBTCWETH tokens:
- Set zero quota limits in Trade WETH v3 Pool
- Set zero LTs in Farm WETH CM
Transaction log
Transaction log can be found here Md5 checksums are as follows: Mainnet: md5 checksum: 16919d79c8c192c1d7d6201b66afe2d4
Arbitrum: md5 checksum: 67f0703c7c1c54d6639e1bf3b0e55a54
Optimism: md5 checksum: 021990bc7fc7b24335832762441e0dbc
Sonic: md5 checksum: 2303b13f0f3f6dee92aa7528410282a6
Off-Chain Vote
Loading…
- Author
desnakeee.eth
- IPFS#bafkreid
- Voting Systembasic
- Start DateMar 19, 2025
- End DateMar 22, 2025
- Total Votes Cast213.98M GEAR
- Total Voters20
Timeline
- Mar 19, 2025Proposal created
- Mar 19, 2025Proposal vote started
- Mar 22, 2025Proposal vote ended
- Apr 29, 2025Proposal updated