Skip to content

Commit ccadc3c

Browse files
feat: rates base payload and factory for v2 (#68)
* cherry-pick commit: added rates factory and base payload with tests for v2 * chore: fix spacing * fix: missing require * chore: fix folders * docs: add diagram * chore: add payload network contracts * docs: update README * fix: missing trie node in tests * fix: comments * feat: add config engine instead of using rates payload base * fix: dependencies * fix: _isStandardStrategy to use codehash * chore: add diffs for dependencies * fix: rates factory deployment and added test reports * Added comment about stateless nature of AaveV2ConfigEngine * fix on Makefile for v2 config engine tests * Added test reports of v2 rates factory * - Fix V2RateStrategyFactory scripts - Added make scripts for deployment of v2 rate strategy factories * - Added scripts on Makefile to deploy v2 config engine. - Added deployed v2 rate factories --------- Co-authored-by: eboado <ebdmrr@gmail.com>
1 parent 269efb2 commit ccadc3c

37 files changed

Lines changed: 4616 additions & 6 deletions

Makefile

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ test :; forge test -vvv
1111
test-gauntlet-strategies-update:; forge test -vvv --match-path src/test/AaveV3ConfigEngineGauntletProposal.t.sol --gas-report
1212
test-config-engine:; forge test -vvv --match-path src/test/AaveV3ConfigEngineTest.t.sol --gas-report
1313
test-rates-factory:; forge test -vvv --match-path src/test/V3RateStrategyFactory.t.sol --gas-report
14-
14+
test-v2-config-engine:; forge test -vvv --match-path src/test/AaveV2ConfigEngineTest.t.sol --gas-report
15+
test-v2-rates-factory:; forge test -vvv --match-path src/test/V2RateStrategyFactory.t.sol --gas-report
1516

1617
# Scripts
1718
deploy-engine-eth :; forge script scripts/AaveV3ConfigEngine.s.sol:DeployEngineEth --rpc-url mainnet --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
@@ -36,6 +37,17 @@ deploy-steward-opt :; forge script scripts/RiskStewards.s.sol:DeployOpt --rpc-ur
3637
deploy-steward-arb :; forge script scripts/RiskStewards.s.sol:DeployArb --rpc-url arbitrum --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
3738
deploy-steward-ava :; forge script scripts/RiskStewards.s.sol:DeployAva --rpc-url avalanche --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
3839
deploy-steward-met :; forge script scripts/RiskStewards.s.sol:DeployMet --rpc-url metis --broadcast --ledger --legacy --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
40+
41+
deploy-rates-factory-v2-eth :; forge script scripts/V2RateStrategyFactory.s.sol:DeployV2RatesFactoryEth --mnemonics random --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
42+
deploy-rates-factory-v2-eth-amm :; forge script scripts/V2RateStrategyFactory.s.sol:DeployV2RatesFactoryEthAMM --mnemonics random --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
43+
deploy-rates-factory-v2-pol :; forge script scripts/V2RateStrategyFactory.s.sol:DeployV2RatesFactoryPol --mnemonics random --rpc-url polygon --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
44+
deploy-rates-factory-v2-ava :; forge script scripts/V2RateStrategyFactory.s.sol:DeployV2RatesFactoryAva --mnemonics random --rpc-url avalanche --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
45+
46+
deploy-config-engine-v2-eth :; forge script scripts/AaveV2ConfigEngine.s.sol:DeployV2EngineEth --mnemonics random --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
47+
deploy-config-engine-v2-eth-amm :; forge script scripts/AaveV2ConfigEngine.s.sol:DeployV2EngineEthAMM --mnemonics random --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
48+
deploy-config-engine-v2-pol :; forge script scripts/AaveV2ConfigEngine.s.sol:DeployV2EnginePol --mnemonics random --rpc-url polygon --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
49+
deploy-config-engine-v2-ava :; forge script scripts/AaveV2ConfigEngine.s.sol:DeployV2EngineAva --mnemonics random --rpc-url avalanche --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
50+
3951
# Utilities
4052
download :; cast etherscan-source --chain ${chain} -d src/etherscan/${chain}_${address} ${address}
4153
git-diff :
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
diff --git a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/DefaultReserveInterestRateStrategy.sol b/src/dependencies/DefaultReserveInterestRateStrategy.sol
2+
index 32ab6ee..4f793be 100644
3+
--- a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/DefaultReserveInterestRateStrategy.sol
4+
+++ b/src/dependencies/DefaultReserveInterestRateStrategy.sol
5+
@@ -1,13 +1,13 @@
6+
// SPDX-License-Identifier: agpl-3.0
7+
-pragma solidity 0.6.12;
8+
-
9+
-import {SafeMath} from '../../dependencies/openzeppelin/contracts/SafeMath.sol';
10+
-import {IReserveInterestRateStrategy} from '../../interfaces/IReserveInterestRateStrategy.sol';
11+
-import {WadRayMath} from '../libraries/math/WadRayMath.sol';
12+
-import {PercentageMath} from '../libraries/math/PercentageMath.sol';
13+
-import {ILendingPoolAddressesProvider} from '../../interfaces/ILendingPoolAddressesProvider.sol';
14+
-import {ILendingRateOracle} from '../../interfaces/ILendingRateOracle.sol';
15+
-import {IERC20} from '../../dependencies/openzeppelin/contracts/IERC20.sol';
16+
+// From commit https://github.com/aave/protocol-v2/commit/5f817c7c09139585c7dbc18aef07380ab8148869
17+
+pragma solidity >=0.6.12;
18+
+
19+
+import {SafeMath} from '../dependencies/SafeMath.sol';
20+
+import {IReserveInterestRateStrategy} from '../dependencies/IReserveInterestRateStrategy.sol';
21+
+import {WadRayMath} from '../dependencies/WadRayMath.sol';
22+
+import {PercentageMath} from '../dependencies/PercentageMath.sol';
23+
+import {ILendingPoolAddressesProvider, ILendingRateOracle} from 'aave-address-book/AaveV2.sol';
24+
+import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
25+
26+
/**
27+
* @title DefaultReserveInterestRateStrategy contract

diffs/Errors.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff --git a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/Errors.sol b/src/dependencies/Errors.sol
2+
index 2a938b6..c93085d 100644
3+
--- a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/Errors.sol
4+
+++ b/src/dependencies/Errors.sol
5+
@@ -1,5 +1,6 @@
6+
// SPDX-License-Identifier: agpl-3.0
7+
-pragma solidity 0.6.12;
8+
+// From commit https://github.com/aave/protocol-v2/commit/92a731ec2c536734924f5a55d3e6db0385b0c824
9+
+pragma solidity >=0.6.12;
10+
11+
/**
12+
* @title Errors library
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff --git a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/IReserveInterestRateStrategy.sol b/src/dependencies/IReserveInterestRateStrategy.sol
2+
index 014d2ee..da59b02 100644
3+
--- a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/IReserveInterestRateStrategy.sol
4+
+++ b/src/dependencies/IReserveInterestRateStrategy.sol
5+
@@ -1,5 +1,6 @@
6+
// SPDX-License-Identifier: agpl-3.0
7+
-pragma solidity 0.6.12;
8+
+// From commit https://github.com/aave/protocol-v2/commit/7f44a0c2422cf08290a7a35b5652b5ef43d4d22f
9+
+pragma solidity >=0.6.12;
10+
11+
/**
12+
* @title IReserveInterestRateStrategyInterface interface

diffs/PercentageMath.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/PercentageMath.sol b/src/dependencies/PercentageMath.sol
2+
index 4a478e9..5b39c2e 100644
3+
--- a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/PercentageMath.sol
4+
+++ b/src/dependencies/PercentageMath.sol
5+
@@ -1,7 +1,8 @@
6+
// SPDX-License-Identifier: agpl-3.0
7+
-pragma solidity 0.6.12;
8+
+// From commit https://github.com/aave/protocol-v2/commit/92a731ec2c536734924f5a55d3e6db0385b0c824
9+
+pragma solidity >=0.6.12;
10+
11+
-import {Errors} from '../helpers/Errors.sol';
12+
+import {Errors} from '../dependencies/Errors.sol';
13+
14+
/**
15+
* @title PercentageMath library

diffs/SafeMath.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff --git a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/SafeMath.sol b/src/dependencies/SafeMath.sol
2+
index 76320f6..2555cf4 100644
3+
--- a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/SafeMath.sol
4+
+++ b/src/dependencies/SafeMath.sol
5+
@@ -1,5 +1,6 @@
6+
// SPDX-License-Identifier: agpl-3.0
7+
-pragma solidity 0.6.12;
8+
+// From commit https://github.com/aave/protocol-v2/commit/8c03180f89eea25e98356b80d8187cb0f12f29cd
9+
+pragma solidity >=0.6.12;
10+
11+
/**
12+
* @dev Wrappers over Solidity's arithmetic operations with added overflow

diffs/WadRayMath.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/WadRayMath.sol b/src/dependencies/WadRayMath.sol
2+
index 29aa9c1..a62602a 100644
3+
--- a/commit-5f817c7c09139585c7dbc18aef07380ab8148869/WadRayMath.sol
4+
+++ b/src/dependencies/WadRayMath.sol
5+
@@ -1,7 +1,8 @@
6+
// SPDX-License-Identifier: agpl-3.0
7+
-pragma solidity 0.6.12;
8+
+// From commit https://github.com/aave/protocol-v2/commit/92a731ec2c536734924f5a55d3e6db0385b0c824
9+
+pragma solidity >=0.6.12;
10+
11+
-import {Errors} from '../helpers/Errors.sol';
12+
+import {Errors} from '../dependencies/Errors.sol';
13+
14+
/**
15+
* @title WadRayMath library
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
```diff
2+
diff --git a/./reports/preTestV2RatesUpdates.md b/./reports/postTestV2RatesUpdates.md
3+
index 8fe5b5c..8642c55 100644
4+
--- a/./reports/preTestV2RatesUpdates.md
5+
+++ b/./reports/postTestV2RatesUpdates.md
6+
@@ -23,7 +23,7 @@
7+
| SNX | 0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F | 0x35f6B052C598d933D69A4EEC4D04c73A191fE6c2 | 0x8575c8ae70bDB71606A53AeA1c6789cB0fBF3166 | 0x267EB8Cf715455517F9BD5834AeAE3CeA1EBdbD8 | 18 | 4600 | 6200 | 10750 | 3500 | true | false | false | 0xCc92073dDe8aE03bAA1812AC5cF22e69b5E76914 | true | false | 0 |
8+
| sUSD | 0x57Ab1ec28D129707052df4dF418D58a2D46d5f51 | 0x6C5024Cd4F8A59110119C56f8933403A539555EB | 0x30B0f7324feDF89d8eff397275F8983397eFe4af | 0xdC6a3Ab17299D9C2A412B0e0a4C1f55446AE0817 | 18 | 0 | 0 | 0 | 2000 | false | true | false | 0x3082D0a473385Ed2cbd1f16087ab8b7BF79f0355 | true | false | 0 |
9+
| TUSD | 0x0000000000085d4780B73119b644AE5ecd22b376 | 0x101cc05f4A51C0319f570d5E146a8C625198e636 | 0x7f38d60D94652072b2C44a18c0e14A481EC3C0dd | 0x01C0eb1f8c6F1C1bF74ae028697ce7AA2a8b0E92 | 18 | 8000 | 8250 | 10500 | 500 | true | true | true | 0x6bcE15B789e537f3abA3C60CB183F0E8737f05eC | true | false | 100000000000000000000000000 |
10+
-| USDC | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | 0xBcca60bB61934080951369a648Fb03DF4F96263C | 0xE4922afAB0BbaDd8ab2a88E0C79d884Ad337fcA6 | 0x619beb58998eD2278e08620f97007e1116D5D25b | 6 | 8000 | 8750 | 10450 | 1000 | true | true | true | 0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27 | true | false | 90000000000000000000000000 |
11+
+| USDC | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | 0xBcca60bB61934080951369a648Fb03DF4F96263C | 0xE4922afAB0BbaDd8ab2a88E0C79d884Ad337fcA6 | 0x619beb58998eD2278e08620f97007e1116D5D25b | 6 | 8000 | 8750 | 10450 | 1000 | true | true | true | 0xc76EF342898f1AE7E6C4632627Df683FAD8563DD | true | false | 90000000000000000000000000 |
12+
| CRV | 0xD533a949740bb3306d119CC777fa900bA034cd52 | 0x8dAE6Cb04688C62d939ed9B68d32Bc62e49970b1 | 0x9288059a74f589C919c7Cf1Db433251CdFEB874B | 0x00ad8eBF64F141f1C81e9f8f792d3d1631c6c684 | 18 | 5200 | 5800 | 10800 | 2000 | true | false | false | 0xE3a3DE71B827cB73663A24cDB6243bA7F986cC3b | true | false | 30000000000000000000000000 |
13+
| GUSD | 0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd | 0xD37EE7e4f452C6638c96536e68090De8cBcdb583 | 0xf8aC64ec6Ff8E0028b37EB89772d21865321bCe0 | 0x279AF5b99540c1A3A7E3CDd326e19659401eF99e | 2 | 0 | 0 | 0 | 1000 | false | true | false | 0x2893405d64a7Bc8Db02Fa617351a5399d59eCf8D | true | false | 40000000000000000000000000 |
14+
| BAL | 0xba100000625a3754423978a60c9317c58a424e3D | 0x272F97b7a56a387aE942350bBC7Df5700f8a4576 | 0xe569d31590307d05DA3812964F1eDd551D665a0b | 0x13210D4Fe0d5402bd7Ecbc4B5bC5cFcA3b71adB0 | 18 | 6500 | 7000 | 10800 | 2000 | true | false | false | 0x04c28D6fE897859153eA753f986cc249Bf064f71 | true | true | 30000000000000000000000000 |
15+
@@ -66,7 +66,7 @@
16+
| 0xCc92073dDe8aE03bAA1812AC5cF22e69b5E76914 | 0 | 0 | 30000000000000000000000000 | 120000000000000000000000000 | 1000000000000000000000000000 | 800000000000000000000000000 | 200000000000000000000000000 |
17+
| 0x3082D0a473385Ed2cbd1f16087ab8b7BF79f0355 | 0 | 0 | 0 | 40000000000000000000000000 | 1000000000000000000000000000 | 800000000000000000000000000 | 200000000000000000000000000 |
18+
| 0x6bcE15B789e537f3abA3C60CB183F0E8737f05eC | 20000000000000000000000000 | 1000000000000000000000000000 | 0 | 40000000000000000000000000 | 1000000000000000000000000000 | 800000000000000000000000000 | 200000000000000000000000000 |
19+
-| 0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27 | 20000000000000000000000000 | 600000000000000000000000000 | 0 | 40000000000000000000000000 | 600000000000000000000000000 | 900000000000000000000000000 | 100000000000000000000000000 |
20+
+| 0xc76EF342898f1AE7E6C4632627Df683FAD8563DD | 690000000000000000000000000 | 600000000000000000000000000 | 0 | 420000000000000000000000000 | 600000000000000000000000000 | 690000000000000000000000000 | 310000000000000000000000000 |
21+
| 0x2893405d64a7Bc8Db02Fa617351a5399d59eCf8D | 40000000000000000000000000 | 1000000000000000000000000000 | 0 | 40000000000000000000000000 | 1000000000000000000000000000 | 800000000000000000000000000 | 200000000000000000000000000 |
22+
| 0x04c28D6fE897859153eA753f986cc249Bf064f71 | 100000000000000000000000000 | 3000000000000000000000000000 | 30000000000000000000000000 | 140000000000000000000000000 | 1500000000000000000000000000 | 800000000000000000000000000 | 200000000000000000000000000 |
23+
| 0xb49034Ada4BE5c6Bb3823A623C6250267110b06b | 0 | 0 | 0 | 70000000000000000000000000 | 3000000000000000000000000000 | 450000000000000000000000000 | 550000000000000000000000000 |```

lib/aave-address-book

0 commit comments

Comments
 (0)