Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "lib/aave-helpers"]
path = lib/aave-helpers
url = https://github.com/bgd-labs/aave-helpers
[submodule "lib/openzeppelin-contracts"]
path = lib/openzeppelin-contracts
url = https://github.com/OpenZeppelin/openzeppelin-contracts
16 changes: 10 additions & 6 deletions generator/utils/importsResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,13 @@ function generateRiskStewardImport(code: string) {
const match = code.match(/RiskStewards(\w+)/);

if (match) {
imports = `import {RiskStewards${match[1]}} from '${match[1] == 'ZkSync' ? '../' : ''}../../../../scripts/networks/RiskStewards${match[1]}.s.sol';\n`;
imports = `import {RiskStewards${match[1]}} from '${
match[1] == 'ZkSync' ? '../' : ''
}../../../../scripts/networks/RiskStewards${match[1]}.s.sol';\n`;
if (findMatch(code, 'IRiskSteward')) {
imports += `import {IRiskSteward${findMatch(code, 'IPriceCapAdapter') ? ', IPriceCapAdapter': ''}} from '../../../interfaces/IRiskSteward.sol';\n`;
imports += `import {IRiskSteward${
findMatch(code, 'IPriceCapAdapter') ? ', IPriceCapAdapter' : ''
}} from '../../../interfaces/IRiskSteward.sol';\n`;
}
}
return imports;
Expand All @@ -52,9 +56,9 @@ function generateRiskStewardImport(code: string) {
function generateEngineImport(code: string) {
const matches = [...code.matchAll(/Aave(V[2..3])Payload([A-Za-z]+)/g)].flat();
if (matches.length > 0)
return `import {${matches[0]}} from 'aave-helpers/src/${matches[1].toLowerCase()}-config-engine/${
return `import {${
matches[0]
}.sol';\n`;
}} from 'aave-helpers/src/${matches[1].toLowerCase()}-config-engine/${matches[0]}.sol';\n`;
}

function findMatches(code: string, needles: string[] | readonly string[]) {
Expand Down Expand Up @@ -110,10 +114,10 @@ export function prefixWithImports(code: string) {
}
// common imports
if (findMatch(code, 'IERC20')) {
imports += `import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';\n`;
imports += `import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol';\n`;
}
if (findMatch(code, 'forceApprove')) {
imports += `import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';\n`;
imports += `import {SafeERC20} from 'openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol';\n`;
}
if (findMatch(code, 'GovernanceV3Ethereum')) {
imports += `import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';\n`;
Expand Down
2 changes: 1 addition & 1 deletion lib/aave-helpers
Submodule aave-helpers updated 73 files
+3 −3 .github/dependabot.yml
+2 −2 .gitignore
+7 −0 .prettierignore
+145 −165 CHANGELOG.md
+1 −1 diffs/AMMTEST_before_AMMTEST_after.md
+1 −1 diffs/adi_test_adi_diffs_before_adi_test_adi_diffs_after.md
+32 −2 diffs/default_before_default_after.md
+14 −14 diffs/preTestV2RatesUpdates_postTestV2RatesUpdates.md
+2 −574 diffs/zksync_before_zksync_after.md
+17 −7 foundry.toml
+1 −1 lib/aave-address-book
+1 −1 lib/forge-std
+2,123 −0 package-lock.json
+2 −3 package.json
+3 −8 scripts/AaveSwapperDeployment.s.sol
+0 −22 scripts/AaveWstethWithdrawerDeployment.s.sol
+1 −1 scripts/DeployBridges.s.sol
+3 −2 scripts/V2RateStrategyFactory.s.sol
+2 −2 src/CollectorUtils.sol
+2 −2 src/CommonTestBase.sol
+1 −2 src/GovV3Helpers.sol
+3 −3 src/ProtocolV2TestBase.sol
+7 −3 src/ProtocolV3TestBase.sol
+0 −114 src/asset-manager/AaveWstethWithdrawer.sol
+0 −14 src/asset-manager/Common.sol
+0 −41 src/asset-manager/LSDLiquidityGaugeManager.sol
+0 −192 src/asset-manager/README.md
+0 −42 src/asset-manager/StrategicAssetsManager.sol
+0 −224 src/asset-manager/VeTokenManager.sol
+0 −72 src/asset-manager/VlTokenManager.sol
+ src/asset-manager/images/AaveWstethWithdrawer.png
+0 −74 src/asset-manager/interfaces/IAaveWstethWithdrawer.sol
+0 −16 src/asset-manager/interfaces/IDelegateRegistry.sol
+0 −12 src/asset-manager/interfaces/ILiquidityGaugeController.sol
+0 −27 src/asset-manager/interfaces/IVeToken.sol
+0 −45 src/asset-manager/interfaces/IVlToken.sol
+0 −90 src/asset-manager/interfaces/IWardenBoost.sol
+4 −6 src/bridges/arbitrum/AaveArbEthERC20Bridge.sol
+4 −6 src/bridges/optimism/AaveOpEthERC20Bridge.sol
+4 −6 src/bridges/polygon/AavePolEthERC20Bridge.sol
+4 −6 src/bridges/polygon/AavePolEthPlasmaBridge.sol
+1 −1 src/dependencies/DefaultReserveInterestRateStrategy.sol
+1 −1 src/riskstewards/CapsPlusRiskSteward.sol
+0 −1 src/riskstewards/ICapsPlusRiskSteward.sol
+10 −10 src/swaps/AaveSwapper.sol
+2 −2 src/swaps/BaseSwapPayload.sol
+2 −2 src/swaps/DepositV2SwapPayload.sol
+2 −2 src/swaps/DepositV3SwapPayload.sol
+0 −3 src/swaps/interfaces/IAaveSwapper.sol
+1 −1 src/swaps/interfaces/IMilkman.sol
+1 −1 src/v2-config-engine/AaveV2Payload.sol
+1 −1 src/v2-config-engine/V2RateStrategyFactory.sol
+1 −1 tests/CollectorUtils.t.sol
+1 −1 tests/GovV3Test.t.sol
+1 −1 tests/ProtocolV2TestBase.t.sol
+0 −245 tests/asset-manager/AaveWstethWithdrawerTest.t.sol
+0 −120 tests/asset-manager/TestLSDLiquidityGaugeManager.t.sol
+0 −125 tests/asset-manager/TestStrategicAssetsManager.t.sol
+0 −529 tests/asset-manager/TestVeTokenManager.t.sol
+0 −251 tests/asset-manager/TestVlTokenManager.t.sol
+8 −4 tests/bridges/arbitrum/AaveArbEthERC20BridgeTest.t.sol
+6 −6 tests/bridges/arbitrum/ArbSysMock.sol
+8 −4 tests/bridges/optimism/AaveOpEthERC20BridgeTest.t.sol
+8 −4 tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol
+8 −4 tests/bridges/polygon/AavePolEthPlasmaBridge.t.sol
+18 −13 tests/swaps/AaveSwapperTest.t.sol
+1 −1 tests/swaps/DepositV2SwapPayloadTest.t.sol
+1 −1 tests/swaps/DepositV3SwapPayloadTest.t.sol
+1 −1 tests/v2-config-engine/AaveV2ConfigEngineTest.t.sol
+0 −1,041 yarn.lock
+7 −3 zksync/src/ProtocolV3TestBase.sol
+2 −2 zksync/src/SnapshotHelpersV3.sol
+22 −0 zksync/tests/ProtocolV3TestBase.t.sol
1 change: 1 addition & 0 deletions lib/openzeppelin-contracts
Submodule openzeppelin-contracts added at acd4ff
1 change: 1 addition & 0 deletions remappings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ lib/aave-helpers:aave-v3-origin/=lib/aave-helpers/lib/aave-address-book/lib/aave
aave-v3-origin/=lib/aave-helpers/lib/aave-address-book/lib/aave-v3-origin/
aave-capo/=lib/aave-capo/src
lib/aave-capo:cl-synchronicity-price-adapter/=lib/aave-capo/lib/cl-synchronicity-price-adapter/src/
openzeppelin-contracts/=lib/openzeppelin-contracts/
82 changes: 49 additions & 33 deletions report/contracts/src/contracts/RiskSteward.sol.gcov.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,22 @@

<body>

<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr>
<td class="title">LCOV - code coverage report</td>
</tr>
<tr>
<td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td>
</tr>

<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../../index.html">top level</a> - <a href="index.html">contracts/src/contracts</a> - RiskSteward.sol<span style="font-size: 80%;"> (source / <a href="RiskSteward.sol.func-c.html">functions</a>)</span></td>
<td width="10%" class="headerValue"><a href="../../../index.html">top level</a> - <a
href="index.html">contracts/src/contracts</a> - RiskSteward.sol<span style="font-size: 80%;"> (source /
<a href="RiskSteward.sol.func-c.html">functions</a>)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
Expand Down Expand Up @@ -53,29 +59,33 @@
<td class="headerCovTableEntry">0</td>
<td class="headerCovTableEntry">0</td>
</tr>
<tr><td><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr>
<td><img src="../../../glass.png" width=3 height=3 alt=""></td>
</tr>
</table>
</td>
</tr>

<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<tr>
<td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td>
</tr>
</table>

<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Branch data Line data Source code</pre>
<pre class="source">
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Branch data Line data Source code</pre>
<pre class="source">
<span id="L1"><span class="lineNum"> 1</span> : : // SPDX-License-Identifier: BUSL-1.1</span>
<span id="L2"><span class="lineNum"> 2</span> : : pragma solidity ^0.8.0;</span>
<span id="L3"><span class="lineNum"> 3</span> : : </span>
<span id="L4"><span class="lineNum"> 4</span> : : import {IPoolDataProvider} from 'aave-address-book/AaveV3.sol';</span>
<span id="L5"><span class="lineNum"> 5</span> : : import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';</span>
<span id="L5"><span class="lineNum"> 5</span> : : import {Address} from 'openzeppelin-contracts/contracts/utils/Address.sol';</span>
<span id="L6"><span class="lineNum"> 6</span> : : import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol';</span>
<span id="L7"><span class="lineNum"> 7</span> : : import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';</span>
<span id="L7"><span class="lineNum"> 7</span> : : import {Ownable} from 'openzeppelin-contracts/contracts/access/Ownable.sol';</span>
<span id="L8"><span class="lineNum"> 8</span> : : import {IAaveV3ConfigEngine as IEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3ConfigEngine.sol';</span>
<span id="L9"><span class="lineNum"> 9</span> : : import {IRiskSteward} from '../interfaces/IRiskSteward.sol';</span>
<span id="L10"><span class="lineNum"> 10</span> : : import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/core/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';</span>
Expand Down Expand Up @@ -509,16 +519,22 @@
<span id="L438"><span class="lineNum"> 438</span> : : }</span>
<span id="L439"><span class="lineNum"> 439</span> : : }</span>
</pre>
</td>
</tr>
</table>
<br>
</td>
</tr>
</table>
<br>

<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr>
<td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td>
</tr>
<tr>
<td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV
version 2.0-1</a></td>
</tr>
</table>
<br>

</body>
</html>

</html>
16 changes: 9 additions & 7 deletions src/contracts/AaveStewardInjector.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {IRiskOracle} from './dependencies/IRiskOracle.sol';
import {IRiskSteward} from '../interfaces/IRiskSteward.sol';
import {IAaveStewardInjector, AutomationCompatibleInterface} from '../interfaces/IAaveStewardInjector.sol';
import {IAaveV3ConfigEngine as IEngine} from 'aave-v3-origin/src/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Ownable} from 'openzeppelin-contracts/contracts/access/Ownable.sol';

/**
* @title AaveStewardInjector
Expand Down Expand Up @@ -45,11 +45,15 @@ contract AaveStewardInjector is Ownable, IAaveStewardInjector {
* @param guardian address of the guardian / owner of the stewards injector.
* @param whitelistedAsset address of the whitelisted asset for which update can be injected.
*/
constructor(address riskOracle, address riskSteward, address guardian, address whitelistedAsset) {
constructor(
address riskOracle,
address riskSteward,
address guardian,
address whitelistedAsset
) Ownable(riskSteward) {
RISK_ORACLE = riskOracle;
RISK_STEWARD = riskSteward;
WHITELISTED_ASSET = whitelistedAsset;
_transferOwnership(guardian);
}

/**
Expand Down Expand Up @@ -108,13 +112,11 @@ contract AaveStewardInjector is Ownable, IAaveStewardInjector {
function _canUpdateBeInjected(
IRiskOracle.RiskParameterUpdate memory updateRiskParams
) internal view returns (bool) {
return (
!isUpdateIdExecuted(updateRiskParams.updateId) &&
return (!isUpdateIdExecuted(updateRiskParams.updateId) &&
(updateRiskParams.timestamp + EXPIRATION_PERIOD > block.timestamp) &&
updateRiskParams.market == WHITELISTED_ASSET &&
keccak256(bytes(updateRiskParams.updateType)) == keccak256(bytes(WHITELISTED_UPDATE_TYPE)) &&
!isDisabled(updateRiskParams.updateId)
);
!isDisabled(updateRiskParams.updateId));
}

/**
Expand Down
8 changes: 4 additions & 4 deletions src/contracts/RiskSteward.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
pragma solidity ^0.8.0;

import {IPoolDataProvider} from 'aave-address-book/AaveV3.sol';
import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';
import {SafeCast} from 'solidity-utils/contracts/oz-common/SafeCast.sol';
import {Address} from 'openzeppelin-contracts/contracts/utils/Address.sol';
import {SafeCast} from 'openzeppelin-contracts/contracts/utils/math/SafeCast.sol';
import {EngineFlags} from 'aave-v3-origin/src/contracts/extensions/v3-config-engine/EngineFlags.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Ownable} from 'openzeppelin-contracts/contracts/access/Ownable.sol';
import {IAaveV3ConfigEngine as IEngine} from 'aave-v3-origin/src/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
import {IRiskSteward} from '../interfaces/IRiskSteward.sol';
import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/src/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';
Expand Down Expand Up @@ -59,7 +59,7 @@ contract RiskSteward is Ownable, IRiskSteward {
IEngine engine,
address riskCouncil,
Config memory riskConfig
) {
) Ownable(riskCouncil) {
POOL_DATA_PROVIDER = poolDataProvider;
CONFIG_ENGINE = engine;
RISK_COUNCIL = riskCouncil;
Expand Down
2 changes: 1 addition & 1 deletion tests/RiskStewardCapo.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {ConfigEngineDeployer} from './utils/ConfigEngineDeployer.sol';
import {IPriceCapAdapter} from 'aave-capo/interfaces/IPriceCapAdapter.sol';
import {IPriceCapAdapterStable, IChainlinkAggregator} from 'aave-capo/interfaces/IPriceCapAdapterStable.sol';
import {PriceCapAdapterStable} from 'aave-capo/contracts/PriceCapAdapterStable.sol';
import {SafeCast} from 'solidity-utils/contracts/oz-common/SafeCast.sol';
import {SafeCast} from 'openzeppelin-contracts/contracts/utils/math/SafeCast.sol';

contract RiskSteward_Capo_Test is Test {
using SafeCast for uint256;
Expand Down
Loading