Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Latest commit

 

History

History
590 lines (430 loc) · 19.5 KB

File metadata and controls

590 lines (430 loc) · 19.5 KB

Activate Emode for rETH Aave Ethereum V3

Proposal text

Simple Summary

This AIP proposal presents Aave with the opportunity to activate emode for rETH on the Ethereum v3 Liquidity Pool.

Motivation

rETH is a decentralized Liquid Staking Token minted by Rocket Pool operators.

rETH is minted by Rocket Pool protocol when users Stake ETH via mini-pools or directly by depositing in the Deposit Pool.

Allowing the activation of emode has a clear use-case for leveraged strategies based on rETH as collateral to both “long” rETH on secondary markets and increased staking yield via loops strategies.

With the current supply and borrowing caps, this activation can be done while keeping a conservative approach. For more information about rETH please refer to rETH V3 ARC

Specification

Ticker: rETH (rETH)

Contract Address: 0xae78736Cd615f374D3085123A210448E74Fc6393

Risk Parameter Current Value Proposed Value
Emode Category 0 1

This AIP leverage AaveV3PayloadEthereum and collateralsUpdates() to set the eModeCategory to 1 (ETH-correlated assets category).

contract AaveV3ETHrETHEmode_20230522 is AaveV3PayloadEthereum {
  function collateralsUpdates() public pure override returns (IEngine.CollateralUpdate[] memory) {
    IEngine.CollateralUpdate[] memory collateralUpdate = new IEngine.CollateralUpdate[](1);

    collateralUpdate[0] = IEngine.CollateralUpdate({
      asset: AaveV3EthereumAssets.rETH_UNDERLYING,
      ltv: EngineFlags.KEEP_CURRENT,
      liqThreshold: EngineFlags.KEEP_CURRENT,
      liqBonus: EngineFlags.KEEP_CURRENT,
      debtCeiling: EngineFlags.KEEP_CURRENT,
      liqProtocolFee: EngineFlags.KEEP_CURRENT,
      eModeCategory: 1
    });
    return collateralUpdate;
  }
}

Disclaimer

The Aave-Chan Initiative is not linked nor paid by Rocket Pool to publish this AIP.

The ACI supports LST diversity as part of its delegate platform

At the time of Writing, Marc Zeller, ACI's founder, does not hold any rETH but owns a small amount of RPL with the intention to use them to deploy Mini-pools in the future.

References

A list of relevant links like for this proposal e.g.

Security Considerations

The proposal Payload was reviewed by Bored Ghost Developing.

Copyright

Copyright and related rights waived via CC0.

Checks

Reports all state changes from the proposal ✅ Passed

Info:

  • State changes:
# KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
@@ `s_upkeep` key `"95299183306293242919258731417449887125989356901836642522229237728515662948291"`.lastKeeper @@
- 0x0fd40853b3b8c7805158b862b76b35a2a27b596a
+ 0x98924befaa16b607b3e168b6c57c9528af5cc076
# InitializableImmutableAdminUpgradeabilityProxy at `0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2` with implementation Pool at `0xF1Cd4193bbc1aD4a23E833170f49d60f3D35a621`
@@ `_reserves` key `0xae78736cd615f374d3085123a210448e74fc6393`.configuration.data @@
- 5708990772485374518967190168574519364193048074796
+ 379853409929196521579110507343942972396111779076652

# decoded configuration.data for key `0xae78736cd615f374d3085123a210448e74fc6393` (symbol: rETH)
@@ configuration.data.eModeCategory @@
- 0
+ 1

Check stack trace of the proposal ✅ Passed

Info:

  • There is no SELFDESTRUCT inside of delegated call

Reports all events emitted from the proposal ✅ Passed

Info:

  • Events Emitted:
    • InitializableImmutableAdminUpgradeabilityProxy at 0x64b761D848206f447Fe2dd461b0c635Ec39EbB27 with implementation PoolConfigurator at 0xFDA7ffA872bDc906D43079EA134ebC9a511db0c2
      • CollateralConfigurationChanged(asset: 0xae78736cd615f374d3085123a210448e74fc6393, ltv: 6700, liquidationThreshold: 7400, liquidationBonus: 10750)
      • EModeAssetCategoryChanged(asset: 0xae78736cd615f374d3085123a210448e74fc6393, oldCategoryId: 0, newCategoryId: 1)
    • KeeperRegistry at 0x02777053d6764996e594c3E88AF1D58D5363a2e6
      • UpkeepPerformed(id: 95299183306293242919258731417449887125989356901836642522229237728515662948291, success: true, from: 0x98924befaa16b607b3e168b6c57c9528af5cc076, payment: 0, performData: 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e80000000000000000000000000000000000000000000000000000000000000001)

Check all targets are verified on Etherscan ✅ Passed

Info:

  • Targets:
    • 0x301782f98846d15F57d1d202FBA5ACdECD336D0e: Contract (not verified)

Check all touched contracts are verified on Etherscan ✅ Passed

Info:

  • Touched address:
    • 0x98924befaa16b607b3e168b6c57c9528af5cc076: EOA (verification not applicable)
    • 0x02777053d6764996e594c3e88af1d58d5363a2e6: Contract (verified) (KeeperRegistry)
    • 0x169e633a2d1e6c10dd91238ba11c4a708dfef37c: Contract (verified) (EACAggregatorProxy)
    • 0x785433d8b06d77d68df6be63944742130a4530d1: Contract (verified) (AccessControlledOffchainAggregator)
    • 0xdc530d9457755926550b59e8eccdae7624181557: Contract (verified) (EACAggregatorProxy)
    • 0xbba12740de905707251525477bad74985dec46d2: Contract (verified) (AccessControlledOffchainAggregator)
    • 0x943acd0c93d7a8bee7da5fd0dc3d0028237074d6: Contract (verified) (EthRobotKeeper)
    • 0xec568fffba86c094cf06b22134b23074dfe2252c: Contract (verified) (AaveGovernanceV2)
    • 0xee56e2b3d491590b5b31738cc34d5232f378a8d5: Contract (verified) (Executor)
    • 0xb7e383ef9b1e9189fc0f71fb30af8aa14377429e: Contract (verified) (GovernanceStrategy)
    • 0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9: Contract (verified) (InitializableAdminUpgradeabilityProxy)
    • 0x96f68837877fd0414b55050c9e794aecdbcfca59: Contract (verified) (AaveTokenV2)
    • 0x301782f98846d15f57d1d202fba5acdecd336d0e: Contract (verified) (AaveV3ETHrETHEmode_20230522)
    • 0xe202f2fc4b6a37ba53cfd15be42a762a645fca07: Contract (verified) (AaveV3ConfigEngine)
    • 0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2: Contract (verified) (InitializableImmutableAdminUpgradeabilityProxy)
    • 0xf1cd4193bbc1ad4a23e833170f49d60f3d35a621: Contract (verified) (Pool)
    • 0x64b761d848206f447fe2dd461b0c635ec39ebb27: Contract (verified) (InitializableImmutableAdminUpgradeabilityProxy)
    • 0xfda7ffa872bdc906d43079ea134ebc9a511db0c2: Contract (verified) (PoolConfigurator)
    • 0x2f39d218133afab8f2b819b1066c7e434ad94e9e: Contract (verified) (PoolAddressesProvider)
    • 0xc2aacf6553d20d1e9d78e365aaba8032af9c85b0: Contract (verified) (ACLManager)

Runs solc against the verified contracts ✅ Passed

Info:

View Details
View warnings for KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for EACAggregatorProxy at `0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for PoolAddressesProvider at `0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for AaveV3ETHrETHEmode_20230522 at `0x301782f98846d15F57d1d202FBA5ACdECD336D0e`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for InitializableImmutableAdminUpgradeabilityProxy at `0x64b761D848206f447Fe2dd461b0c635Ec39EbB27` with implementation PoolConfigurator at `0xFDA7ffA872bDc906D43079EA134ebC9a511db0c2`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for AccessControlledOffchainAggregator at `0x785433d8b06D77D68dF6be63944742130A4530d1`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for InitializableAdminUpgradeabilityProxy at `0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9` with implementation AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for InitializableImmutableAdminUpgradeabilityProxy at `0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2` with implementation Pool at `0xF1Cd4193bbc1aD4a23E833170f49d60f3D35a621`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for EthRobotKeeper at `0x943AcD0c93d7a8Bee7dA5Fd0DC3d0028237074d6`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for GovernanceStrategy at `0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for AccessControlledOffchainAggregator at `0xbba12740DE905707251525477bAD74985DeC46D2`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for ACLManager at `0xc2aaCf6553D20d1e9d78E365AAba8032af9c85b0`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for EACAggregatorProxy at `0xDC530D9457755926550b59e8ECcdaE7624181557`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for AaveV3ConfigEngine at `0xE202F2fc4b6A37Ba53cfD15bE42a762A645FCA07`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for Pool at `0xF1Cd4193bbc1aD4a23E833170f49d60f3D35a621`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'
View warnings for PoolConfigurator at `0xFDA7ffA872bDc906D43079EA134ebC9a511db0c2`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/crytic-compile", line 5, in <module>
    from crytic_compile.__main__ import main
ModuleNotFoundError: No module named 'crytic_compile'

Runs slither against the verified contracts ✅ Passed

Info:

View Details
Slither report for KeeperRegistry at `0x02777053d6764996e594c3E88AF1D58D5363a2e6`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for EACAggregatorProxy at `0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for PoolAddressesProvider at `0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for AaveV3ETHrETHEmode_20230522 at `0x301782f98846d15F57d1d202FBA5ACdECD336D0e`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for InitializableImmutableAdminUpgradeabilityProxy at `0x64b761D848206f447Fe2dd461b0c635Ec39EbB27` with implementation PoolConfigurator at `0xFDA7ffA872bDc906D43079EA134ebC9a511db0c2`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for AccessControlledOffchainAggregator at `0x785433d8b06D77D68dF6be63944742130A4530d1`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for InitializableAdminUpgradeabilityProxy at `0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9` with implementation AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for InitializableImmutableAdminUpgradeabilityProxy at `0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2` with implementation Pool at `0xF1Cd4193bbc1aD4a23E833170f49d60f3D35a621`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for EthRobotKeeper at `0x943AcD0c93d7a8Bee7dA5Fd0DC3d0028237074d6`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for AaveTokenV2 at `0x96F68837877fd0414B55050c9e794AECdBcfCA59`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for GovernanceStrategy at `0xb7e383ef9B1E9189Fc0F71fb30af8aa14377429e`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for AccessControlledOffchainAggregator at `0xbba12740DE905707251525477bAD74985DeC46D2`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for ACLManager at `0xc2aaCf6553D20d1e9d78E365AAba8032af9c85b0`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for EACAggregatorProxy at `0xDC530D9457755926550b59e8ECcdaE7624181557`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for AaveV3ConfigEngine at `0xE202F2fc4b6A37Ba53cfD15bE42a762A645FCA07`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for Pool at `0xF1Cd4193bbc1aD4a23E833170f49d60f3D35a621`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'
Slither report for PoolConfigurator at `0xFDA7ffA872bDc906D43079EA134ebC9a511db0c2`
Traceback (most recent call last):
  File "/home/sakulstra/.local/bin/slither", line 5, in <module>
    from slither.__main__ import main
ModuleNotFoundError: No module named 'slither'