diff --git a/.assets/021926cd285ee1fba70b3acf461b0293ae08fb03.svg b/.assets/021926cd285ee1fba70b3acf461b0293ae08fb03.svg
deleted file mode 100644
index bacea5dfe..000000000
--- a/.assets/021926cd285ee1fba70b3acf461b0293ae08fb03.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/.assets/0840a59c8c432cbe6f37694bbe31a2d331363c7b.svg b/.assets/0840a59c8c432cbe6f37694bbe31a2d331363c7b.svg
new file mode 100644
index 000000000..7e173c7fa
--- /dev/null
+++ b/.assets/0840a59c8c432cbe6f37694bbe31a2d331363c7b.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/0d7fef836e3858d0db22265c3110d7ca043a7657.svg b/.assets/0d7fef836e3858d0db22265c3110d7ca043a7657.svg
new file mode 100644
index 000000000..b7151ad28
--- /dev/null
+++ b/.assets/0d7fef836e3858d0db22265c3110d7ca043a7657.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 45%Optimal 45%
\ No newline at end of file
diff --git a/.assets/0efb94ca8399a809f0604c48b7139249d813e785.svg b/.assets/0efb94ca8399a809f0604c48b7139249d813e785.svg
deleted file mode 100644
index 7924b8fef..000000000
--- a/.assets/0efb94ca8399a809f0604c48b7139249d813e785.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/1571932d0fcbd41e429b19c18a080afc59cc51fe.svg b/.assets/1571932d0fcbd41e429b19c18a080afc59cc51fe.svg
deleted file mode 100644
index 99fb7d999..000000000
--- a/.assets/1571932d0fcbd41e429b19c18a080afc59cc51fe.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%Optimal 90%Optimal 90%
\ No newline at end of file
diff --git a/.assets/1a8c34e80e24e6ccaf0f1681a4f94fdcba67eb2c.svg b/.assets/1a8c34e80e24e6ccaf0f1681a4f94fdcba67eb2c.svg
new file mode 100644
index 000000000..2d38b2c7a
--- /dev/null
+++ b/.assets/1a8c34e80e24e6ccaf0f1681a4f94fdcba67eb2c.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/1ee1814a06c37c32f0efd02a4fda97a8278b0714.svg b/.assets/1ee1814a06c37c32f0efd02a4fda97a8278b0714.svg
deleted file mode 100644
index c61b9927f..000000000
--- a/.assets/1ee1814a06c37c32f0efd02a4fda97a8278b0714.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%Optimal 90%Optimal 90%
\ No newline at end of file
diff --git a/.assets/2765736168100defb74c36ef37d1d25b6d8e6ab2.svg b/.assets/2765736168100defb74c36ef37d1d25b6d8e6ab2.svg
new file mode 100644
index 000000000..c55b74d8f
--- /dev/null
+++ b/.assets/2765736168100defb74c36ef37d1d25b6d8e6ab2.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/2e987a4911a41c316461bd57acf38be5b6ae837b.svg b/.assets/2e987a4911a41c316461bd57acf38be5b6ae837b.svg
deleted file mode 100644
index 889af50e1..000000000
--- a/.assets/2e987a4911a41c316461bd57acf38be5b6ae837b.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/330013c26457182fd9217e67c8443bffe9a1b607.svg b/.assets/330013c26457182fd9217e67c8443bffe9a1b607.svg
deleted file mode 100644
index b85dc1a6e..000000000
--- a/.assets/330013c26457182fd9217e67c8443bffe9a1b607.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/42d7d49925c7332e1ea4d2798e5c76818cd4496f.svg b/.assets/42d7d49925c7332e1ea4d2798e5c76818cd4496f.svg
deleted file mode 100644
index ac7c8a143..000000000
--- a/.assets/42d7d49925c7332e1ea4d2798e5c76818cd4496f.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 45%Optimal 45%
\ No newline at end of file
diff --git a/.assets/476ff20939889da0d22c72400271f9f8e240b721.svg b/.assets/476ff20939889da0d22c72400271f9f8e240b721.svg
new file mode 100644
index 000000000..24c44b2c6
--- /dev/null
+++ b/.assets/476ff20939889da0d22c72400271f9f8e240b721.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/4e8709042699525ed81e0dac3fda0c7777197541.svg b/.assets/4e8709042699525ed81e0dac3fda0c7777197541.svg
new file mode 100644
index 000000000..6d1c68d7f
--- /dev/null
+++ b/.assets/4e8709042699525ed81e0dac3fda0c7777197541.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 50%Optimal 50%
\ No newline at end of file
diff --git a/.assets/512f54d63a2494f0efb20965bcc816e1ac4e20dc.svg b/.assets/512f54d63a2494f0efb20965bcc816e1ac4e20dc.svg
new file mode 100644
index 000000000..1871ec1b6
--- /dev/null
+++ b/.assets/512f54d63a2494f0efb20965bcc816e1ac4e20dc.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 65%Optimal 65%
\ No newline at end of file
diff --git a/.assets/53a7f61d5d21127368cc0bea20bad5a01ea1b315.svg b/.assets/53a7f61d5d21127368cc0bea20bad5a01ea1b315.svg
new file mode 100644
index 000000000..46b2de123
--- /dev/null
+++ b/.assets/53a7f61d5d21127368cc0bea20bad5a01ea1b315.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 45%Optimal 45%
\ No newline at end of file
diff --git a/.assets/560aedf1df6c1d7f2e113b0b9d519f23de386bd3.svg b/.assets/560aedf1df6c1d7f2e113b0b9d519f23de386bd3.svg
deleted file mode 100644
index 58214672d..000000000
--- a/.assets/560aedf1df6c1d7f2e113b0b9d519f23de386bd3.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%Optimal 50%Optimal 50%
\ No newline at end of file
diff --git a/.assets/580220443634a43f0f202f2f55e802420e34aaef.svg b/.assets/580220443634a43f0f202f2f55e802420e34aaef.svg
new file mode 100644
index 000000000..b170a3203
--- /dev/null
+++ b/.assets/580220443634a43f0f202f2f55e802420e34aaef.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 1%Optimal 1%
\ No newline at end of file
diff --git a/.assets/5bbaf463ca5ee6f64b55fc3341caa8cbcee3dfaa.svg b/.assets/5bbaf463ca5ee6f64b55fc3341caa8cbcee3dfaa.svg
deleted file mode 100644
index 9b3fea0bc..000000000
--- a/.assets/5bbaf463ca5ee6f64b55fc3341caa8cbcee3dfaa.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 75%Optimal 75%
\ No newline at end of file
diff --git a/.assets/5cc8da050368b3e9a8420d21fa866a16cd9b256b.svg b/.assets/5cc8da050368b3e9a8420d21fa866a16cd9b256b.svg
new file mode 100644
index 000000000..2d7e24cb3
--- /dev/null
+++ b/.assets/5cc8da050368b3e9a8420d21fa866a16cd9b256b.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%100%Optimal 70%Optimal 70%
\ No newline at end of file
diff --git a/.assets/704f19cf0e34dff3f9cc310e94fefbf076d4b4ee.svg b/.assets/704f19cf0e34dff3f9cc310e94fefbf076d4b4ee.svg
deleted file mode 100644
index 2b883e106..000000000
--- a/.assets/704f19cf0e34dff3f9cc310e94fefbf076d4b4ee.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/9024b25803beaac85c9e1e00e50e08c212c3d6ee.svg b/.assets/9024b25803beaac85c9e1e00e50e08c212c3d6ee.svg
new file mode 100644
index 000000000..f5bf393be
--- /dev/null
+++ b/.assets/9024b25803beaac85c9e1e00e50e08c212c3d6ee.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 65%Optimal 65%
\ No newline at end of file
diff --git a/.assets/b10a47386e954467cec43720ed9cf782b044323c.svg b/.assets/b10a47386e954467cec43720ed9cf782b044323c.svg
new file mode 100644
index 000000000..24422e56b
--- /dev/null
+++ b/.assets/b10a47386e954467cec43720ed9cf782b044323c.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 1%Optimal 1%
\ No newline at end of file
diff --git a/.assets/bd20cf9450361f13f334b9c702978621478db3ef.svg b/.assets/bd20cf9450361f13f334b9c702978621478db3ef.svg
new file mode 100644
index 000000000..4ae2e6a09
--- /dev/null
+++ b/.assets/bd20cf9450361f13f334b9c702978621478db3ef.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/c415a8c57745a62d63e11134fe8acf5059377542.svg b/.assets/c415a8c57745a62d63e11134fe8acf5059377542.svg
deleted file mode 100644
index f479e4b44..000000000
--- a/.assets/c415a8c57745a62d63e11134fe8acf5059377542.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/c68564d8f84cae803b5ce093e3c16a2320d839a3.svg b/.assets/c68564d8f84cae803b5ce093e3c16a2320d839a3.svg
deleted file mode 100644
index 0bf7ca3fe..000000000
--- a/.assets/c68564d8f84cae803b5ce093e3c16a2320d839a3.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/ca980764f838d8ca4360a8d41134c2b88ecb7267.svg b/.assets/ca980764f838d8ca4360a8d41134c2b88ecb7267.svg
new file mode 100644
index 000000000..fd7fd2d7b
--- /dev/null
+++ b/.assets/ca980764f838d8ca4360a8d41134c2b88ecb7267.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/cb915942068dba199ca11ffeb52b7307ca371150.svg b/.assets/cb915942068dba199ca11ffeb52b7307ca371150.svg
deleted file mode 100644
index 2a07c91eb..000000000
--- a/.assets/cb915942068dba199ca11ffeb52b7307ca371150.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%Optimal 45%Optimal 45%
\ No newline at end of file
diff --git a/.assets/cded74de0afe7038dd7aeafec3706fca30b9c4cb.svg b/.assets/cded74de0afe7038dd7aeafec3706fca30b9c4cb.svg
new file mode 100644
index 000000000..f0e64bfa0
--- /dev/null
+++ b/.assets/cded74de0afe7038dd7aeafec3706fca30b9c4cb.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 45%Optimal 45%
\ No newline at end of file
diff --git a/.assets/d3533b46a606ea3ecf5d2c9d4131c8d9d3d7fcfe.svg b/.assets/d3533b46a606ea3ecf5d2c9d4131c8d9d3d7fcfe.svg
deleted file mode 100644
index 83b2a6954..000000000
--- a/.assets/d3533b46a606ea3ecf5d2c9d4131c8d9d3d7fcfe.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%100%200%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/d697dc9dd6b6e40ecb1ed1cd027e997e9d1a4cc0.svg b/.assets/d697dc9dd6b6e40ecb1ed1cd027e997e9d1a4cc0.svg
deleted file mode 100644
index 4dcfaf825..000000000
--- a/.assets/d697dc9dd6b6e40ecb1ed1cd027e997e9d1a4cc0.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%500%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/dbeb3e57d4e28d7fd4b450d05caf6b3d30d3fd64.svg b/.assets/dbeb3e57d4e28d7fd4b450d05caf6b3d30d3fd64.svg
new file mode 100644
index 000000000..82263d204
--- /dev/null
+++ b/.assets/dbeb3e57d4e28d7fd4b450d05caf6b3d30d3fd64.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/e6957fe4c310ba51f499314c131f0977304a09d1.svg b/.assets/e6957fe4c310ba51f499314c131f0977304a09d1.svg
deleted file mode 100644
index da37df2f5..000000000
--- a/.assets/e6957fe4c310ba51f499314c131f0977304a09d1.svg
+++ /dev/null
@@ -1 +0,0 @@
- Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/.assets/ed311be06517702c412391a895f26a4198836af6.svg b/.assets/ed311be06517702c412391a895f26a4198836af6.svg
new file mode 100644
index 000000000..da360bbd0
--- /dev/null
+++ b/.assets/ed311be06517702c412391a895f26a4198836af6.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%200%400%Optimal 45%Optimal 45%
\ No newline at end of file
diff --git a/.assets/faca7fdf8c83324f67a2ee404d914301ae9aae49.svg b/.assets/faca7fdf8c83324f67a2ee404d914301ae9aae49.svg
new file mode 100644
index 000000000..209e35f30
--- /dev/null
+++ b/.assets/faca7fdf8c83324f67a2ee404d914301ae9aae49.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%Optimal 90%Optimal 90%
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index 11a62babb..837cb4ae2 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,6 +7,3 @@
[submodule "lib/aave-address-book"]
path = lib/aave-address-book
url = https://github.com/bgd-labs/aave-address-book
-[submodule "lib/governance-crosschain-bridges"]
- path = lib/governance-crosschain-bridges
- url = https://github.com/aave/governance-crosschain-bridges
diff --git a/diffs/preTestV2RatesUpdates_postTestV2RatesUpdates.md b/diffs/preTestV2RatesUpdates_postTestV2RatesUpdates.md
index be27e63b9..9893bd8fa 100644
--- a/diffs/preTestV2RatesUpdates_postTestV2RatesUpdates.md
+++ b/diffs/preTestV2RatesUpdates_postTestV2RatesUpdates.md
@@ -6,12 +6,12 @@
| description | value before | value after |
| --- | --- | --- |
-| interestRateStrategy | [0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27](https://etherscan.io/address/0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27) | [0xc76EF342898f1AE7E6C4632627Df683FAD8563DD](https://etherscan.io/address/0xc76EF342898f1AE7E6C4632627Df683FAD8563DD) |
+| interestRateStrategy | [0xb72F23adE9b9980c2E731Ca504105fC860643619](https://etherscan.io/address/0xb72F23adE9b9980c2E731Ca504105fC860643619) | [0x7A297125a0Ea56cCC237Cb87b1Ab1F729353d4D2](https://etherscan.io/address/0x7A297125a0Ea56cCC237Cb87b1Ab1F729353d4D2) |
| optimalUsageRatio | 90 % | 69 % |
| maxExcessUsageRatio | 10 % | 31 % |
-| variableRateSlope1 | 4 % | 42 % |
+| variableRateSlope1 | 6 % | 42 % |
| stableRateSlope1 | 2 % | 69 % |
-| interestRate |  |  |
+| interestRate |  |  |
## Raw diff
@@ -20,13 +20,13 @@
"reserves": {
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": {
"interestRateStrategy": {
- "from": "0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27",
- "to": "0xc76EF342898f1AE7E6C4632627Df683FAD8563DD"
+ "from": "0xb72F23adE9b9980c2E731Ca504105fC860643619",
+ "to": "0x7A297125a0Ea56cCC237Cb87b1Ab1F729353d4D2"
}
}
},
"strategies": {
- "0xc76EF342898f1AE7E6C4632627Df683FAD8563DD": {
+ "0x7A297125a0Ea56cCC237Cb87b1Ab1F729353d4D2": {
"from": null,
"to": {
"baseVariableBorrowRate": 0,
diff --git a/lib/governance-crosschain-bridges b/lib/governance-crosschain-bridges
deleted file mode 160000
index 57dd43969..000000000
--- a/lib/governance-crosschain-bridges
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 57dd43969a68eb076fdbeae2953b572534694986
diff --git a/remappings.txt b/remappings.txt
index abcb66ce2..d564e7208 100644
--- a/remappings.txt
+++ b/remappings.txt
@@ -6,4 +6,3 @@ aave-v3-periphery/=lib/aave-address-book/lib/aave-v3-periphery/
ds-test/=lib/forge-std/lib/ds-test/src/
forge-std/=lib/forge-std/src/
solidity-utils/=lib/solidity-utils/src/
-governance-crosschain-bridges/=lib/governance-crosschain-bridges/
diff --git a/reports/postTestV2RatesUpdates.json b/reports/postTestV2RatesUpdates.json
index 6d5c8377d..d43ced055 100644
--- a/reports/postTestV2RatesUpdates.json
+++ b/reports/postTestV2RatesUpdates.json
@@ -1,13 +1,13 @@
{
"chainId": 1,
"poolConfig": {
- "lendingPoolCollateralManager": "0xbd4765210d4167CE2A5b87280D9E8Ee316D5EC7C",
+ "lendingPoolCollateralManager": "0x368e6441bB27159c6e8e6d3bbd9147BEcBA915E3",
"oracle": "0xA50ba011c48153De246E5192C8f9258A2ba79Ca9",
"pool": "0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9",
"poolAddressesProvider": "0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5",
"poolConfigurator": "0x311Bb771e4F8952E6Da169b425E7e92d6Ac45756",
- "poolConfiguratorImpl": "0x3a95Ee42f080ff7289C8B4a14EB483a8644d7521",
- "poolImpl": "0xC6845a5C768BF8D7681249f8927877Efda425baf",
+ "poolConfiguratorImpl": "0x246ca67522dF5895cD6cf8807Ec161954ea1bA61",
+ "poolImpl": "0x085E34722e04567Df9E6d2c32e82fd74f3342e79",
"protocolDataProvider": "0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d"
},
"reserves": {
@@ -17,22 +17,22 @@
"aTokenName": "Aave interest bearing TUSD",
"aTokenSymbol": "aTUSD",
"baseStableBorrowRate": 100000000000000000000000000,
- "borrowingEnabled": true,
+ "borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x6bcE15B789e537f3abA3C60CB183F0E8737f05eC",
+ "interestRateStrategy": "0xb70e28437Aec70a8cfE5240F54c463cF849bE17C",
"isActive": true,
- "isFrozen": false,
- "liquidationBonus": 10500,
- "liquidationThreshold": 8250,
- "ltv": 8000,
+ "isFrozen": true,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 6500,
+ "ltv": 0,
"oracle": "0x3886BA987236181D98F2401c507Fb8BeA7871dF2",
"oracleDecimals": 18,
"oracleDescription": "TUSD / ETH",
- "oracleLatestAnswer": 610682580000000,
- "reserveFactor": 500,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 401284370109943,
+ "reserveFactor": 9990,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x7f38d60D94652072b2C44a18c0e14A481EC3C0dd",
- "stableDebtTokenImpl": "0x95Ce83DF0B8A45072D0330Cf5A1e0c8CAA43D192",
+ "stableDebtTokenImpl": "0x00C15a6aaF1e48763B53A9dc8D2077551BA45Fee",
"stableDebtTokenName": "Aave stable debt bearing TUSD",
"stableDebtTokenSymbol": "stableDebtTUSD",
"symbol": "TUSD",
@@ -45,13 +45,13 @@
},
"0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919": {
"aToken": "0xc9BC48c72154ef3e5425641a3c747242112a46AF",
- "aTokenImpl": "0xB97Fa7A950B19C8Fe7d9bcD06909D3e67F20f16a",
+ "aTokenImpl": "0x2CDE0f77CF5d54e9417480a8611AA2fEcD56BbD9",
"aTokenName": "Aave interest bearing RAI",
"aTokenSymbol": "aRAI",
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xA7d4df837926cD55036175AfeF38395d56A64c22",
+ "interestRateStrategy": "0xc83cDb49F234EC6666D7857B3EAa1302b109394C",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -60,8 +60,8 @@
"oracle": "0x4ad7B025127e89263242aB68F0f9c4E5C033B489",
"oracleDecimals": 18,
"oracleDescription": "RAI / ETH",
- "oracleLatestAnswer": 1711020815907047,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 1172820903069477,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x9C72B8476C33AE214ee3e8C20F0bc28496a62032",
"stableDebtTokenImpl": "0xf37E202E587c6f63FD70F35C24Eb7f818CC5d01A",
@@ -83,15 +83,15 @@
"baseStableBorrowRate": 40000000000000000000000000,
"borrowingEnabled": true,
"decimals": 2,
- "interestRateStrategy": "0x2893405d64a7Bc8Db02Fa617351a5399d59eCf8D",
+ "interestRateStrategy": "0x999F449fEAfaAd78CE5702A9ebc460633478D4a4",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
"liquidationThreshold": 0,
"ltv": 0,
"oracle": "0xEc6f4Cd64d28Ef32507e2dc399948aAe9Bbedd7e",
- "oracleLatestAnswer": 610545521752085,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 406781720021913,
+ "reserveFactor": 2000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xf8aC64ec6Ff8E0028b37EB89772d21865321bCe0",
"stableDebtTokenImpl": "0xEddC66EB4a0aD3be434cBb1c2E7d17cE805D7a28",
@@ -113,20 +113,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xBdfC85b140edF1FeaFd6eD664027AA4C23b4A29F",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 7000,
- "ltv": 6500,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x0d16d4528239e9ee52fa531af613AcdB23D88c94",
"oracleDecimals": 18,
"oracleDescription": "BAT / ETH",
- "oracleLatestAnswer": 182276893023327,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 93749950000000,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x277f8676FAcf4dAA5a6EA38ba511B7F65AA02f9F",
- "stableDebtTokenImpl": "0x917fd53da13EDCCE5c155a7dbC73E1e4DcCd4267",
+ "stableDebtTokenImpl": "0x49B6645a9aa05f1Be24893136100467276399470",
"stableDebtTokenName": "Aave stable debt bearing BAT",
"stableDebtTokenSymbol": "stableDebtBAT",
"symbol": "BAT",
@@ -145,20 +145,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x004fC239848D8A8d3304729b78ba81d73d83C99F",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 7500,
- "ltv": 6150,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x82A44D92D6c329826dc557c5E1Be6ebeC5D5FeB9",
"oracleDecimals": 18,
"oracleDescription": "MANA / ETH",
- "oracleLatestAnswer": 395309373203460,
- "reserveFactor": 3500,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 178015486813397,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xD86C74eA2224f4B8591560652b50035E4e5c0a3b",
- "stableDebtTokenImpl": "0x441c5CD55E9e3267D02F7b1b4D245AA1C61891c3",
+ "stableDebtTokenImpl": "0xe0bf71fF662e8bbeb911ACEa765f4b8be052F59b",
"stableDebtTokenName": "Aave stable debt bearing MANA",
"stableDebtTokenSymbol": "stableDebtMANA",
"symbol": "MANA",
@@ -177,17 +177,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xfd71623D7F41360aefE200de4f17E20A29e1d58C",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 6500,
- "ltv": 5000,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x7c5d4F8345e66f68099581Db340cd65B078C41f4",
"oracleDecimals": 18,
"oracleDescription": "YFI / ETH",
- "oracleLatestAnswer": 5686591566150553000,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 3047678145187916000,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xca823F78C2Dd38993284bb42Ba9b14152082F7BD",
"stableDebtTokenImpl": "0x802Bb38676B6E79C393a3E3EC73b8Af63578188a",
@@ -209,17 +209,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xb2eD1eCE1c13455Ce9299d35D3B00358529f3Dc8",
+ "interestRateStrategy": "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10850,
- "liquidationThreshold": 5000,
- "ltv": 4000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x72AFAECF99C9d9C8215fF44C77B94B99C28741e8",
"oracleDecimals": 18,
"oracleDescription": "1INCH / ETH",
- "oracleLatestAnswer": 349400000000000,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 173342672736174,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x1278d6ED804d59d2d18a5Aa5638DfD591A79aF0a",
"stableDebtTokenImpl": "0x9C2114Bf70774C36E9b8d6c790c9C14FF0d6799E",
@@ -241,17 +241,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x9440aEc0795D7485e58bCF26622c2f4A681A9671",
+ "interestRateStrategy": "0xA12D7bB07379ad6de4497B80088e28D4C00932D1",
"isActive": true,
- "isFrozen": false,
- "liquidationBonus": 10750,
- "liquidationThreshold": 7000,
- "ltv": 6500,
+ "isFrozen": true,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x029849bbc0b1d93b85a8b6190e979fd38F5760E2",
"oracleDecimals": 18,
"oracleDescription": "DPI / ETH",
- "oracleLatestAnswer": 53042159775707955,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 41364111962536074,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xa3953F07f389d719F99FC378ebDb9276177d8A6e",
"stableDebtTokenImpl": "0x0f2d35d52a65c4CC98e345C3B478E75f7E4B9c2a",
@@ -273,20 +273,20 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x24ABFac8dd8f270D752837fDFe3B3C735361f4eE",
+ "interestRateStrategy": "0x87cCa171a2125efca9868F9Bc1FfD7B7c80dC5a3",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10900,
- "liquidationThreshold": 7700,
- "ltv": 6500,
+ "liquidationThreshold": 2000,
+ "ltv": 0,
"oracle": "0xD6aA3D25116d8dA79Ea0246c4826EB951872e02e",
"oracleDecimals": 18,
"oracleDescription": "UNI / ETH",
- "oracleLatestAnswer": 3993507224186989,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 2616213076346605,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xD939F7430dC8D5a427f156dE1012A56C18AcB6Aa",
- "stableDebtTokenImpl": "0xe4759007A1E6014DD92EBB33A293e0dfE85A8Ffe",
+ "stableDebtTokenImpl": "0x54f514CA167e1fc19231dA9a48bB7AA6ffe4F10d",
"stableDebtTokenName": "Aave stable debt bearing UNI",
"stableDebtTokenSymbol": "stableDebtUNI",
"symbol": "UNI",
@@ -305,20 +305,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": true,
"decimals": 8,
- "interestRateStrategy": "0xf41E8F817e6C399d1AdE102059c454093b24f35B",
+ "interestRateStrategy": "0x32f3A6134590fc2d9440663d35a2F0a6265F04c4",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 10500,
"liquidationThreshold": 8200,
"ltv": 7200,
- "oracle": "0xdeb288F737066589598e9214E782fa5A8eD689e8",
+ "oracle": "0xFD858c8bC5ac5e10f01018bC78471bb0DC392247",
"oracleDecimals": 18,
- "oracleDescription": "BTC / ETH",
- "oracleLatestAnswer": 14363022524949910000,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleDescription": "wBTC/BTC/ETH",
+ "oracleLatestAnswer": 16842786004805376363,
+ "reserveFactor": 3000,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x51B039b9AFE64B78758f8Ef091211b5387eA717c",
- "stableDebtTokenImpl": "0x6Ac108C4c3Fe7F4D367513F599Da1B9dF7c43433",
+ "stableDebtTokenImpl": "0x4f279f2046870F77cd9Ce63497f8A2D8689ef804",
"stableDebtTokenName": "Aave stable debt bearing WBTC",
"stableDebtTokenSymbol": "stableDebtWBTC",
"symbol": "WBTC",
@@ -337,20 +337,20 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x9B1e3C7483F0f21abFEaE3AeBC9b47b5f23f5bB0",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 6000,
- "ltv": 5500,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x3147D7203354Dc06D9fd350c7a2437bcA92387a4",
"oracleDecimals": 18,
"oracleDescription": "REN / ETH",
- "oracleLatestAnswer": 63713924764907,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 22610981899079,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x3356Ec1eFA75d9D150Da1EC7d944D9EDf73703B7",
- "stableDebtTokenImpl": "0x7b3E7Aea49A5F5d2514B9317d4cF58f828Ac28C2",
+ "stableDebtTokenImpl": "0x6F4B277366e10F68003A0a65Ef8f118f3D60B67E",
"stableDebtTokenName": "Aave stable debt bearing REN",
"stableDebtTokenSymbol": "stableDebtREN",
"symbol": "REN",
@@ -369,7 +369,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x26D40544447F68a3De69005822195549934624B9",
+ "interestRateStrategy": "0xF1AafF9a4Da6Bf4Fb8fc18d39C8ffdafbAACce69",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -378,8 +378,8 @@
"oracle": "0x614715d2Af89E6EC99A233818275142cE88d1Cfd",
"oracleDecimals": 18,
"oracleDescription": "BUSD / ETH",
- "oracleLatestAnswer": 607958172477733,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 407750083706476,
+ "reserveFactor": 9990,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x4A7A63909A72D268b1D8a93a9395d098688e0e5C",
"stableDebtTokenImpl": "0x8A36603a2a66182C9f1F81d22B7B95ff8DEeD432",
@@ -401,17 +401,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x1dA981865AE7a0C838eFBF4C7DFecb5c7268E73A",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 10850,
- "liquidationThreshold": 4500,
- "ltv": 3500,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0xC9CbF687f43176B302F03f5e58470b77D07c61c6",
"oracleDecimals": 18,
"oracleDescription": "CVX / ETH",
- "oracleLatestAnswer": 3742055994347318,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 1179368876420195,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xB01Eb1cE1Da06179136D561766fc2d609C5F55Eb",
"stableDebtTokenImpl": "0x10638C31Daeee246f0026f7174E1f30fB17010F5",
@@ -435,18 +435,18 @@
"decimals": 18,
"interestRateStrategy": "0xED6547b83276B076B771B88FcCbD68BDeDb3927f",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10700,
- "liquidationThreshold": 8300,
- "ltv": 7000,
+ "liquidationThreshold": 7400,
+ "ltv": 0,
"oracle": "0xDC530D9457755926550b59e8ECcdaE7624181557",
"oracleDecimals": 18,
"oracleDescription": "LINK / ETH",
- "oracleLatestAnswer": 4479000000000001,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 5916460000000000,
+ "reserveFactor": 3000,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xFB4AEc4Cc858F2539EBd3D37f2a43eAe5b15b98a",
- "stableDebtTokenImpl": "0xAdc313f17a3e2180f609a45d7B381a45E2e88a9F",
+ "stableDebtTokenImpl": "0x1B80694AF3D4e617c747423f992F532B8baE098b",
"stableDebtTokenName": "Aave stable debt bearing LINK",
"stableDebtTokenSymbol": "stableDebtLINK",
"symbol": "LINK",
@@ -465,7 +465,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x3082D0a473385Ed2cbd1f16087ab8b7BF79f0355",
+ "interestRateStrategy": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -474,8 +474,8 @@
"oracle": "0x8e0b7e6062272B5eF4524250bFFF8e5Bd3497757",
"oracleDecimals": 18,
"oracleDescription": "SUSD / ETH",
- "oracleLatestAnswer": 617138770830382,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 407512114531422,
+ "reserveFactor": 3000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x30B0f7324feDF89d8eff397275F8983397eFe4af",
"stableDebtTokenImpl": "0x49EfDDb938a77C78816eF9f9B7F811C16611FdFD",
@@ -497,18 +497,18 @@
"baseStableBorrowRate": 100000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x545Ae1908B6F12e91E03B1DEC4F2e06D0570fE1b",
+ "interestRateStrategy": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
"liquidationThreshold": 0,
"ltv": 0,
"oracle": "0x60c0b047133f696334a2b7f68af0b49d2F3D4F72",
- "oracleLatestAnswer": 612368042872701,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 409761449002697,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x39f010127274b2dBdB770B45e1de54d974974526",
- "stableDebtTokenImpl": "0x595c33538215DC4B092F35Afc85d904631263f4F",
+ "stableDebtTokenImpl": "0x1363602E58e25929A15bE194a3D505Fd6F8BE751",
"stableDebtTokenName": "Aave stable debt bearing LUSD",
"stableDebtTokenSymbol": "stableDebtLUSD",
"symbol": "LUSD",
@@ -527,7 +527,7 @@
"baseStableBorrowRate": 100000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xfffE32106A68aA3eD39CcCE673B646423EEaB62a",
+ "interestRateStrategy": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 10400,
@@ -536,11 +536,11 @@
"oracle": "0x773616E4d11A78F511299002da57A0a94577F1f4",
"oracleDecimals": 18,
"oracleDescription": "DAI / ETH",
- "oracleLatestAnswer": 612859977965139,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 410105724359441,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x778A13D3eeb110A4f7bb6529F99c000119a08E92",
- "stableDebtTokenImpl": "0xD23A44eB2db8AD0817c994D3533528C030279F7c",
+ "stableDebtTokenImpl": "0xb44Fe5fA7A8fcF508984bE58bA807A22343B4493",
"stableDebtTokenName": "Aave stable debt bearing DAI",
"stableDebtTokenSymbol": "stableDebtDAI",
"symbol": "DAI",
@@ -568,7 +568,7 @@
"oracle": "0x6Df09E975c830ECae5bd4eD9d90f3A95a4f88012",
"oracleDecimals": 18,
"oracleDescription": "AAVE / ETH",
- "oracleLatestAnswer": 48505366244397695,
+ "oracleLatestAnswer": 39515306483330896,
"reserveFactor": 0,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x079D6a3E844BcECf5720478A718Edb6575362C5f",
@@ -591,7 +591,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xb0a73aC3B10980A598685d4631c83f5348F5D32c",
+ "interestRateStrategy": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -600,8 +600,8 @@
"oracle": "0x14d04Fff8D21bd62987a5cE9ce543d2F1edF5D3E",
"oracleDecimals": 18,
"oracleDescription": "FRAX / ETH",
- "oracleLatestAnswer": 616977057978798,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 409908731055814,
+ "reserveFactor": 3000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x3916e3B6c84b161df1b2733dFfc9569a1dA710c2",
"stableDebtTokenImpl": "0x7E3Ddfceef69bEC3A38Fc9AE8D7A8c46D7788C6b",
@@ -623,17 +623,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xb49034Ada4BE5c6Bb3823A623C6250267110b06b",
+ "interestRateStrategy": "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10850,
- "liquidationThreshold": 6500,
- "ltv": 5000,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0xF05D9B6C08757EAcb1fbec18e36A1B7566a13DEB",
"oracleDecimals": 18,
"oracleDescription": "Calculated XSUSHI / ETH",
- "oracleLatestAnswer": 1082567401549168,
- "reserveFactor": 3500,
+ "oracleLatestAnswer": 565948785959684,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x73Bfb81D7dbA75C904f430eA8BAe82DB0D41187B",
"stableDebtTokenImpl": "0x0fF2eC6F80F83A54746DB9b9ac7F40ADBEfb3dB4",
@@ -655,7 +655,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x404d396fc42e20d14585A1a10Cd64BDdC6C6574A",
+ "interestRateStrategy": "0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -664,8 +664,8 @@
"oracle": "0x3a08ebBaB125224b7b6474384Ee39fBb247D2200",
"oracleDecimals": 18,
"oracleDescription": "PAX / ETH",
- "oracleLatestAnswer": 616220194971251,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 404325328035399,
+ "reserveFactor": 2000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x2387119bc85A74e0BBcbe190d80676CB16F10D4F",
"stableDebtTokenImpl": "0x9C3440F4aACA3312b632bE4A07C0f97B15c31c8b",
@@ -687,16 +687,16 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xF0bA2a8c12A2354c075b363765EAe825619bd490",
+ "interestRateStrategy": "0x795dC59EA6472Dfa4298A454C6E8Dcb005643A13",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10650,
- "liquidationThreshold": 7500,
- "ltv": 6500,
- "oracle": "0x7F0D2c2838c6AC24443d13e23d99490017bDe370",
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
+ "oracle": "0xac3AF0f4A52C577Cc2C241dF51a01FDe3D06D93B",
"oracleDecimals": 18,
- "oracleDescription": "FEI / ETH",
- "oracleLatestAnswer": 613596576602952,
+ "oracleDescription": "0.95/USD/ETH",
+ "oracleLatestAnswer": 386442634020817,
"reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xd89cF9E8A858F8B4b31Faf793505e112d6c17449",
@@ -719,20 +719,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xE3a3DE71B827cB73663A24cDB6243bA7F986cC3b",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10750,
- "liquidationThreshold": 6700,
- "ltv": 6200,
+ "liquidationThreshold": 1800,
+ "ltv": 0,
"oracle": "0x24551a8Fb2A7211A25a17B1481f043A8a8adC7f2",
"oracleDecimals": 18,
"oracleDescription": "MKR / ETH",
- "oracleLatestAnswer": 480035982884287950,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 796683976379186900,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xC01C8E4b12a89456a9fD4e4e75B72546Bf53f0B5",
- "stableDebtTokenImpl": "0x20f9027c5092739C58250CF456642E8e3D4dBEd5",
+ "stableDebtTokenImpl": "0xC4CFCE0b16199818Ad942a87902C9172ba005022",
"stableDebtTokenName": "Aave stable debt bearing MKR",
"stableDebtTokenSymbol": "stableDebtMKR",
"symbol": "MKR",
@@ -751,7 +751,7 @@
"baseStableBorrowRate": 90000000000000000000000000,
"borrowingEnabled": true,
"decimals": 6,
- "interestRateStrategy": "0xc76EF342898f1AE7E6C4632627Df683FAD8563DD",
+ "interestRateStrategy": "0x7A297125a0Ea56cCC237Cb87b1Ab1F729353d4D2",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 10450,
@@ -760,11 +760,11 @@
"oracle": "0x986b5E1e1755e3C2440e960477f25201B0a8bbD4",
"oracleDecimals": 18,
"oracleDescription": "USDC / ETH",
- "oracleLatestAnswer": 611599789718562,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 407011754295958,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xE4922afAB0BbaDd8ab2a88E0C79d884Ad337fcA6",
- "stableDebtTokenImpl": "0x3b2a77058a1Eb4403a90b94585FaB16Bc512E703",
+ "stableDebtTokenImpl": "0x8DFF7Fda82976452b6FB957F549944e7af7A3e6F",
"stableDebtTokenName": "Aave stable debt bearing USDC",
"stableDebtTokenSymbol": "stableDebtUSDC",
"symbol": "USDC",
@@ -783,17 +783,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xCc92073dDe8aE03bAA1812AC5cF22e69b5E76914",
+ "interestRateStrategy": "0xB2D822cAdb9040F3164829BC34e41a93cA3E01e5",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10750,
- "liquidationThreshold": 6200,
- "ltv": 4600,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x79291A9d692Df95334B1a0B3B4AE6bC606782f8c",
"oracleDecimals": 18,
"oracleDescription": "SNX / ETH",
- "oracleLatestAnswer": 1778640000000000,
- "reserveFactor": 3500,
+ "oracleLatestAnswer": 1356003312337918,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x8575c8ae70bDB71606A53AeA1c6789cB0fBF3166",
"stableDebtTokenImpl": "0x42321d7f519E9Bf2163B7B1685D379BC07A59C38",
@@ -823,10 +823,10 @@
"ltv": 8250,
"oracle": "0x0000000000000000000000000000000000000000",
"oracleLatestAnswer": 1000000000000000000,
- "reserveFactor": 1500,
- "stableBorrowRateEnabled": true,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x4e977830ba4bd783C0BB7F15d3e243f73FF57121",
- "stableDebtTokenImpl": "0xA558EA1A875f8b576f0728d32C39f62158e49b92",
+ "stableDebtTokenImpl": "0xEd14b4E51B04d4d0211474a721F77C0817166c2f",
"stableDebtTokenName": "Aave stable debt bearing WETH",
"stableDebtTokenSymbol": "stableDebtWETH",
"symbol": "WETH",
@@ -845,15 +845,15 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xb2eD1eCE1c13455Ce9299d35D3B00358529f3Dc8",
+ "interestRateStrategy": "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10800,
- "liquidationThreshold": 5700,
- "ltv": 4700,
+ "liquidationThreshold": 2400,
+ "ltv": 0,
"oracle": "0xd4641b75015E6536E8102D98479568D05D7123Db",
- "oracleLatestAnswer": 9738201071945762,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 8618752070239292,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x34441FFD1948E49dC7a607882D0c38Efd0083815",
"stableDebtTokenImpl": "0x5746b5b6650Dd8d9B1d9D1bbf5E7f23e9761183F",
@@ -875,7 +875,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 9,
- "interestRateStrategy": "0x84d1FaD9559b8AC1Fda17d073B8542c8Fb6986dd",
+ "interestRateStrategy": "0xB2D822cAdb9040F3164829BC34e41a93cA3E01e5",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -884,8 +884,8 @@
"oracle": "0x492575FDD11a0fCf2C6C719867890a7648d526eB",
"oracleDecimals": 18,
"oracleDescription": "AMPL / ETH",
- "oracleLatestAnswer": 620918820133552,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 450300119588682,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x18152C9f77DAdc737006e9430dB913159645fa87",
"stableDebtTokenImpl": "0x0e8f4fc4c261d454b13C74507Bce8C38AA990361",
@@ -916,7 +916,7 @@
"oracle": "0x0606Be69451B1C9861Ac6b3626b99093b713E801",
"oracleDecimals": 18,
"oracleDescription": "FIL / ETH",
- "oracleLatestAnswer": 4020977447693813,
+ "oracleLatestAnswer": 2287773603726078,
"reserveFactor": 3500,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xcAad05C49E14075077915cB5C820EB3245aFb950",
@@ -939,17 +939,17 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xE3a3DE71B827cB73663A24cDB6243bA7F986cC3b",
+ "interestRateStrategy": "0x35FE8C9924718f286463e659be35b4122eEe907F",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10800,
- "liquidationThreshold": 5800,
- "ltv": 5200,
+ "liquidationThreshold": 1800,
+ "ltv": 0,
"oracle": "0x8a12Be339B0cD1829b91Adc01977caa5E9ac121e",
"oracleDecimals": 18,
"oracleDescription": "CRV / ETH",
- "oracleLatestAnswer": 621505942576524,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 209322011170661,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x9288059a74f589C919c7Cf1Db433251CdFEB874B",
"stableDebtTokenImpl": "0x288672D311Da6edC89765204A6d309701e7289d4",
@@ -971,20 +971,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x1a4babC0e20d892167792AC79618273711afD3e7",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 6500,
- "ltv": 5500,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 1200,
+ "ltv": 0,
"oracle": "0x2Da4983a622a8498bb1a21FaE9D8F6C664939962",
"oracleDecimals": 18,
"oracleDescription": "ZRX / ETH",
- "oracleLatestAnswer": 161308174808789,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 128582334580025,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x071B4323a24E73A5afeEbe34118Cd21B8FAAF7C3",
- "stableDebtTokenImpl": "0x42a87BF47B5eFD11fa9Ddd5321BF9Aa502233b74",
+ "stableDebtTokenImpl": "0xffaCA447191d8196C8Cf96E5912b732063DE4307",
"stableDebtTokenName": "Aave stable debt bearing ZRX",
"stableDebtTokenSymbol": "stableDebtZRX",
"symbol": "ZRX",
@@ -1003,20 +1003,20 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x4a4fb6B26e7F516594b7242240039EA8FAAc897a",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10600,
- "liquidationThreshold": 6700,
- "ltv": 6000,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x24D9aB51950F3d62E9144fdC2f3135DAA6Ce8D1B",
"oracleDecimals": 18,
"oracleDescription": "ENJ / ETH",
- "oracleLatestAnswer": 292880000000000,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 118685890000000,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x943DcCA156b5312Aa24c1a08769D67FEce4ac14C",
- "stableDebtTokenImpl": "0x8286288f3c454b51DfC70bd0d6918220428B0741",
+ "stableDebtTokenImpl": "0x0fB427f800C5E39E7d8029e19F515300d4bb22C2",
"stableDebtTokenName": "Aave stable debt bearing ENJ",
"stableDebtTokenSymbol": "stableDebtENJ",
"symbol": "ENJ",
@@ -1035,7 +1035,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 6,
- "interestRateStrategy": "0x0dEDCaE8Eb22A2EFB597aBde1834173C47Cff186",
+ "interestRateStrategy": "0xc83cDb49F234EC6666D7857B3EAa1302b109394C",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -1044,8 +1044,8 @@
"oracle": "0xa20623070413d42a5C01Db2c8111640DD7A5A03a",
"oracleDecimals": 18,
"oracleDescription": "UST / ETH",
- "oracleLatestAnswer": 16780133340039,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 11773404322311,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x7FDbfB0412700D94403c42cA3CAEeeA183F07B26",
"stableDebtTokenImpl": "0x107ed1832647436a0D39F09e65f4aA920242C0BB",
@@ -1073,10 +1073,10 @@
"liquidationBonus": 10700,
"liquidationThreshold": 8300,
"ltv": 7200,
- "oracle": "0x86392dC19c0b719886221c78AB11eb8Cf5c52812",
+ "oracle": "0xADE6CBA6c45aa8E9d0337cAc3D2619eabc39D901",
"oracleDecimals": 18,
- "oracleDescription": "STETH / ETH",
- "oracleLatestAnswer": 998251120000000000,
+ "oracleDescription": "stETH/ETH",
+ "oracleLatestAnswer": 1000000000000000000,
"reserveFactor": 1000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x66457616Dd8489dF5D0AFD8678F4A260088aAF55",
@@ -1099,17 +1099,17 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x04c28D6fE897859153eA753f986cc249Bf064f71",
+ "interestRateStrategy": "0xb873ec463CAC50112B0e14d060fbc4192406279f",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 10800,
- "liquidationThreshold": 7000,
- "ltv": 6500,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0xC1438AA3823A6Ba0C159CfA8D98dF5A994bA120b",
"oracleDecimals": 18,
"oracleDescription": "BAL / ETH",
- "oracleLatestAnswer": 4377483727566084,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 1617911746672069,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xe569d31590307d05DA3812964F1eDd551D665a0b",
"stableDebtTokenImpl": "0x58571484BD57a87E359e46F82dFa9D13087b24a0",
@@ -1125,13 +1125,13 @@
},
"0xdAC17F958D2ee523a2206206994597C13D831ec7": {
"aToken": "0x3Ed3B47Dd13EC9a98b44e6204A523E766B225811",
- "aTokenImpl": "0x3F06560cfB7af6E6B5102c358f679DE5150b3b4C",
+ "aTokenImpl": "0x9651F64Bd77550691EB2AeEb58188CB67F005902",
"aTokenName": "Aave interest bearing USDT",
"aTokenSymbol": "aUSDT",
"baseStableBorrowRate": 100000000000000000000000000,
"borrowingEnabled": true,
"decimals": 6,
- "interestRateStrategy": "0x33DeAc0861FD6a9235b86172AA939E79085c6f52",
+ "interestRateStrategy": "0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -1140,11 +1140,11 @@
"oracle": "0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46",
"oracleDecimals": 18,
"oracleDescription": "USDT / ETH",
- "oracleLatestAnswer": 611767949789453,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 406945750062059,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xe91D55AB2240594855aBd11b3faAE801Fd4c4687",
- "stableDebtTokenImpl": "0x9d4578c813D69745092a4F951753ed2B28056279",
+ "stableDebtTokenImpl": "0xC61262D6ad449AC09B4087f46391Dd9A26b5888B",
"stableDebtTokenName": "Aave stable debt bearing USDT",
"stableDebtTokenSymbol": "stableDebtUSDT",
"symbol": "USDT",
@@ -1163,20 +1163,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xFDBDa42D2aC1bfbbc10555eb255De8387b8977C4",
+ "interestRateStrategy": "0xeB65a3163Fd8900F4fE9a044e18966706b69A74D",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 11000,
- "liquidationThreshold": 7000,
- "ltv": 6000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x656c0544eF4C98A6a98491833A89204Abb045d6b",
"oracleDecimals": 18,
"oracleDescription": "KNC / ETH",
- "oracleLatestAnswer": 522346316958437,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 250135580000000,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x9915dfb872778B2890a117DA1F35F335eb06B54f",
- "stableDebtTokenImpl": "0xf818B175353F023E3EC1A098d040778b835897c7",
+ "stableDebtTokenImpl": "0x22a8FD718924ab2f9dd4D0326DD8ab99Ef21D0b3",
"stableDebtTokenName": "Aave stable debt bearing KNC",
"stableDebtTokenSymbol": "stableDebtKNC",
"symbol": "KNC",
@@ -1189,87 +1189,24 @@
}
},
"strategies": {
- "0x004fC239848D8A8d3304729b78ba81d73d83C99F": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
- },
- "0x04c28D6fE897859153eA753f986cc249Bf064f71": {
- "baseVariableBorrowRate": 30000000000000000000000000,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 140000000000000000000000000,
- "variableRateSlope2": 1500000000000000000000000000
- },
- "0x0dEDCaE8Eb22A2EFB597aBde1834173C47Cff186": {
+ "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
- },
- "0x1a4babC0e20d892167792AC79618273711afD3e7": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
+ "stableRateSlope1": 0,
+ "stableRateSlope2": 0,
+ "variableRateSlope1": 60000000000000000000000000,
+ "variableRateSlope2": 1000000000000000000000000000
},
- "0x1dA981865AE7a0C838eFBF4C7DFecb5c7268E73A": {
- "baseVariableBorrowRate": 0,
+ "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 550000000000000000000000000,
"optimalUsageRatio": 450000000000000000000000000,
"stableRateSlope1": 100000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
- },
- "0x24ABFac8dd8f270D752837fDFe3B3C735361f4eE": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 120000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0x26D40544447F68a3De69005822195549934624B9": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
- "0x2893405d64a7Bc8Db02Fa617351a5399d59eCf8D": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 40000000000000000000000000,
- "stableRateSlope2": 1000000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
- "0x3082D0a473385Ed2cbd1f16087ab8b7BF79f0355": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
"0x311C866D55456e465e314A3E9830276B438A73f0": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 0,
@@ -1279,121 +1216,94 @@
"variableRateSlope1": 0,
"variableRateSlope2": 0
},
- "0x33DeAc0861FD6a9235b86172AA939E79085c6f52": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
- },
- "0x404d396fc42e20d14585A1a10Cd64BDdC6C6574A": {
+ "0x32f3A6134590fc2d9440663d35a2F0a6265F04c4": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 100000000000000000000000000,
- "optimalUsageRatio": 900000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
+ "maxExcessUsageRatio": 350000000000000000000000000,
+ "optimalUsageRatio": 650000000000000000000000000,
+ "stableRateSlope1": 100000000000000000000000000,
+ "stableRateSlope2": 3000000000000000000000000000,
"variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 600000000000000000000000000
+ "variableRateSlope2": 3000000000000000000000000000
},
- "0x4a4fb6B26e7F516594b7242240039EA8FAAc897a": {
- "baseVariableBorrowRate": 0,
+ "0x35FE8C9924718f286463e659be35b4122eEe907F": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 550000000000000000000000000,
"optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
+ "stableRateSlope1": 170000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0x545Ae1908B6F12e91E03B1DEC4F2e06D0570fE1b": {
+ "0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
+ "stableRateSlope1": 0,
+ "stableRateSlope2": 0,
+ "variableRateSlope1": 60000000000000000000000000,
"variableRateSlope2": 750000000000000000000000000
},
- "0x6bcE15B789e537f3abA3C60CB183F0E8737f05eC": {
+ "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 550000000000000000000000000,
+ "optimalUsageRatio": 450000000000000000000000000,
+ "stableRateSlope1": 0,
+ "stableRateSlope2": 0,
+ "variableRateSlope1": 0,
+ "variableRateSlope2": 3000000000000000000000000000
+ },
+ "0x795dC59EA6472Dfa4298A454C6E8Dcb005643A13": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
+ "maxExcessUsageRatio": 990000000000000000000000000,
+ "optimalUsageRatio": 10000000000000000000000000,
"stableRateSlope1": 20000000000000000000000000,
"stableRateSlope2": 1000000000000000000000000000,
"variableRateSlope1": 40000000000000000000000000,
"variableRateSlope2": 1000000000000000000000000000
},
- "0x84d1FaD9559b8AC1Fda17d073B8542c8Fb6986dd": {
- "baseVariableBorrowRate": 10000000000000000000000000,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 20000000000000000000000000,
- "variableRateSlope2": 7500000000000000000000000000
- },
- "0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27": {
+ "0x7A297125a0Ea56cCC237Cb87b1Ab1F729353d4D2": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 100000000000000000000000000,
- "optimalUsageRatio": 900000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
+ "maxExcessUsageRatio": 310000000000000000000000000,
+ "optimalUsageRatio": 690000000000000000000000000,
+ "stableRateSlope1": 690000000000000000000000000,
"stableRateSlope2": 600000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
+ "variableRateSlope1": 420000000000000000000000000,
"variableRateSlope2": 600000000000000000000000000
},
- "0x9440aEc0795D7485e58bCF26622c2f4A681A9671": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 500000000000000000000000000,
- "optimalUsageRatio": 500000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
- },
- "0x9B1e3C7483F0f21abFEaE3AeBC9b47b5f23f5bB0": {
- "baseVariableBorrowRate": 0,
+ "0x87cCa171a2125efca9868F9Bc1FfD7B7c80dC5a3": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 550000000000000000000000000,
"optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
+ "stableRateSlope1": 120000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xA7d4df837926cD55036175AfeF38395d56A64c22": {
+ "0x999F449fEAfaAd78CE5702A9ebc460633478D4a4": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
+ "maxExcessUsageRatio": 300000000000000000000000000,
+ "optimalUsageRatio": 700000000000000000000000000,
+ "stableRateSlope1": 40000000000000000000000000,
+ "stableRateSlope2": 1000000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
+ "variableRateSlope2": 1500000000000000000000000000
},
- "0xBdfC85b140edF1FeaFd6eD664027AA4C23b4A29F": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "0xA12D7bB07379ad6de4497B80088e28D4C00932D1": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 500000000000000000000000000,
+ "optimalUsageRatio": 500000000000000000000000000,
+ "stableRateSlope1": 0,
+ "stableRateSlope2": 0,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xCc92073dDe8aE03bAA1812AC5cF22e69b5E76914": {
- "baseVariableBorrowRate": 30000000000000000000000000,
+ "0xB2D822cAdb9040F3164829BC34e41a93cA3E01e5": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
"stableRateSlope1": 0,
"stableRateSlope2": 0,
- "variableRateSlope1": 120000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
- "0xE3a3DE71B827cB73663A24cDB6243bA7F986cC3b": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
"0xED6547b83276B076B771B88FcCbD68BDeDb3927f": {
@@ -1405,49 +1315,58 @@
"variableRateSlope1": 70000000000000000000000000,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xF0bA2a8c12A2354c075b363765EAe825619bd490": {
+ "0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
"stableRateSlope1": 20000000000000000000000000,
"stableRateSlope2": 1000000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
"variableRateSlope2": 1000000000000000000000000000
},
- "0xFDBDa42D2aC1bfbbc10555eb255De8387b8977C4": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 350000000000000000000000000,
- "optimalUsageRatio": 650000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
+ "0xF1AafF9a4Da6Bf4Fb8fc18d39C8ffdafbAACce69": {
+ "baseVariableBorrowRate": 1000000000000000000000000000,
+ "maxExcessUsageRatio": 990000000000000000000000000,
+ "optimalUsageRatio": 10000000000000000000000000,
+ "stableRateSlope1": 700000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 80000000000000000000000000,
+ "variableRateSlope1": 700000000000000000000000000,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xb0a73aC3B10980A598685d4631c83f5348F5D32c": {
+ "0xab7f8ca781C736EB624A9E321cd043F8E6292C96": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 40000000000000000000000000,
+ "stableRateSlope1": 20000000000000000000000000,
+ "stableRateSlope2": 750000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
"variableRateSlope2": 750000000000000000000000000
},
- "0xb2eD1eCE1c13455Ce9299d35D3B00358529f3Dc8": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 70000000000000000000000000,
+ "0xb70e28437Aec70a8cfE5240F54c463cF849bE17C": {
+ "baseVariableBorrowRate": 1000000000000000000000000000,
+ "maxExcessUsageRatio": 990000000000000000000000000,
+ "optimalUsageRatio": 10000000000000000000000000,
+ "stableRateSlope1": 700000000000000000000000000,
+ "stableRateSlope2": 3000000000000000000000000000,
+ "variableRateSlope1": 700000000000000000000000000,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xb49034Ada4BE5c6Bb3823A623C6250267110b06b": {
+ "0xb72F23adE9b9980c2E731Ca504105fC860643619": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 70000000000000000000000000,
+ "maxExcessUsageRatio": 100000000000000000000000000,
+ "optimalUsageRatio": 900000000000000000000000000,
+ "stableRateSlope1": 20000000000000000000000000,
+ "stableRateSlope2": 600000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
+ "variableRateSlope2": 600000000000000000000000000
+ },
+ "0xb873ec463CAC50112B0e14d060fbc4192406279f": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 200000000000000000000000000,
+ "optimalUsageRatio": 800000000000000000000000000,
+ "stableRateSlope1": 220000000000000000000000000,
+ "stableRateSlope2": 1500000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
"0xb8975328Aa52c00B9Ec1e11e518C4900f2e6C62a": {
@@ -1459,14 +1378,14 @@
"variableRateSlope1": 38000000000000000000000000,
"variableRateSlope2": 800000000000000000000000000
},
- "0xc76EF342898f1AE7E6C4632627Df683FAD8563DD": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 310000000000000000000000000,
- "optimalUsageRatio": 690000000000000000000000000,
- "stableRateSlope1": 690000000000000000000000000,
- "stableRateSlope2": 600000000000000000000000000,
- "variableRateSlope1": 420000000000000000000000000,
- "variableRateSlope2": 600000000000000000000000000
+ "0xc83cDb49F234EC6666D7857B3EAa1302b109394C": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 200000000000000000000000000,
+ "optimalUsageRatio": 800000000000000000000000000,
+ "stableRateSlope1": 20000000000000000000000000,
+ "stableRateSlope2": 750000000000000000000000000,
+ "variableRateSlope1": 0,
+ "variableRateSlope2": 3000000000000000000000000000
},
"0xd4cA26F2496195C4F886D464D8578368236bB747": {
"baseVariableBorrowRate": 0,
@@ -1477,22 +1396,13 @@
"variableRateSlope1": 0,
"variableRateSlope2": 0
},
- "0xf41E8F817e6C399d1AdE102059c454093b24f35B": {
- "baseVariableBorrowRate": 0,
+ "0xeB65a3163Fd8900F4fE9a044e18966706b69A74D": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 350000000000000000000000000,
"optimalUsageRatio": 650000000000000000000000000,
"stableRateSlope1": 100000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 80000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
- },
- "0xfd71623D7F41360aefE200de4f17E20A29e1d58C": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
"0xff04ed5f7a6C3a0F1e5Ea20617F8C6f513D5A77c": {
@@ -1503,15 +1413,6 @@
"stableRateSlope2": 0,
"variableRateSlope1": 80000000000000000000000000,
"variableRateSlope2": 2000000000000000000000000000
- },
- "0xfffE32106A68aA3eD39CcCE673B646423EEaB62a": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
}
}
}
\ No newline at end of file
diff --git a/reports/preTestV2RatesUpdates.json b/reports/preTestV2RatesUpdates.json
index 3f8b841ee..3a9215577 100644
--- a/reports/preTestV2RatesUpdates.json
+++ b/reports/preTestV2RatesUpdates.json
@@ -1,13 +1,13 @@
{
"chainId": 1,
"poolConfig": {
- "lendingPoolCollateralManager": "0xbd4765210d4167CE2A5b87280D9E8Ee316D5EC7C",
+ "lendingPoolCollateralManager": "0x368e6441bB27159c6e8e6d3bbd9147BEcBA915E3",
"oracle": "0xA50ba011c48153De246E5192C8f9258A2ba79Ca9",
"pool": "0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9",
"poolAddressesProvider": "0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5",
"poolConfigurator": "0x311Bb771e4F8952E6Da169b425E7e92d6Ac45756",
- "poolConfiguratorImpl": "0x3a95Ee42f080ff7289C8B4a14EB483a8644d7521",
- "poolImpl": "0xC6845a5C768BF8D7681249f8927877Efda425baf",
+ "poolConfiguratorImpl": "0x246ca67522dF5895cD6cf8807Ec161954ea1bA61",
+ "poolImpl": "0x085E34722e04567Df9E6d2c32e82fd74f3342e79",
"protocolDataProvider": "0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d"
},
"reserves": {
@@ -17,22 +17,22 @@
"aTokenName": "Aave interest bearing TUSD",
"aTokenSymbol": "aTUSD",
"baseStableBorrowRate": 100000000000000000000000000,
- "borrowingEnabled": true,
+ "borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x6bcE15B789e537f3abA3C60CB183F0E8737f05eC",
+ "interestRateStrategy": "0xb70e28437Aec70a8cfE5240F54c463cF849bE17C",
"isActive": true,
- "isFrozen": false,
- "liquidationBonus": 10500,
- "liquidationThreshold": 8250,
- "ltv": 8000,
+ "isFrozen": true,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 6500,
+ "ltv": 0,
"oracle": "0x3886BA987236181D98F2401c507Fb8BeA7871dF2",
"oracleDecimals": 18,
"oracleDescription": "TUSD / ETH",
- "oracleLatestAnswer": 610682580000000,
- "reserveFactor": 500,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 401284370109943,
+ "reserveFactor": 9990,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x7f38d60D94652072b2C44a18c0e14A481EC3C0dd",
- "stableDebtTokenImpl": "0x95Ce83DF0B8A45072D0330Cf5A1e0c8CAA43D192",
+ "stableDebtTokenImpl": "0x00C15a6aaF1e48763B53A9dc8D2077551BA45Fee",
"stableDebtTokenName": "Aave stable debt bearing TUSD",
"stableDebtTokenSymbol": "stableDebtTUSD",
"symbol": "TUSD",
@@ -45,13 +45,13 @@
},
"0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919": {
"aToken": "0xc9BC48c72154ef3e5425641a3c747242112a46AF",
- "aTokenImpl": "0xB97Fa7A950B19C8Fe7d9bcD06909D3e67F20f16a",
+ "aTokenImpl": "0x2CDE0f77CF5d54e9417480a8611AA2fEcD56BbD9",
"aTokenName": "Aave interest bearing RAI",
"aTokenSymbol": "aRAI",
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xA7d4df837926cD55036175AfeF38395d56A64c22",
+ "interestRateStrategy": "0xc83cDb49F234EC6666D7857B3EAa1302b109394C",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -60,8 +60,8 @@
"oracle": "0x4ad7B025127e89263242aB68F0f9c4E5C033B489",
"oracleDecimals": 18,
"oracleDescription": "RAI / ETH",
- "oracleLatestAnswer": 1711020815907047,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 1172820903069477,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x9C72B8476C33AE214ee3e8C20F0bc28496a62032",
"stableDebtTokenImpl": "0xf37E202E587c6f63FD70F35C24Eb7f818CC5d01A",
@@ -83,15 +83,15 @@
"baseStableBorrowRate": 40000000000000000000000000,
"borrowingEnabled": true,
"decimals": 2,
- "interestRateStrategy": "0x2893405d64a7Bc8Db02Fa617351a5399d59eCf8D",
+ "interestRateStrategy": "0x999F449fEAfaAd78CE5702A9ebc460633478D4a4",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
"liquidationThreshold": 0,
"ltv": 0,
"oracle": "0xEc6f4Cd64d28Ef32507e2dc399948aAe9Bbedd7e",
- "oracleLatestAnswer": 610545521752085,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 406781720021913,
+ "reserveFactor": 2000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xf8aC64ec6Ff8E0028b37EB89772d21865321bCe0",
"stableDebtTokenImpl": "0xEddC66EB4a0aD3be434cBb1c2E7d17cE805D7a28",
@@ -113,20 +113,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xBdfC85b140edF1FeaFd6eD664027AA4C23b4A29F",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 7000,
- "ltv": 6500,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x0d16d4528239e9ee52fa531af613AcdB23D88c94",
"oracleDecimals": 18,
"oracleDescription": "BAT / ETH",
- "oracleLatestAnswer": 182276893023327,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 93749950000000,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x277f8676FAcf4dAA5a6EA38ba511B7F65AA02f9F",
- "stableDebtTokenImpl": "0x917fd53da13EDCCE5c155a7dbC73E1e4DcCd4267",
+ "stableDebtTokenImpl": "0x49B6645a9aa05f1Be24893136100467276399470",
"stableDebtTokenName": "Aave stable debt bearing BAT",
"stableDebtTokenSymbol": "stableDebtBAT",
"symbol": "BAT",
@@ -145,20 +145,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x004fC239848D8A8d3304729b78ba81d73d83C99F",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 7500,
- "ltv": 6150,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x82A44D92D6c329826dc557c5E1Be6ebeC5D5FeB9",
"oracleDecimals": 18,
"oracleDescription": "MANA / ETH",
- "oracleLatestAnswer": 395309373203460,
- "reserveFactor": 3500,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 178015486813397,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xD86C74eA2224f4B8591560652b50035E4e5c0a3b",
- "stableDebtTokenImpl": "0x441c5CD55E9e3267D02F7b1b4D245AA1C61891c3",
+ "stableDebtTokenImpl": "0xe0bf71fF662e8bbeb911ACEa765f4b8be052F59b",
"stableDebtTokenName": "Aave stable debt bearing MANA",
"stableDebtTokenSymbol": "stableDebtMANA",
"symbol": "MANA",
@@ -177,17 +177,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xfd71623D7F41360aefE200de4f17E20A29e1d58C",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 6500,
- "ltv": 5000,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x7c5d4F8345e66f68099581Db340cd65B078C41f4",
"oracleDecimals": 18,
"oracleDescription": "YFI / ETH",
- "oracleLatestAnswer": 5686591566150553000,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 3047678145187916000,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xca823F78C2Dd38993284bb42Ba9b14152082F7BD",
"stableDebtTokenImpl": "0x802Bb38676B6E79C393a3E3EC73b8Af63578188a",
@@ -209,17 +209,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xb2eD1eCE1c13455Ce9299d35D3B00358529f3Dc8",
+ "interestRateStrategy": "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10850,
- "liquidationThreshold": 5000,
- "ltv": 4000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x72AFAECF99C9d9C8215fF44C77B94B99C28741e8",
"oracleDecimals": 18,
"oracleDescription": "1INCH / ETH",
- "oracleLatestAnswer": 349400000000000,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 173342672736174,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x1278d6ED804d59d2d18a5Aa5638DfD591A79aF0a",
"stableDebtTokenImpl": "0x9C2114Bf70774C36E9b8d6c790c9C14FF0d6799E",
@@ -241,17 +241,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x9440aEc0795D7485e58bCF26622c2f4A681A9671",
+ "interestRateStrategy": "0xA12D7bB07379ad6de4497B80088e28D4C00932D1",
"isActive": true,
- "isFrozen": false,
- "liquidationBonus": 10750,
- "liquidationThreshold": 7000,
- "ltv": 6500,
+ "isFrozen": true,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x029849bbc0b1d93b85a8b6190e979fd38F5760E2",
"oracleDecimals": 18,
"oracleDescription": "DPI / ETH",
- "oracleLatestAnswer": 53042159775707955,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 41364111962536074,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xa3953F07f389d719F99FC378ebDb9276177d8A6e",
"stableDebtTokenImpl": "0x0f2d35d52a65c4CC98e345C3B478E75f7E4B9c2a",
@@ -273,20 +273,20 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x24ABFac8dd8f270D752837fDFe3B3C735361f4eE",
+ "interestRateStrategy": "0x87cCa171a2125efca9868F9Bc1FfD7B7c80dC5a3",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10900,
- "liquidationThreshold": 7700,
- "ltv": 6500,
+ "liquidationThreshold": 2000,
+ "ltv": 0,
"oracle": "0xD6aA3D25116d8dA79Ea0246c4826EB951872e02e",
"oracleDecimals": 18,
"oracleDescription": "UNI / ETH",
- "oracleLatestAnswer": 3993507224186989,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 2616213076346605,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xD939F7430dC8D5a427f156dE1012A56C18AcB6Aa",
- "stableDebtTokenImpl": "0xe4759007A1E6014DD92EBB33A293e0dfE85A8Ffe",
+ "stableDebtTokenImpl": "0x54f514CA167e1fc19231dA9a48bB7AA6ffe4F10d",
"stableDebtTokenName": "Aave stable debt bearing UNI",
"stableDebtTokenSymbol": "stableDebtUNI",
"symbol": "UNI",
@@ -305,20 +305,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": true,
"decimals": 8,
- "interestRateStrategy": "0xf41E8F817e6C399d1AdE102059c454093b24f35B",
+ "interestRateStrategy": "0x32f3A6134590fc2d9440663d35a2F0a6265F04c4",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 10500,
"liquidationThreshold": 8200,
"ltv": 7200,
- "oracle": "0xdeb288F737066589598e9214E782fa5A8eD689e8",
+ "oracle": "0xFD858c8bC5ac5e10f01018bC78471bb0DC392247",
"oracleDecimals": 18,
- "oracleDescription": "BTC / ETH",
- "oracleLatestAnswer": 14363022524949910000,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleDescription": "wBTC/BTC/ETH",
+ "oracleLatestAnswer": 16842786004805376363,
+ "reserveFactor": 3000,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x51B039b9AFE64B78758f8Ef091211b5387eA717c",
- "stableDebtTokenImpl": "0x6Ac108C4c3Fe7F4D367513F599Da1B9dF7c43433",
+ "stableDebtTokenImpl": "0x4f279f2046870F77cd9Ce63497f8A2D8689ef804",
"stableDebtTokenName": "Aave stable debt bearing WBTC",
"stableDebtTokenSymbol": "stableDebtWBTC",
"symbol": "WBTC",
@@ -337,20 +337,20 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x9B1e3C7483F0f21abFEaE3AeBC9b47b5f23f5bB0",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 6000,
- "ltv": 5500,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x3147D7203354Dc06D9fd350c7a2437bcA92387a4",
"oracleDecimals": 18,
"oracleDescription": "REN / ETH",
- "oracleLatestAnswer": 63713924764907,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 22610981899079,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x3356Ec1eFA75d9D150Da1EC7d944D9EDf73703B7",
- "stableDebtTokenImpl": "0x7b3E7Aea49A5F5d2514B9317d4cF58f828Ac28C2",
+ "stableDebtTokenImpl": "0x6F4B277366e10F68003A0a65Ef8f118f3D60B67E",
"stableDebtTokenName": "Aave stable debt bearing REN",
"stableDebtTokenSymbol": "stableDebtREN",
"symbol": "REN",
@@ -369,7 +369,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x26D40544447F68a3De69005822195549934624B9",
+ "interestRateStrategy": "0xF1AafF9a4Da6Bf4Fb8fc18d39C8ffdafbAACce69",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -378,8 +378,8 @@
"oracle": "0x614715d2Af89E6EC99A233818275142cE88d1Cfd",
"oracleDecimals": 18,
"oracleDescription": "BUSD / ETH",
- "oracleLatestAnswer": 607958172477733,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 407750083706476,
+ "reserveFactor": 9990,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x4A7A63909A72D268b1D8a93a9395d098688e0e5C",
"stableDebtTokenImpl": "0x8A36603a2a66182C9f1F81d22B7B95ff8DEeD432",
@@ -401,17 +401,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x1dA981865AE7a0C838eFBF4C7DFecb5c7268E73A",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 10850,
- "liquidationThreshold": 4500,
- "ltv": 3500,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0xC9CbF687f43176B302F03f5e58470b77D07c61c6",
"oracleDecimals": 18,
"oracleDescription": "CVX / ETH",
- "oracleLatestAnswer": 3742055994347318,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 1179368876420195,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xB01Eb1cE1Da06179136D561766fc2d609C5F55Eb",
"stableDebtTokenImpl": "0x10638C31Daeee246f0026f7174E1f30fB17010F5",
@@ -435,18 +435,18 @@
"decimals": 18,
"interestRateStrategy": "0xED6547b83276B076B771B88FcCbD68BDeDb3927f",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10700,
- "liquidationThreshold": 8300,
- "ltv": 7000,
+ "liquidationThreshold": 7400,
+ "ltv": 0,
"oracle": "0xDC530D9457755926550b59e8ECcdaE7624181557",
"oracleDecimals": 18,
"oracleDescription": "LINK / ETH",
- "oracleLatestAnswer": 4479000000000001,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 5916460000000000,
+ "reserveFactor": 3000,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xFB4AEc4Cc858F2539EBd3D37f2a43eAe5b15b98a",
- "stableDebtTokenImpl": "0xAdc313f17a3e2180f609a45d7B381a45E2e88a9F",
+ "stableDebtTokenImpl": "0x1B80694AF3D4e617c747423f992F532B8baE098b",
"stableDebtTokenName": "Aave stable debt bearing LINK",
"stableDebtTokenSymbol": "stableDebtLINK",
"symbol": "LINK",
@@ -465,7 +465,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x3082D0a473385Ed2cbd1f16087ab8b7BF79f0355",
+ "interestRateStrategy": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -474,8 +474,8 @@
"oracle": "0x8e0b7e6062272B5eF4524250bFFF8e5Bd3497757",
"oracleDecimals": 18,
"oracleDescription": "SUSD / ETH",
- "oracleLatestAnswer": 617138770830382,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 407512114531422,
+ "reserveFactor": 3000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x30B0f7324feDF89d8eff397275F8983397eFe4af",
"stableDebtTokenImpl": "0x49EfDDb938a77C78816eF9f9B7F811C16611FdFD",
@@ -497,18 +497,18 @@
"baseStableBorrowRate": 100000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x545Ae1908B6F12e91E03B1DEC4F2e06D0570fE1b",
+ "interestRateStrategy": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
"liquidationThreshold": 0,
"ltv": 0,
"oracle": "0x60c0b047133f696334a2b7f68af0b49d2F3D4F72",
- "oracleLatestAnswer": 612368042872701,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 409761449002697,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x39f010127274b2dBdB770B45e1de54d974974526",
- "stableDebtTokenImpl": "0x595c33538215DC4B092F35Afc85d904631263f4F",
+ "stableDebtTokenImpl": "0x1363602E58e25929A15bE194a3D505Fd6F8BE751",
"stableDebtTokenName": "Aave stable debt bearing LUSD",
"stableDebtTokenSymbol": "stableDebtLUSD",
"symbol": "LUSD",
@@ -527,7 +527,7 @@
"baseStableBorrowRate": 100000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xfffE32106A68aA3eD39CcCE673B646423EEaB62a",
+ "interestRateStrategy": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 10400,
@@ -536,11 +536,11 @@
"oracle": "0x773616E4d11A78F511299002da57A0a94577F1f4",
"oracleDecimals": 18,
"oracleDescription": "DAI / ETH",
- "oracleLatestAnswer": 612859977965139,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 410105724359441,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x778A13D3eeb110A4f7bb6529F99c000119a08E92",
- "stableDebtTokenImpl": "0xD23A44eB2db8AD0817c994D3533528C030279F7c",
+ "stableDebtTokenImpl": "0xb44Fe5fA7A8fcF508984bE58bA807A22343B4493",
"stableDebtTokenName": "Aave stable debt bearing DAI",
"stableDebtTokenSymbol": "stableDebtDAI",
"symbol": "DAI",
@@ -568,7 +568,7 @@
"oracle": "0x6Df09E975c830ECae5bd4eD9d90f3A95a4f88012",
"oracleDecimals": 18,
"oracleDescription": "AAVE / ETH",
- "oracleLatestAnswer": 48505366244397695,
+ "oracleLatestAnswer": 39515306483330896,
"reserveFactor": 0,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x079D6a3E844BcECf5720478A718Edb6575362C5f",
@@ -591,7 +591,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xb0a73aC3B10980A598685d4631c83f5348F5D32c",
+ "interestRateStrategy": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -600,8 +600,8 @@
"oracle": "0x14d04Fff8D21bd62987a5cE9ce543d2F1edF5D3E",
"oracleDecimals": 18,
"oracleDescription": "FRAX / ETH",
- "oracleLatestAnswer": 616977057978798,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 409908731055814,
+ "reserveFactor": 3000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x3916e3B6c84b161df1b2733dFfc9569a1dA710c2",
"stableDebtTokenImpl": "0x7E3Ddfceef69bEC3A38Fc9AE8D7A8c46D7788C6b",
@@ -623,17 +623,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xb49034Ada4BE5c6Bb3823A623C6250267110b06b",
+ "interestRateStrategy": "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10850,
- "liquidationThreshold": 6500,
- "ltv": 5000,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0xF05D9B6C08757EAcb1fbec18e36A1B7566a13DEB",
"oracleDecimals": 18,
"oracleDescription": "Calculated XSUSHI / ETH",
- "oracleLatestAnswer": 1082567401549168,
- "reserveFactor": 3500,
+ "oracleLatestAnswer": 565948785959684,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x73Bfb81D7dbA75C904f430eA8BAe82DB0D41187B",
"stableDebtTokenImpl": "0x0fF2eC6F80F83A54746DB9b9ac7F40ADBEfb3dB4",
@@ -655,7 +655,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x404d396fc42e20d14585A1a10Cd64BDdC6C6574A",
+ "interestRateStrategy": "0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -664,8 +664,8 @@
"oracle": "0x3a08ebBaB125224b7b6474384Ee39fBb247D2200",
"oracleDecimals": 18,
"oracleDescription": "PAX / ETH",
- "oracleLatestAnswer": 616220194971251,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 404325328035399,
+ "reserveFactor": 2000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x2387119bc85A74e0BBcbe190d80676CB16F10D4F",
"stableDebtTokenImpl": "0x9C3440F4aACA3312b632bE4A07C0f97B15c31c8b",
@@ -687,16 +687,16 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xF0bA2a8c12A2354c075b363765EAe825619bd490",
+ "interestRateStrategy": "0x795dC59EA6472Dfa4298A454C6E8Dcb005643A13",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10650,
- "liquidationThreshold": 7500,
- "ltv": 6500,
- "oracle": "0x7F0D2c2838c6AC24443d13e23d99490017bDe370",
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
+ "oracle": "0xac3AF0f4A52C577Cc2C241dF51a01FDe3D06D93B",
"oracleDecimals": 18,
- "oracleDescription": "FEI / ETH",
- "oracleLatestAnswer": 613596576602952,
+ "oracleDescription": "0.95/USD/ETH",
+ "oracleLatestAnswer": 386442634020817,
"reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xd89cF9E8A858F8B4b31Faf793505e112d6c17449",
@@ -719,20 +719,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xE3a3DE71B827cB73663A24cDB6243bA7F986cC3b",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10750,
- "liquidationThreshold": 6700,
- "ltv": 6200,
+ "liquidationThreshold": 1800,
+ "ltv": 0,
"oracle": "0x24551a8Fb2A7211A25a17B1481f043A8a8adC7f2",
"oracleDecimals": 18,
"oracleDescription": "MKR / ETH",
- "oracleLatestAnswer": 480035982884287950,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 796683976379186900,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xC01C8E4b12a89456a9fD4e4e75B72546Bf53f0B5",
- "stableDebtTokenImpl": "0x20f9027c5092739C58250CF456642E8e3D4dBEd5",
+ "stableDebtTokenImpl": "0xC4CFCE0b16199818Ad942a87902C9172ba005022",
"stableDebtTokenName": "Aave stable debt bearing MKR",
"stableDebtTokenSymbol": "stableDebtMKR",
"symbol": "MKR",
@@ -751,7 +751,7 @@
"baseStableBorrowRate": 90000000000000000000000000,
"borrowingEnabled": true,
"decimals": 6,
- "interestRateStrategy": "0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27",
+ "interestRateStrategy": "0xb72F23adE9b9980c2E731Ca504105fC860643619",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 10450,
@@ -760,11 +760,11 @@
"oracle": "0x986b5E1e1755e3C2440e960477f25201B0a8bbD4",
"oracleDecimals": 18,
"oracleDescription": "USDC / ETH",
- "oracleLatestAnswer": 611599789718562,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 407011754295958,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xE4922afAB0BbaDd8ab2a88E0C79d884Ad337fcA6",
- "stableDebtTokenImpl": "0x3b2a77058a1Eb4403a90b94585FaB16Bc512E703",
+ "stableDebtTokenImpl": "0x8DFF7Fda82976452b6FB957F549944e7af7A3e6F",
"stableDebtTokenName": "Aave stable debt bearing USDC",
"stableDebtTokenSymbol": "stableDebtUSDC",
"symbol": "USDC",
@@ -783,17 +783,17 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xCc92073dDe8aE03bAA1812AC5cF22e69b5E76914",
+ "interestRateStrategy": "0xB2D822cAdb9040F3164829BC34e41a93cA3E01e5",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10750,
- "liquidationThreshold": 6200,
- "ltv": 4600,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x79291A9d692Df95334B1a0B3B4AE6bC606782f8c",
"oracleDecimals": 18,
"oracleDescription": "SNX / ETH",
- "oracleLatestAnswer": 1778640000000000,
- "reserveFactor": 3500,
+ "oracleLatestAnswer": 1356003312337918,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x8575c8ae70bDB71606A53AeA1c6789cB0fBF3166",
"stableDebtTokenImpl": "0x42321d7f519E9Bf2163B7B1685D379BC07A59C38",
@@ -823,10 +823,10 @@
"ltv": 8250,
"oracle": "0x0000000000000000000000000000000000000000",
"oracleLatestAnswer": 1000000000000000000,
- "reserveFactor": 1500,
- "stableBorrowRateEnabled": true,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x4e977830ba4bd783C0BB7F15d3e243f73FF57121",
- "stableDebtTokenImpl": "0xA558EA1A875f8b576f0728d32C39f62158e49b92",
+ "stableDebtTokenImpl": "0xEd14b4E51B04d4d0211474a721F77C0817166c2f",
"stableDebtTokenName": "Aave stable debt bearing WETH",
"stableDebtTokenSymbol": "stableDebtWETH",
"symbol": "WETH",
@@ -845,15 +845,15 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xb2eD1eCE1c13455Ce9299d35D3B00358529f3Dc8",
+ "interestRateStrategy": "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10800,
- "liquidationThreshold": 5700,
- "ltv": 4700,
+ "liquidationThreshold": 2400,
+ "ltv": 0,
"oracle": "0xd4641b75015E6536E8102D98479568D05D7123Db",
- "oracleLatestAnswer": 9738201071945762,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 8618752070239292,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x34441FFD1948E49dC7a607882D0c38Efd0083815",
"stableDebtTokenImpl": "0x5746b5b6650Dd8d9B1d9D1bbf5E7f23e9761183F",
@@ -875,7 +875,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 9,
- "interestRateStrategy": "0x84d1FaD9559b8AC1Fda17d073B8542c8Fb6986dd",
+ "interestRateStrategy": "0xB2D822cAdb9040F3164829BC34e41a93cA3E01e5",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -884,8 +884,8 @@
"oracle": "0x492575FDD11a0fCf2C6C719867890a7648d526eB",
"oracleDecimals": 18,
"oracleDescription": "AMPL / ETH",
- "oracleLatestAnswer": 620918820133552,
- "reserveFactor": 1000,
+ "oracleLatestAnswer": 450300119588682,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x18152C9f77DAdc737006e9430dB913159645fa87",
"stableDebtTokenImpl": "0x0e8f4fc4c261d454b13C74507Bce8C38AA990361",
@@ -916,7 +916,7 @@
"oracle": "0x0606Be69451B1C9861Ac6b3626b99093b713E801",
"oracleDecimals": 18,
"oracleDescription": "FIL / ETH",
- "oracleLatestAnswer": 4020977447693813,
+ "oracleLatestAnswer": 2287773603726078,
"reserveFactor": 3500,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xcAad05C49E14075077915cB5C820EB3245aFb950",
@@ -939,17 +939,17 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0xE3a3DE71B827cB73663A24cDB6243bA7F986cC3b",
+ "interestRateStrategy": "0x35FE8C9924718f286463e659be35b4122eEe907F",
"isActive": true,
- "isFrozen": false,
+ "isFrozen": true,
"liquidationBonus": 10800,
- "liquidationThreshold": 5800,
- "ltv": 5200,
+ "liquidationThreshold": 1800,
+ "ltv": 0,
"oracle": "0x8a12Be339B0cD1829b91Adc01977caa5E9ac121e",
"oracleDecimals": 18,
"oracleDescription": "CRV / ETH",
- "oracleLatestAnswer": 621505942576524,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 209322011170661,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x9288059a74f589C919c7Cf1Db433251CdFEB874B",
"stableDebtTokenImpl": "0x288672D311Da6edC89765204A6d309701e7289d4",
@@ -971,20 +971,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x1a4babC0e20d892167792AC79618273711afD3e7",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10750,
- "liquidationThreshold": 6500,
- "ltv": 5500,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 1200,
+ "ltv": 0,
"oracle": "0x2Da4983a622a8498bb1a21FaE9D8F6C664939962",
"oracleDecimals": 18,
"oracleDescription": "ZRX / ETH",
- "oracleLatestAnswer": 161308174808789,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 128582334580025,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x071B4323a24E73A5afeEbe34118Cd21B8FAAF7C3",
- "stableDebtTokenImpl": "0x42a87BF47B5eFD11fa9Ddd5321BF9Aa502233b74",
+ "stableDebtTokenImpl": "0xffaCA447191d8196C8Cf96E5912b732063DE4307",
"stableDebtTokenName": "Aave stable debt bearing ZRX",
"stableDebtTokenSymbol": "stableDebtZRX",
"symbol": "ZRX",
@@ -1003,20 +1003,20 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0x4a4fb6B26e7F516594b7242240039EA8FAAc897a",
+ "interestRateStrategy": "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069",
"isActive": true,
"isFrozen": true,
- "liquidationBonus": 10600,
- "liquidationThreshold": 6700,
- "ltv": 6000,
+ "liquidationBonus": 11000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x24D9aB51950F3d62E9144fdC2f3135DAA6Ce8D1B",
"oracleDecimals": 18,
"oracleDescription": "ENJ / ETH",
- "oracleLatestAnswer": 292880000000000,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 118685890000000,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x943DcCA156b5312Aa24c1a08769D67FEce4ac14C",
- "stableDebtTokenImpl": "0x8286288f3c454b51DfC70bd0d6918220428B0741",
+ "stableDebtTokenImpl": "0x0fB427f800C5E39E7d8029e19F515300d4bb22C2",
"stableDebtTokenName": "Aave stable debt bearing ENJ",
"stableDebtTokenSymbol": "stableDebtENJ",
"symbol": "ENJ",
@@ -1035,7 +1035,7 @@
"baseStableBorrowRate": 0,
"borrowingEnabled": true,
"decimals": 6,
- "interestRateStrategy": "0x0dEDCaE8Eb22A2EFB597aBde1834173C47Cff186",
+ "interestRateStrategy": "0xc83cDb49F234EC6666D7857B3EAa1302b109394C",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 0,
@@ -1044,8 +1044,8 @@
"oracle": "0xa20623070413d42a5C01Db2c8111640DD7A5A03a",
"oracleDecimals": 18,
"oracleDescription": "UST / ETH",
- "oracleLatestAnswer": 16780133340039,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 11773404322311,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x7FDbfB0412700D94403c42cA3CAEeeA183F07B26",
"stableDebtTokenImpl": "0x107ed1832647436a0D39F09e65f4aA920242C0BB",
@@ -1073,10 +1073,10 @@
"liquidationBonus": 10700,
"liquidationThreshold": 8300,
"ltv": 7200,
- "oracle": "0x86392dC19c0b719886221c78AB11eb8Cf5c52812",
+ "oracle": "0xADE6CBA6c45aa8E9d0337cAc3D2619eabc39D901",
"oracleDecimals": 18,
- "oracleDescription": "STETH / ETH",
- "oracleLatestAnswer": 998251120000000000,
+ "oracleDescription": "stETH/ETH",
+ "oracleLatestAnswer": 1000000000000000000,
"reserveFactor": 1000,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x66457616Dd8489dF5D0AFD8678F4A260088aAF55",
@@ -1099,17 +1099,17 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": false,
"decimals": 18,
- "interestRateStrategy": "0x04c28D6fE897859153eA753f986cc249Bf064f71",
+ "interestRateStrategy": "0xb873ec463CAC50112B0e14d060fbc4192406279f",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 10800,
- "liquidationThreshold": 7000,
- "ltv": 6500,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0xC1438AA3823A6Ba0C159CfA8D98dF5A994bA120b",
"oracleDecimals": 18,
"oracleDescription": "BAL / ETH",
- "oracleLatestAnswer": 4377483727566084,
- "reserveFactor": 2000,
+ "oracleLatestAnswer": 1617911746672069,
+ "reserveFactor": 9900,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0xe569d31590307d05DA3812964F1eDd551D665a0b",
"stableDebtTokenImpl": "0x58571484BD57a87E359e46F82dFa9D13087b24a0",
@@ -1125,13 +1125,13 @@
},
"0xdAC17F958D2ee523a2206206994597C13D831ec7": {
"aToken": "0x3Ed3B47Dd13EC9a98b44e6204A523E766B225811",
- "aTokenImpl": "0x3F06560cfB7af6E6B5102c358f679DE5150b3b4C",
+ "aTokenImpl": "0x9651F64Bd77550691EB2AeEb58188CB67F005902",
"aTokenName": "Aave interest bearing USDT",
"aTokenSymbol": "aUSDT",
"baseStableBorrowRate": 100000000000000000000000000,
"borrowingEnabled": true,
"decimals": 6,
- "interestRateStrategy": "0x33DeAc0861FD6a9235b86172AA939E79085c6f52",
+ "interestRateStrategy": "0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99",
"isActive": true,
"isFrozen": false,
"liquidationBonus": 0,
@@ -1140,11 +1140,11 @@
"oracle": "0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46",
"oracleDecimals": 18,
"oracleDescription": "USDT / ETH",
- "oracleLatestAnswer": 611767949789453,
- "reserveFactor": 1000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 406945750062059,
+ "reserveFactor": 2500,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0xe91D55AB2240594855aBd11b3faAE801Fd4c4687",
- "stableDebtTokenImpl": "0x9d4578c813D69745092a4F951753ed2B28056279",
+ "stableDebtTokenImpl": "0xC61262D6ad449AC09B4087f46391Dd9A26b5888B",
"stableDebtTokenName": "Aave stable debt bearing USDT",
"stableDebtTokenSymbol": "stableDebtUSDT",
"symbol": "USDT",
@@ -1163,20 +1163,20 @@
"baseStableBorrowRate": 30000000000000000000000000,
"borrowingEnabled": true,
"decimals": 18,
- "interestRateStrategy": "0xFDBDa42D2aC1bfbbc10555eb255De8387b8977C4",
+ "interestRateStrategy": "0xeB65a3163Fd8900F4fE9a044e18966706b69A74D",
"isActive": true,
"isFrozen": true,
"liquidationBonus": 11000,
- "liquidationThreshold": 7000,
- "ltv": 6000,
+ "liquidationThreshold": 5,
+ "ltv": 0,
"oracle": "0x656c0544eF4C98A6a98491833A89204Abb045d6b",
"oracleDecimals": 18,
"oracleDescription": "KNC / ETH",
- "oracleLatestAnswer": 522346316958437,
- "reserveFactor": 2000,
- "stableBorrowRateEnabled": true,
+ "oracleLatestAnswer": 250135580000000,
+ "reserveFactor": 9900,
+ "stableBorrowRateEnabled": false,
"stableDebtToken": "0x9915dfb872778B2890a117DA1F35F335eb06B54f",
- "stableDebtTokenImpl": "0xf818B175353F023E3EC1A098d040778b835897c7",
+ "stableDebtTokenImpl": "0x22a8FD718924ab2f9dd4D0326DD8ab99Ef21D0b3",
"stableDebtTokenName": "Aave stable debt bearing KNC",
"stableDebtTokenSymbol": "stableDebtKNC",
"symbol": "KNC",
@@ -1189,87 +1189,24 @@
}
},
"strategies": {
- "0x004fC239848D8A8d3304729b78ba81d73d83C99F": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
- },
- "0x04c28D6fE897859153eA753f986cc249Bf064f71": {
- "baseVariableBorrowRate": 30000000000000000000000000,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 140000000000000000000000000,
- "variableRateSlope2": 1500000000000000000000000000
- },
- "0x0dEDCaE8Eb22A2EFB597aBde1834173C47Cff186": {
+ "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
- },
- "0x1a4babC0e20d892167792AC79618273711afD3e7": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
+ "stableRateSlope1": 0,
+ "stableRateSlope2": 0,
+ "variableRateSlope1": 60000000000000000000000000,
+ "variableRateSlope2": 1000000000000000000000000000
},
- "0x1dA981865AE7a0C838eFBF4C7DFecb5c7268E73A": {
- "baseVariableBorrowRate": 0,
+ "0x2c206fa2127aB7f1CE3dc987daf683Ed5B9CF069": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 550000000000000000000000000,
"optimalUsageRatio": 450000000000000000000000000,
"stableRateSlope1": 100000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
- },
- "0x24ABFac8dd8f270D752837fDFe3B3C735361f4eE": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 120000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0x26D40544447F68a3De69005822195549934624B9": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
- "0x2893405d64a7Bc8Db02Fa617351a5399d59eCf8D": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 40000000000000000000000000,
- "stableRateSlope2": 1000000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
- "0x3082D0a473385Ed2cbd1f16087ab8b7BF79f0355": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
"0x311C866D55456e465e314A3E9830276B438A73f0": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 0,
@@ -1279,121 +1216,85 @@
"variableRateSlope1": 0,
"variableRateSlope2": 0
},
- "0x33DeAc0861FD6a9235b86172AA939E79085c6f52": {
+ "0x32f3A6134590fc2d9440663d35a2F0a6265F04c4": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
- },
- "0x404d396fc42e20d14585A1a10Cd64BDdC6C6574A": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 100000000000000000000000000,
- "optimalUsageRatio": 900000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
+ "maxExcessUsageRatio": 350000000000000000000000000,
+ "optimalUsageRatio": 650000000000000000000000000,
+ "stableRateSlope1": 100000000000000000000000000,
+ "stableRateSlope2": 3000000000000000000000000000,
"variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 600000000000000000000000000
+ "variableRateSlope2": 3000000000000000000000000000
},
- "0x4a4fb6B26e7F516594b7242240039EA8FAAc897a": {
- "baseVariableBorrowRate": 0,
+ "0x35FE8C9924718f286463e659be35b4122eEe907F": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 550000000000000000000000000,
"optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
+ "stableRateSlope1": 170000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0x545Ae1908B6F12e91E03B1DEC4F2e06D0570fE1b": {
+ "0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
+ "stableRateSlope1": 0,
+ "stableRateSlope2": 0,
+ "variableRateSlope1": 60000000000000000000000000,
"variableRateSlope2": 750000000000000000000000000
},
- "0x6bcE15B789e537f3abA3C60CB183F0E8737f05eC": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 1000000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
- "0x84d1FaD9559b8AC1Fda17d073B8542c8Fb6986dd": {
- "baseVariableBorrowRate": 10000000000000000000000000,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
+ "0x6855E5544Cd803BF24c9612b3F12C009116B0ee1": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 550000000000000000000000000,
+ "optimalUsageRatio": 450000000000000000000000000,
"stableRateSlope1": 0,
"stableRateSlope2": 0,
- "variableRateSlope1": 20000000000000000000000000,
- "variableRateSlope2": 7500000000000000000000000000
+ "variableRateSlope1": 0,
+ "variableRateSlope2": 3000000000000000000000000000
},
- "0x8Cae0596bC1eD42dc3F04c4506cfe442b3E74e27": {
+ "0x795dC59EA6472Dfa4298A454C6E8Dcb005643A13": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 100000000000000000000000000,
- "optimalUsageRatio": 900000000000000000000000000,
+ "maxExcessUsageRatio": 990000000000000000000000000,
+ "optimalUsageRatio": 10000000000000000000000000,
"stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 600000000000000000000000000,
+ "stableRateSlope2": 1000000000000000000000000000,
"variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 600000000000000000000000000
- },
- "0x9440aEc0795D7485e58bCF26622c2f4A681A9671": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 500000000000000000000000000,
- "optimalUsageRatio": 500000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 70000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
+ "variableRateSlope2": 1000000000000000000000000000
},
- "0x9B1e3C7483F0f21abFEaE3AeBC9b47b5f23f5bB0": {
- "baseVariableBorrowRate": 0,
+ "0x87cCa171a2125efca9868F9Bc1FfD7B7c80dC5a3": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 550000000000000000000000000,
"optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
+ "stableRateSlope1": 120000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xA7d4df837926cD55036175AfeF38395d56A64c22": {
+ "0x999F449fEAfaAd78CE5702A9ebc460633478D4a4": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
+ "maxExcessUsageRatio": 300000000000000000000000000,
+ "optimalUsageRatio": 700000000000000000000000000,
+ "stableRateSlope1": 40000000000000000000000000,
+ "stableRateSlope2": 1000000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
+ "variableRateSlope2": 1500000000000000000000000000
},
- "0xBdfC85b140edF1FeaFd6eD664027AA4C23b4A29F": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "0xA12D7bB07379ad6de4497B80088e28D4C00932D1": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 500000000000000000000000000,
+ "optimalUsageRatio": 500000000000000000000000000,
+ "stableRateSlope1": 0,
+ "stableRateSlope2": 0,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xCc92073dDe8aE03bAA1812AC5cF22e69b5E76914": {
- "baseVariableBorrowRate": 30000000000000000000000000,
+ "0xB2D822cAdb9040F3164829BC34e41a93cA3E01e5": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
"stableRateSlope1": 0,
"stableRateSlope2": 0,
- "variableRateSlope1": 120000000000000000000000000,
- "variableRateSlope2": 1000000000000000000000000000
- },
- "0xE3a3DE71B827cB73663A24cDB6243bA7F986cC3b": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
"0xED6547b83276B076B771B88FcCbD68BDeDb3927f": {
@@ -1405,49 +1306,58 @@
"variableRateSlope1": 70000000000000000000000000,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xF0bA2a8c12A2354c075b363765EAe825619bd490": {
+ "0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
"stableRateSlope1": 20000000000000000000000000,
"stableRateSlope2": 1000000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
"variableRateSlope2": 1000000000000000000000000000
},
- "0xFDBDa42D2aC1bfbbc10555eb255De8387b8977C4": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 350000000000000000000000000,
- "optimalUsageRatio": 650000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
+ "0xF1AafF9a4Da6Bf4Fb8fc18d39C8ffdafbAACce69": {
+ "baseVariableBorrowRate": 1000000000000000000000000000,
+ "maxExcessUsageRatio": 990000000000000000000000000,
+ "optimalUsageRatio": 10000000000000000000000000,
+ "stableRateSlope1": 700000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 80000000000000000000000000,
+ "variableRateSlope1": 700000000000000000000000000,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xb0a73aC3B10980A598685d4631c83f5348F5D32c": {
+ "0xab7f8ca781C736EB624A9E321cd043F8E6292C96": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 200000000000000000000000000,
"optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 40000000000000000000000000,
+ "stableRateSlope1": 20000000000000000000000000,
+ "stableRateSlope2": 750000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
"variableRateSlope2": 750000000000000000000000000
},
- "0xb2eD1eCE1c13455Ce9299d35D3B00358529f3Dc8": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 70000000000000000000000000,
+ "0xb70e28437Aec70a8cfE5240F54c463cF849bE17C": {
+ "baseVariableBorrowRate": 1000000000000000000000000000,
+ "maxExcessUsageRatio": 990000000000000000000000000,
+ "optimalUsageRatio": 10000000000000000000000000,
+ "stableRateSlope1": 700000000000000000000000000,
+ "stableRateSlope2": 3000000000000000000000000000,
+ "variableRateSlope1": 700000000000000000000000000,
"variableRateSlope2": 3000000000000000000000000000
},
- "0xb49034Ada4BE5c6Bb3823A623C6250267110b06b": {
+ "0xb72F23adE9b9980c2E731Ca504105fC860643619": {
"baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 0,
- "stableRateSlope2": 0,
- "variableRateSlope1": 70000000000000000000000000,
+ "maxExcessUsageRatio": 100000000000000000000000000,
+ "optimalUsageRatio": 900000000000000000000000000,
+ "stableRateSlope1": 20000000000000000000000000,
+ "stableRateSlope2": 600000000000000000000000000,
+ "variableRateSlope1": 60000000000000000000000000,
+ "variableRateSlope2": 600000000000000000000000000
+ },
+ "0xb873ec463CAC50112B0e14d060fbc4192406279f": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 200000000000000000000000000,
+ "optimalUsageRatio": 800000000000000000000000000,
+ "stableRateSlope1": 220000000000000000000000000,
+ "stableRateSlope2": 1500000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
"0xb8975328Aa52c00B9Ec1e11e518C4900f2e6C62a": {
@@ -1459,6 +1369,15 @@
"variableRateSlope1": 38000000000000000000000000,
"variableRateSlope2": 800000000000000000000000000
},
+ "0xc83cDb49F234EC6666D7857B3EAa1302b109394C": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
+ "maxExcessUsageRatio": 200000000000000000000000000,
+ "optimalUsageRatio": 800000000000000000000000000,
+ "stableRateSlope1": 20000000000000000000000000,
+ "stableRateSlope2": 750000000000000000000000000,
+ "variableRateSlope1": 0,
+ "variableRateSlope2": 3000000000000000000000000000
+ },
"0xd4cA26F2496195C4F886D464D8578368236bB747": {
"baseVariableBorrowRate": 0,
"maxExcessUsageRatio": 550000000000000000000000000,
@@ -1468,22 +1387,13 @@
"variableRateSlope1": 0,
"variableRateSlope2": 0
},
- "0xf41E8F817e6C399d1AdE102059c454093b24f35B": {
- "baseVariableBorrowRate": 0,
+ "0xeB65a3163Fd8900F4fE9a044e18966706b69A74D": {
+ "baseVariableBorrowRate": 200000000000000000000000000,
"maxExcessUsageRatio": 350000000000000000000000000,
"optimalUsageRatio": 650000000000000000000000000,
"stableRateSlope1": 100000000000000000000000000,
"stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 80000000000000000000000000,
- "variableRateSlope2": 3000000000000000000000000000
- },
- "0xfd71623D7F41360aefE200de4f17E20A29e1d58C": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 550000000000000000000000000,
- "optimalUsageRatio": 450000000000000000000000000,
- "stableRateSlope1": 100000000000000000000000000,
- "stableRateSlope2": 3000000000000000000000000000,
- "variableRateSlope1": 70000000000000000000000000,
+ "variableRateSlope1": 0,
"variableRateSlope2": 3000000000000000000000000000
},
"0xff04ed5f7a6C3a0F1e5Ea20617F8C6f513D5A77c": {
@@ -1494,15 +1404,6 @@
"stableRateSlope2": 0,
"variableRateSlope1": 80000000000000000000000000,
"variableRateSlope2": 2000000000000000000000000000
- },
- "0xfffE32106A68aA3eD39CcCE673B646423EEaB62a": {
- "baseVariableBorrowRate": 0,
- "maxExcessUsageRatio": 200000000000000000000000000,
- "optimalUsageRatio": 800000000000000000000000000,
- "stableRateSlope1": 20000000000000000000000000,
- "stableRateSlope2": 750000000000000000000000000,
- "variableRateSlope1": 40000000000000000000000000,
- "variableRateSlope2": 750000000000000000000000000
}
}
}
\ No newline at end of file
diff --git a/scripts/CrosschainForwarders.s.sol b/scripts/CrosschainForwarders.s.sol
deleted file mode 100644
index a4fd05b76..000000000
--- a/scripts/CrosschainForwarders.s.sol
+++ /dev/null
@@ -1,32 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import '../src/ScriptUtils.sol';
-import {CrosschainForwarderPolygon} from '../src/crosschainforwarders/CrosschainForwarderPolygon.sol';
-import {CrosschainForwarderOptimism} from '../src/crosschainforwarders/CrosschainForwarderOptimism.sol';
-import {CrosschainForwarderArbitrum} from '../src/crosschainforwarders/CrosschainForwarderArbitrum.sol';
-import {CrosschainForwarderMetis} from '../src/crosschainforwarders/CrosschainForwarderMetis.sol';
-
-contract DeployPol is EthereumScript {
- function run() external broadcast {
- new CrosschainForwarderPolygon();
- }
-}
-
-contract DeployOpt is EthereumScript {
- function run() external broadcast {
- new CrosschainForwarderOptimism();
- }
-}
-
-contract DeployArb is EthereumScript {
- function run() external broadcast {
- new CrosschainForwarderArbitrum();
- }
-}
-
-contract DeployMet is EthereumScript {
- function run() external broadcast {
- new CrosschainForwarderMetis();
- }
-}
diff --git a/src/AaveHelpers.sol b/src/AaveHelpers.sol
deleted file mode 100644
index a41e99ef9..000000000
--- a/src/AaveHelpers.sol
+++ /dev/null
@@ -1,6 +0,0 @@
-// SPDX-License-Identifier: AGPL-3.0
-pragma solidity >=0.7.5 <0.9.0;
-
-import {GovHelpers, AaveGovernanceV2} from './GovHelpers.sol';
-import {ProxyHelpers} from './ProxyHelpers.sol';
-import {ProtocolV3TestBase} from './ProtocolV3TestBase.sol';
diff --git a/src/GovHelpers.sol b/src/GovHelpers.sol
deleted file mode 100644
index 564a486c7..000000000
--- a/src/GovHelpers.sol
+++ /dev/null
@@ -1,579 +0,0 @@
-// SPDX-License-Identifier: AGPL-3.0
-pragma solidity >=0.7.5 <0.9.0;
-pragma abicoder v2;
-
-import {Vm} from 'forge-std/Vm.sol';
-import {console2} from 'forge-std/console2.sol';
-import {IpfsUtils} from './IpfsUtils.sol';
-import {AaveGovernanceV2, IAaveGovernanceV2, IExecutorWithTimelock} from 'aave-address-book/AaveGovernanceV2.sol';
-import {IPoolAddressesProvider} from 'aave-address-book/AaveV3.sol';
-import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
-import {AaveV3Harmony} from 'aave-address-book/AaveV3Harmony.sol';
-import {AaveV3Fantom} from 'aave-address-book/AaveV3Fantom.sol';
-import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
-import {ProxyHelpers} from './ProxyHelpers.sol';
-import {ChainIds} from './ChainIds.sol';
-import {StorageHelpers} from './StorageHelpers.sol';
-
-interface CommonExecutor {
- /**
- * @dev Execute the ActionsSet
- * @param actionsSetId id of the ActionsSet to execute
- **/
- function execute(uint256 actionsSetId) external payable;
-}
-
-interface IProposalValidator {
- /**
- * @dev Get voting duration constant value
- * @return the voting duration value in seconds
- **/
- function VOTING_DURATION() external view returns (uint256);
-}
-
-library GovHelpers {
- error ExecutorNotFound();
- error LongBytesNotSupportedYet();
-
- struct Payload {
- address target;
- uint256 value;
- string signature;
- bytes callData;
- bool withDelegatecall;
- }
-
- function ipfsHashFile(Vm vm, string memory filePath) internal returns (bytes32) {
- return IpfsUtils.ipfsHashFile(vm, filePath, false);
- }
-
- function buildMainnet(address payloadAddress) internal pure returns (Payload memory) {
- require(payloadAddress != address(0), 'NON_ZERO_TARGET');
- require(
- payloadAddress != AaveGovernanceV2.CROSSCHAIN_FORWARDER_OPTIMISM &&
- payloadAddress != AaveGovernanceV2.CROSSCHAIN_FORWARDER_METIS &&
- payloadAddress != AaveGovernanceV2.CROSSCHAIN_FORWARDER_ARBITRUM &&
- payloadAddress != AaveGovernanceV2.CROSSCHAIN_FORWARDER_POLYGON &&
- payloadAddress != AaveGovernanceV2.CROSSCHAIN_FORWARDER_BASE,
- 'PAYLOAD_CANT_BE_FORWARDER'
- );
-
- return
- Payload({
- target: payloadAddress,
- signature: 'execute()',
- callData: '',
- value: 0,
- withDelegatecall: true
- });
- }
-
- function buildOptimism(address payloadAddress) internal pure returns (Payload memory) {
- return
- _buildL2({
- forwarder: AaveGovernanceV2.CROSSCHAIN_FORWARDER_OPTIMISM,
- payloadAddress: payloadAddress
- });
- }
-
- function buildArbitrum(address payloadAddress) internal pure returns (Payload memory) {
- return
- _buildL2({
- forwarder: AaveGovernanceV2.CROSSCHAIN_FORWARDER_ARBITRUM,
- payloadAddress: payloadAddress
- });
- }
-
- function buildPolygon(address payloadAddress) internal pure returns (Payload memory) {
- return
- _buildL2({
- forwarder: AaveGovernanceV2.CROSSCHAIN_FORWARDER_POLYGON,
- payloadAddress: payloadAddress
- });
- }
-
- function buildMetis(address payloadAddress) internal pure returns (Payload memory) {
- return
- _buildL2({
- forwarder: AaveGovernanceV2.CROSSCHAIN_FORWARDER_METIS,
- payloadAddress: payloadAddress
- });
- }
-
- function buildBase(address payloadAddress) internal pure returns (Payload memory) {
- return
- _buildL2({
- forwarder: AaveGovernanceV2.CROSSCHAIN_FORWARDER_BASE,
- payloadAddress: payloadAddress
- });
- }
-
- function _buildL2(
- address forwarder,
- address payloadAddress
- ) private pure returns (Payload memory) {
- require(payloadAddress != address(0), 'NON_ZERO_TARGET');
- return
- Payload({
- target: forwarder,
- value: 0,
- signature: 'execute(address)',
- callData: abi.encode(payloadAddress),
- withDelegatecall: true
- });
- }
-
- function createProposal(Payload[] memory payloads, bytes32 ipfsHash) internal returns (uint256) {
- return _createProposal(AaveGovernanceV2.SHORT_EXECUTOR, payloads, ipfsHash, false);
- }
-
- function createProposal(
- Payload[] memory payloads,
- bytes32 ipfsHash,
- bool emitLog
- ) internal returns (uint256) {
- return _createProposal(AaveGovernanceV2.SHORT_EXECUTOR, payloads, ipfsHash, emitLog);
- }
-
- function createProposal(
- Payload[] memory payloads,
- bytes32 ipfsHash,
- address executor
- ) internal returns (uint256) {
- return _createProposal(executor, payloads, ipfsHash, false);
- }
-
- function createProposal(
- Payload[] memory payloads,
- bytes32 ipfsHash,
- bool emitLog,
- address executor
- ) internal returns (uint256) {
- return _createProposal(executor, payloads, ipfsHash, emitLog);
- }
-
- function _createProposal(
- address executor,
- Payload[] memory payloads,
- bytes32 ipfsHash,
- bool emitLog
- ) private returns (uint256) {
- require(block.chainid == ChainIds.MAINNET, 'MAINNET_ONLY');
- require(payloads.length != 0, 'MINIMUM_ONE_PAYLOAD');
- require(ipfsHash != bytes32(0), 'NON_ZERO_IPFS_HASH');
-
- address[] memory targets = new address[](payloads.length);
- uint256[] memory values = new uint256[](payloads.length);
- string[] memory signatures = new string[](payloads.length);
- bytes[] memory calldatas = new bytes[](payloads.length);
- bool[] memory withDelegatecalls = new bool[](payloads.length);
- for (uint256 i = 0; i < payloads.length; i++) {
- require(payloads[i].target != address(0), 'NON_ZERO_TARGET');
- targets[i] = payloads[i].target;
- signatures[i] = payloads[i].signature;
- calldatas[i] = payloads[i].callData;
- values[i] = payloads[i].value;
- withDelegatecalls[i] = payloads[i].withDelegatecall;
- }
-
- if (emitLog) {
- console2.logBytes(
- abi.encodeWithSelector(
- AaveGovernanceV2.GOV.create.selector,
- IExecutorWithTimelock(executor),
- targets,
- values,
- signatures,
- calldatas,
- withDelegatecalls,
- ipfsHash
- )
- );
- }
-
- return
- AaveGovernanceV2.GOV.create(
- IExecutorWithTimelock(executor),
- targets,
- values,
- signatures,
- calldatas,
- withDelegatecalls,
- ipfsHash
- );
- }
-
- /**
- * @dev Impersonate the ecosystem reserve and creates the proposal.
- */
- function createTestProposal(
- Vm vm,
- Payload[] memory payloads,
- address executor
- ) internal returns (uint256) {
- vm.deal(MiscEthereum.ECOSYSTEM_RESERVE, 1 ether);
- vm.startPrank(MiscEthereum.ECOSYSTEM_RESERVE);
- uint256 proposalId = _createProposal(executor, payloads, bytes32('test'), false);
- vm.stopPrank();
- return proposalId;
- }
-
- function passVoteAndExecute(Vm vm, uint256 proposalId) internal {
- passVoteAndQueue(vm, proposalId);
- uint256 executionTime = AaveGovernanceV2.GOV.getProposalById(proposalId).executionTime;
- vm.warp(executionTime + 1);
- AaveGovernanceV2.GOV.execute(proposalId);
- }
-
- function passVoteAndQueue(Vm vm, uint256 proposalId) internal {
- passVote(vm, proposalId);
- AaveGovernanceV2.GOV.queue(proposalId);
- }
-
- /**
- * Alter storage slots so the proposal passes
- */
- function passVote(Vm vm, uint256 proposalId) internal {
- uint256 power = 5000000 ether;
- vm.roll(block.number + 1);
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(uint256(keccak256(abi.encode(proposalId, 0x4))) + 11),
- bytes32(power)
- );
- uint256 endBlock = AaveGovernanceV2.GOV.getProposalById(proposalId).endBlock;
- vm.roll(endBlock + 1);
- }
-
- /**
- * @dev executes latest actionset on a l2 executor
- * @param vm Vm instance passed down from test
- */
- function executeLatestActionSet(Vm vm, address executor) internal {
- uint256 proposalCount = uint256(vm.load(executor, bytes32(uint256(5))));
- executeActionSet(vm, proposalCount - 1, executor);
- }
-
- /**
- * @dev executes specified actionset on a l2 executor
- * @param vm Vm instance passed down from test
- * @param actionSetId id of actionset to execute
- */
- function executeActionSet(Vm vm, uint256 actionSetId, address executor) internal {
- uint256 proposalBaseSlot = StorageHelpers.getStorageSlotUintMapping(6, actionSetId);
- vm.store(executor, bytes32(proposalBaseSlot + 5), bytes32(block.timestamp));
- CommonExecutor(executor).execute(actionSetId);
- }
-
- /**
- * @dev executes specified payloadAddress on a specified executor via delegatecall
- * @notice this method accepts arbitrary executors (guardians and executors)
- * @param vm Vm instance passed down from test
- * @param executor address of the executor
- * @param payloadAddress address of payload to execute
- */
- function executePayload(Vm vm, address payloadAddress, address executor) internal {
- if (
- block.chainid == ChainIds.MAINNET &&
- (executor == AaveGovernanceV2.SHORT_EXECUTOR || executor == AaveGovernanceV2.LONG_EXECUTOR)
- ) {
- Payload[] memory proposals = new Payload[](1);
- proposals[0] = Payload({
- target: payloadAddress,
- signature: 'execute()',
- callData: '',
- withDelegatecall: true,
- value: 0
- });
- uint256 proposalId = _queueProposalToL1ExecutorStorage(vm, executor, proposals);
- AaveGovernanceV2.GOV.execute(proposalId);
- } else if (_isKnownL2Executor(executor)) {
- Payload[] memory proposals = new Payload[](1);
- proposals[0] = Payload({
- target: payloadAddress,
- signature: 'execute()',
- callData: '',
- withDelegatecall: true,
- value: 0
- });
- uint256 proposalId = _queueProposalToL2ExecutorStorage(vm, executor, proposals);
- CommonExecutor(executor).execute(proposalId);
- } else {
- MockExecutor mockExecutor = new MockExecutor();
- vm.etch(executor, address(mockExecutor).code);
- MockExecutor(executor).execute(payloadAddress);
- }
- }
-
- /**
- * @notice Executor storage is the same on all l2s
- * @param vm vm
- * @param params proposal
- */
- function _queueProposalToL2ExecutorStorage(
- Vm vm,
- address l2Executor,
- Payload[] memory params
- ) internal returns (uint256) {
- // count is stored in slot 5
- uint256 proposalCount = uint256(vm.load(l2Executor, bytes32(uint256(5))));
- // bump counter by 1
- vm.store(l2Executor, bytes32(uint256(5)), bytes32(proposalCount + 1));
-
- // set storage array sizes
- // actionSetSlot
- uint256 proposalBaseSlot = StorageHelpers.getStorageSlotUintMapping(6, proposalCount);
- // targets
- vm.store(l2Executor, bytes32(proposalBaseSlot), bytes32(params.length));
- // values
- vm.store(l2Executor, bytes32(proposalBaseSlot + 1), bytes32(params.length));
- // signatures
- vm.store(l2Executor, bytes32(proposalBaseSlot + 2), bytes32(params.length));
- // calldatas
- vm.store(l2Executor, bytes32(proposalBaseSlot + 3), bytes32(params.length));
- // withDelegateCalls
- vm.store(l2Executor, bytes32(proposalBaseSlot + 4), bytes32(params.length));
-
- // store actual values
- for (uint256 i = 0; i < params.length; i++) {
- // targets
- vm.store(
- l2Executor,
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot, i, 1)),
- bytes32(uint256(uint160(params[i].target)))
- );
- // values
- vm.store(
- l2Executor,
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 1, i, 1)),
- bytes32(0)
- );
- // signatures
- if (bytes(params[i].signature).length > 31) revert LongBytesNotSupportedYet();
- vm.store(
- l2Executor,
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 2, i, 1)),
- bytes32(
- bytes.concat(
- bytes31(bytes(params[i].signature)),
- bytes1(uint8(bytes(params[i].signature).length * 2))
- )
- )
- );
- // calldatas
- if (params[i].callData.length > 31) revert LongBytesNotSupportedYet();
- vm.store(
- l2Executor,
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 3, i, 1)),
- bytes32(
- bytes.concat(
- bytes31(bytes(params[i].callData)),
- bytes1(uint8(bytes(params[i].callData).length * 2))
- )
- )
- );
- // withDelegateCalls
- vm.store(
- l2Executor,
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 4, i, 1)),
- bytes32(uint256(1))
- );
- }
- // executiontime
- vm.store(l2Executor, bytes32(proposalBaseSlot + 5), bytes32(block.timestamp));
- return proposalCount;
- }
-
- /**
- * @notice Creates a proposal via storage overwrites
- * @param vm vm
- * @param params proposal
- */
- function _queueProposalToL1ExecutorStorage(
- Vm vm,
- address l1Executor,
- Payload[] memory params
- ) internal returns (uint256) {
- // struct Proposal {
- // uint256 id; // 0
- // address creator; // 1
- // IExecutorWithTimelock executor; // 2
- // address[] targets; // 3
- // uint256[] values; // 4
- // string[] signatures; // 5
- // bytes[] calldatas; // 6
- // bool[] withDelegatecalls; // 7
- // uint256 startBlock; // 8
- // uint256 endBlock; // 9
- // uint256 executionTime; // 10
- // uint256 forVotes; // 11
- // uint256 againstVotes; // 12
- // bool executed; // 13 0-8
- // bool canceled; // 13 9-16
- // address strategy; // 13 16-176
- // bytes32 ipfsHash; // 14
- // mapping(address => Vote) votes; // 15
- // }
- // count is stored in slot 5
- uint256 proposalCount = uint256(vm.load(address(AaveGovernanceV2.GOV), bytes32(uint256(3))));
- // bump counter by 1
- vm.store(address(AaveGovernanceV2.GOV), bytes32(uint256(3)), bytes32(proposalCount + 1));
-
- // set storage array sizes
- // proposals
- uint256 proposalBaseSlot = StorageHelpers.getStorageSlotUintMapping(4, proposalCount);
- // id
- vm.store(address(AaveGovernanceV2.GOV), bytes32(proposalBaseSlot), bytes32(proposalCount));
- // creator
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(proposalBaseSlot + 1),
- bytes32(uint256(uint160(msg.sender)))
- );
- // executor
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(proposalBaseSlot + 2),
- bytes32(uint256(uint160(l1Executor)))
- );
- // targets
- vm.store(address(AaveGovernanceV2.GOV), bytes32(proposalBaseSlot + 3), bytes32(params.length));
- // values
- vm.store(address(AaveGovernanceV2.GOV), bytes32(proposalBaseSlot + 4), bytes32(params.length));
- // signatures
- vm.store(address(AaveGovernanceV2.GOV), bytes32(proposalBaseSlot + 5), bytes32(params.length));
- // calldatas
- vm.store(address(AaveGovernanceV2.GOV), bytes32(proposalBaseSlot + 6), bytes32(params.length));
- // withDelegateCalls
- vm.store(address(AaveGovernanceV2.GOV), bytes32(proposalBaseSlot + 7), bytes32(params.length));
- // block math
- uint256 dalay = AaveGovernanceV2.GOV.getVotingDelay(); // (blocks) delay in voting blocks before voting can happen
- uint256 duration = IProposalValidator(l1Executor).VOTING_DURATION(); // (blocks) duration of the voting
- uint256 executionTime = block.timestamp;
- // @dev the block timings are not accurate, but enough to satisfy execution
- // startBlock
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(proposalBaseSlot + 8),
- bytes32(block.number - (dalay + duration))
- );
- // endBlock
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(proposalBaseSlot + 9),
- bytes32(block.number - 1)
- );
- // executionTime
- vm.store(address(AaveGovernanceV2.GOV), bytes32(proposalBaseSlot + 10), bytes32(executionTime));
- // forVotes
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(proposalBaseSlot + 11),
- bytes32(uint256(15_000_000 ether)) // TODO: calculate needed amount
- );
- // strategy
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(proposalBaseSlot + 13),
- bytes32(uint256(uint160(AaveGovernanceV2.GOV.getGovernanceStrategy())) << 16)
- );
- // store actual values
- for (uint256 i = 0; i < params.length; i++) {
- bytes32 queueHash = keccak256(
- abi.encode(
- params[i].target,
- 0,
- params[i].signature,
- params[i].callData,
- executionTime,
- true
- )
- );
- // queue hash on executor
- vm.store(
- l1Executor,
- bytes32(
- StorageHelpers.getStorageSlotBytes32Mapping(
- // the mapping slot is 3 on short and 7 on long
- l1Executor == AaveGovernanceV2.SHORT_EXECUTOR ? 3 : 7,
- queueHash
- )
- ),
- bytes32(uint256(1))
- );
- // targets
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 3, i, 1)),
- bytes32(uint256(uint160(params[i].target)))
- );
- // values
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 4, i, 1)),
- bytes32(0)
- );
- // signatures
- if (bytes(params[i].signature).length > 31) revert LongBytesNotSupportedYet();
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 5, i, 1)),
- bytes32(
- bytes.concat(
- bytes31(bytes(params[i].signature)),
- bytes1(uint8(bytes(params[i].signature).length * 2))
- )
- )
- );
- // calldatas
- if (params[i].callData.length > 31) revert LongBytesNotSupportedYet();
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 6, i, 1)),
- bytes32(
- bytes.concat(
- bytes31(bytes(params[i].callData)),
- bytes1(uint8(bytes(params[i].callData).length * 2))
- )
- )
- );
- // withDelegateCalls
- vm.store(
- address(AaveGovernanceV2.GOV),
- bytes32(StorageHelpers.arrLocation(proposalBaseSlot + 7, i, 1)),
- bytes32(uint256(1))
- );
- }
- return proposalCount;
- }
-
- function _isKnownL2Executor(address executor) internal view returns (bool) {
- if (executor == AaveGovernanceV2.OPTIMISM_BRIDGE_EXECUTOR && block.chainid == ChainIds.OPTIMISM)
- return true;
- if (executor == AaveGovernanceV2.POLYGON_BRIDGE_EXECUTOR && block.chainid == ChainIds.POLYGON)
- return true;
- if (executor == AaveGovernanceV2.METIS_BRIDGE_EXECUTOR && block.chainid == ChainIds.METIS)
- return true;
- if (executor == AaveGovernanceV2.ARBITRUM_BRIDGE_EXECUTOR && block.chainid == ChainIds.ARBITRUM)
- return true;
- if (executor == AaveGovernanceV2.BASE_BRIDGE_EXECUTOR && block.chainid == ChainIds.BASE)
- return true;
- // not a l2, but following same interface & stroage
- if (executor == AaveGovernanceV2.ARC_TIMELOCK && block.chainid == ChainIds.MAINNET) return true;
- return false;
- }
-}
-
-/**
- * @dev Mock contract which allows performing a delegatecall to `execute`
- * Intended to be used as replacement for L2 admins/executors to mock governance/gnosis execution.
- */
-contract MockExecutor {
- /**
- * @notice Non-standard functionality used to skip governance and just execute a payload.
- */
- function execute(address payload) public {
- (bool success, ) = payload.delegatecall(abi.encodeWithSignature('execute()'));
- require(success, 'PROPOSAL_EXECUTION_FAILED');
- }
-}
diff --git a/src/GovV3Helpers.sol b/src/GovV3Helpers.sol
index 5a3f8ea8a..a879c66ab 100644
--- a/src/GovV3Helpers.sol
+++ b/src/GovV3Helpers.sol
@@ -23,47 +23,8 @@ import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';
import {StorageHelpers} from './StorageHelpers.sol';
import {ProxyHelpers} from './ProxyHelpers.sol';
-import {GovHelpers, IAaveGovernanceV2} from './GovHelpers.sol';
import {Create2Utils} from './ScriptUtils.sol';
-interface IGovernance_V2_5 {
- /**
- * @notice emitted when gas limit gets updated
- * @param gasLimit the new gas limit
- */
- event GasLimitUpdated(uint256 indexed gasLimit);
-
- /**
- * @notice method to get the CrossChainController contract address of the currently deployed address
- * @return address of CrossChainController contract
- */
- function CROSS_CHAIN_CONTROLLER() external view returns (address);
-
- /**
- * @notice method to get the name of the contract
- * @return name string
- */
- function NAME() external view returns (string memory);
-
- /**
- * @notice method to get the gas limit used on destination chain to execute bridged message
- * @return gas limit
- * @dev this gas limit is assuming that the messages to forward are only payload execution messages
- */
- function GAS_LIMIT() external view returns (uint256);
-
- /**
- * @notice method to send a payload to execution chain
- * @param payload object with the information needed for execution
- */
- function forwardPayloadForExecution(PayloadsControllerUtils.Payload memory payload) external;
-
- /**
- * @notice method to initialize governance v2.5
- */
- function initialize() external;
-}
-
library GovV3Helpers {
error CannotFindPayload();
error CannotFindPayloadsController();
@@ -588,37 +549,6 @@ library GovV3Helpers {
GovernanceV3Ethereum.GOVERNANCE.executeProposal(proposalId);
}
- function build2_5Payload(
- PayloadsControllerUtils.Payload memory payload
- ) internal returns (GovHelpers.Payload memory) {
- return
- GovHelpers.Payload({
- target: address(GovernanceV3Ethereum.GOVERNANCE),
- value: 0,
- signature: 'forwardPayloadForExecution((uint256,uint8,address,uint40))',
- callData: abi.encode(payload),
- withDelegatecall: false
- });
- }
-
- // temporarily patched create proposal for governance v2.5
- function createProposal2_5(
- Vm vm,
- PayloadsControllerUtils.Payload[] memory payloads,
- bytes32 ipfsHash
- ) internal returns (uint256) {
- require(block.chainid == ChainIds.MAINNET, 'MAINNET_ONLY');
- require(payloads.length != 0, 'MINIMUM_ONE_PAYLOAD');
- require(ipfsHash != bytes32(0), 'NON_ZERO_IPFS_HASH');
-
- generateProposalPreviewLink(vm, payloads, ipfsHash, address(0));
- GovHelpers.Payload[] memory gov2Payloads = new GovHelpers.Payload[](payloads.length);
- for (uint256 i = 0; i < payloads.length; i++) {
- gov2Payloads[i] = build2_5Payload(payloads[i]);
- }
- return GovHelpers.createProposal(gov2Payloads, ipfsHash, true);
- }
-
/**
* @dev creates a proposal with a single payload
* @param vm Vm
diff --git a/src/crosschainforwarders/CrosschainForwarderArbitrum.sol b/src/crosschainforwarders/CrosschainForwarderArbitrum.sol
deleted file mode 100644
index 9c0aa56f2..000000000
--- a/src/crosschainforwarders/CrosschainForwarderArbitrum.sol
+++ /dev/null
@@ -1,110 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
-import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
-import {IInbox} from 'governance-crosschain-bridges/contracts/dependencies/arbitrum/interfaces/IInbox.sol';
-import {IL2BridgeExecutor} from 'governance-crosschain-bridges/contracts/interfaces/IL2BridgeExecutor.sol';
-
-/**
- * @title A generic executor for proposals targeting the arbitrum v3 pool
- * @author BGD Labs
- * @notice You can **only** use this executor when the arbitrum payload has a `execute()` signature without parameters
- * @notice You can **only** use this executor when the arbitrum payload is expected to be executed via `DELEGATECALL`
- * @notice This contract assumes to be called via AAVE Governance V2
- * @notice This contract will assume the SHORT_EXECUTOR will be topped up with enough funds to fund the short executor
- * @dev This executor is a generic wrapper to be used with Arbitrum Inbox (https://developer.offchainlabs.com/arbos/l1-to-l2-messaging)
- * It encodes a parameterless `execute()` with delegate calls and a specified target.
- * This encoded abi is then send to the Inbox to be synced executed on the arbitrum network.
- * Once synced the ARBITRUM_BRIDGE_EXECUTOR will queue the execution of the payload.
- */
-contract CrosschainForwarderArbitrum {
- IInbox public constant INBOX = IInbox(0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f);
- address public constant ARBITRUM_BRIDGE_EXECUTOR = AaveGovernanceV2.ARBITRUM_BRIDGE_EXECUTOR;
- address public constant ARBITRUM_GUARDIAN = 0xbbd9f90699c1FA0D7A65870D241DD1f1217c96Eb;
-
- // amount of gwei to overpay on basefee for fast submission
- uint256 public constant BASE_FEE_MARGIN = 10 gwei;
-
- /**
- * @dev calculateRetryableSubmissionFee on `0x00000000000000000000000000000000000000C8` for a queue call with 1 slot will yield a constant gasLimit of `429478`
- * To account for some margin we rounded up to 450000
- */
- uint256 public constant L2_GAS_LIMIT = 450000;
-
- /**
- * @dev There is currently no oracle on L1 exposing gasPrice of arbitrum. Therefore we overpay by assuming 1 gwei (10x of current price).
- */
- uint256 public constant L2_MAX_FEE_PER_GAS = 1 gwei;
-
- /**
- * @dev returns the amount of gas needed for submitting the ticket
- * @param bytesLength the payload bytes length (usually 580)
- * @return uint256 maxSubmissionFee needed on L2 with BASE_FEE_MARGIN
- * @return uint256 estimated L2 redepmption fee
- */
- function getRequiredGas(uint256 bytesLength) public view returns (uint256, uint256) {
- return (
- INBOX.calculateRetryableSubmissionFee(bytesLength, block.basefee + BASE_FEE_MARGIN),
- L2_GAS_LIMIT * L2_MAX_FEE_PER_GAS
- );
- }
-
- /**
- * @dev checks if the short executor is topped up with enough eth for proposal execution
- * with current basefee
- * @param bytesLength the payload bytes length (usually 580)
- * @return bool indicating if the SHORT_EXECUTOR has sufficient funds
- * @return uint256 the gas required for ticket creation and redemption
- */
- function hasSufficientGasForExecution(uint256 bytesLength) public view returns (bool, uint256) {
- (uint256 maxSubmission, uint256 maxRedemption) = getRequiredGas(bytesLength);
- uint256 requiredGas = maxSubmission + maxRedemption;
- return (AaveGovernanceV2.SHORT_EXECUTOR.balance >= requiredGas, requiredGas);
- }
-
- /**
- * @dev encodes the queue call which is forwarded to arbitrum
- * @param l2PayloadContract the address of the arbitrum payload
- */
- function getEncodedPayload(address l2PayloadContract) public pure returns (bytes memory) {
- address[] memory targets = new address[](1);
- targets[0] = l2PayloadContract;
- uint256[] memory values = new uint256[](1);
- values[0] = 0;
- string[] memory signatures = new string[](1);
- signatures[0] = 'execute()';
- bytes[] memory calldatas = new bytes[](1);
- calldatas[0] = '';
- bool[] memory withDelegatecalls = new bool[](1);
- withDelegatecalls[0] = true;
- return
- abi.encodeWithSelector(
- IL2BridgeExecutor.queue.selector,
- targets,
- values,
- signatures,
- calldatas,
- withDelegatecalls
- );
- }
-
- /**
- * @dev this function will be executed once the proposal passes the mainnet vote.
- * @param l2PayloadContract the arbitrum contract containing the `execute()` signature.
- */
- function execute(address l2PayloadContract) public {
- bytes memory queue = getEncodedPayload(l2PayloadContract);
- (uint256 maxSubmission, uint256 maxRedemption) = getRequiredGas(queue.length);
- INBOX.unsafeCreateRetryableTicket{value: maxSubmission + maxRedemption}(
- ARBITRUM_BRIDGE_EXECUTOR,
- 0, // l2CallValue
- maxSubmission, // maxSubmissionCost
- address(ARBITRUM_BRIDGE_EXECUTOR), // excessFeeRefundAddress
- address(ARBITRUM_GUARDIAN), // callValueRefundAddress
- L2_GAS_LIMIT, // gasLimit
- L2_MAX_FEE_PER_GAS, // maxFeePerGas
- queue
- );
- }
-}
diff --git a/src/crosschainforwarders/CrosschainForwarderMetis.sol b/src/crosschainforwarders/CrosschainForwarderMetis.sol
deleted file mode 100644
index 965dcb139..000000000
--- a/src/crosschainforwarders/CrosschainForwarderMetis.sol
+++ /dev/null
@@ -1,67 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
-import {ICrossDomainMessenger} from 'governance-crosschain-bridges/contracts/dependencies/optimism/interfaces/ICrossDomainMessenger.sol';
-import {IL2BridgeExecutor} from 'governance-crosschain-bridges/contracts/interfaces/IL2BridgeExecutor.sol';
-
-/**
- * @title A generic executor for proposals targeting the metis v3 pool
- * @author BGD Labs
- * @notice You can **only** use this executor when the metis payload has a `execute()` signature without parameters
- * @notice You can **only** use this executor when the metis payload is expected to be executed via `DELEGATECALL`
- * @notice The L2CrossDomainMessenger can **only** queue an action on metis with up to a max gas which is specified in `MAX_GAS_LIMIT`.
- * It encodes and sends via the L2CrossDomainMessenger a message to queue for execution an action on L2, in the Aave METIS_BRIDGE_EXECUTOR.
- */
-contract CrosschainForwarderMetis {
- /**
- * @dev The L1 Cross Domain Messenger contract sends messages from L1 to L2, and relays messages
- * from L2 onto L1. In this contract it's used by the governance SHORT_EXECUTOR to send the encoded L2 queuing over the bridge.
- */
- address public constant L1_CROSS_DOMAIN_MESSENGER_ADDRESS =
- 0x081D1101855bD523bA69A9794e0217F0DB6323ff;
-
- /**
- * @dev The metis bridge executor is a L2 governance execution contract.
- * This contract allows queuing of proposals by allow listed addresses (in this case the L1 short executor).
- * https://andromeda-explorer.metis.io/address/0x8EC77963068474a45016938Deb95E603Ca82a029
- */
- address public constant METIS_BRIDGE_EXECUTOR = AaveGovernanceV2.METIS_BRIDGE_EXECUTOR;
-
- /**
- * @dev The gas limit of the queue transaction by the L2CrossDomainMessenger on L2.
- * The limit seems reasonable considering the queue transaction, as all gas limits are prepaid.
- */
- uint32 public constant MAX_GAS_LIMIT = 5_000_000;
-
- /**
- * @dev this function will be executed once the proposal passes the mainnet vote.
- * @param l2PayloadContract the metis contract containing the `execute()` signature.
- */
- function execute(address l2PayloadContract) public {
- address[] memory targets = new address[](1);
- targets[0] = l2PayloadContract;
- uint256[] memory values = new uint256[](1);
- values[0] = 0;
- string[] memory signatures = new string[](1);
- signatures[0] = 'execute()';
- bytes[] memory calldatas = new bytes[](1);
- calldatas[0] = '';
- bool[] memory withDelegatecalls = new bool[](1);
- withDelegatecalls[0] = true;
-
- bytes memory queue = abi.encodeWithSelector(
- IL2BridgeExecutor.queue.selector,
- targets,
- values,
- signatures,
- calldatas,
- withDelegatecalls
- );
- ICrossDomainMessenger(L1_CROSS_DOMAIN_MESSENGER_ADDRESS).sendMessage(
- METIS_BRIDGE_EXECUTOR,
- queue,
- MAX_GAS_LIMIT
- );
- }
-}
diff --git a/src/crosschainforwarders/CrosschainForwarderOptimism.sol b/src/crosschainforwarders/CrosschainForwarderOptimism.sol
deleted file mode 100644
index fca432e82..000000000
--- a/src/crosschainforwarders/CrosschainForwarderOptimism.sol
+++ /dev/null
@@ -1,74 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import {ICrossDomainMessenger} from 'governance-crosschain-bridges/contracts/dependencies/optimism/interfaces/ICrossDomainMessenger.sol';
-import {IL2BridgeExecutor} from 'governance-crosschain-bridges/contracts/interfaces/IL2BridgeExecutor.sol';
-
-interface ICanonicalTransactionChain {
- function enqueueL2GasPrepaid() external view returns (uint256);
-}
-
-/**
- * @title A generic executor for proposals targeting the optimism v3 pool
- * @author BGD Labs
- * @notice You can **only** use this executor when the optimism payload has a `execute()` signature without parameters
- * @notice You can **only** use this executor when the optimism payload is expected to be executed via `DELEGATECALL`
- * @notice You can **only** execute payloads on optimism with up to prepayed gas which is specified in `enqueueL2GasPrepaid` gas.
- * Prepaid gas is the maximum gas covered by the bridge without additional payment.
- * @dev This executor is a generic wrapper to be used with Optimism CrossDomainMessenger (https://etherscan.io/address/0x25ace71c97b33cc4729cf772ae268934f7ab5fa1)
- * It encodes and sends via the L2CrossDomainMessenger a message to queue for execution an action on L2, in the Aave OPTIMISM_BRIDGE_EXECUTOR.
- */
-contract CrosschainForwarderOptimism {
- /**
- * @dev The L1 Cross Domain Messenger contract sends messages from L1 to L2, and relays messages
- * from L2 onto L1. In this contract it's used by the governance SHORT_EXECUTOR to send the encoded L2 queuing over the bridge.
- */
- address public constant L1_CROSS_DOMAIN_MESSENGER_ADDRESS =
- 0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1;
-
- /**
- * @dev The optimism bridge executor is a L2 governance execution contract.
- * This contract allows queuing of proposals by allow listed addresses (in this case the L1 short executor).
- * https://optimistic.etherscan.io/address/0x7d9103572bE58FfE99dc390E8246f02dcAe6f611
- */
- address public constant OPTIMISM_BRIDGE_EXECUTOR = 0x7d9103572bE58FfE99dc390E8246f02dcAe6f611;
-
- /**
- * @dev The CTC contract is an append only log of transactions which must be applied to the rollup state.
- * It also holds configurations like the currently prepayed amount of gas which is what this contract is utilizing.
- * https://etherscan.io/address/0x5e4e65926ba27467555eb562121fac00d24e9dd2#code
- */
- ICanonicalTransactionChain public constant CANONICAL_TRANSACTION_CHAIN =
- ICanonicalTransactionChain(0x5E4e65926BA27467555EB562121fac00D24E9dD2);
-
- /**
- * @dev this function will be executed once the proposal passes the mainnet vote.
- * @param l2PayloadContract the optimism contract containing the `execute()` signature.
- */
- function execute(address l2PayloadContract) public {
- address[] memory targets = new address[](1);
- targets[0] = l2PayloadContract;
- uint256[] memory values = new uint256[](1);
- values[0] = 0;
- string[] memory signatures = new string[](1);
- signatures[0] = 'execute()';
- bytes[] memory calldatas = new bytes[](1);
- calldatas[0] = '';
- bool[] memory withDelegatecalls = new bool[](1);
- withDelegatecalls[0] = true;
-
- bytes memory queue = abi.encodeWithSelector(
- IL2BridgeExecutor.queue.selector,
- targets,
- values,
- signatures,
- calldatas,
- withDelegatecalls
- );
- ICrossDomainMessenger(L1_CROSS_DOMAIN_MESSENGER_ADDRESS).sendMessage(
- OPTIMISM_BRIDGE_EXECUTOR,
- queue,
- uint32(CANONICAL_TRANSACTION_CHAIN.enqueueL2GasPrepaid())
- );
- }
-}
diff --git a/src/crosschainforwarders/CrosschainForwarderPolygon.sol b/src/crosschainforwarders/CrosschainForwarderPolygon.sol
deleted file mode 100644
index 1ada02d6c..000000000
--- a/src/crosschainforwarders/CrosschainForwarderPolygon.sol
+++ /dev/null
@@ -1,39 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import {IFxStateSender} from 'governance-crosschain-bridges/contracts/dependencies/polygon/fxportal/FxRoot.sol';
-
-/**
- * @title A generic executor for proposals targeting the polygon v3 pool
- * @author BGD Labs
- * @notice You can **only** use this executor when the polygon payload has a `execute()` signature without parameters
- * @notice You can **only** use this executor when the polygon payload is expected to be executed via `DELEGATECALL`
- * @dev This executor is a generic wrapper to be used with FX bridges (https://github.com/fx-portal/contracts)
- * It encodes a parameterless `execute()` with delegate calls and a specified target.
- * This encoded abi is then send to the FX-root to be synced to the FX-child on the polygon network.
- * Once synced the POLYGON_BRIDGE_EXECUTOR will queue the execution of the payload.
- */
-contract CrosschainForwarderPolygon {
- address public constant FX_ROOT_ADDRESS = 0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2;
- address public constant POLYGON_BRIDGE_EXECUTOR = 0xdc9A35B16DB4e126cFeDC41322b3a36454B1F772;
-
- /**
- * @dev this function will be executed once the proposal passes the mainnet vote.
- * @param l2PayloadContract the polygon contract containing the `execute()` signature.
- */
- function execute(address l2PayloadContract) public {
- address[] memory targets = new address[](1);
- targets[0] = l2PayloadContract;
- uint256[] memory values = new uint256[](1);
- values[0] = 0;
- string[] memory signatures = new string[](1);
- signatures[0] = 'execute()';
- bytes[] memory calldatas = new bytes[](1);
- calldatas[0] = '';
- bool[] memory withDelegatecalls = new bool[](1);
- withDelegatecalls[0] = true;
-
- bytes memory actions = abi.encode(targets, values, signatures, calldatas, withDelegatecalls);
- IFxStateSender(FX_ROOT_ADDRESS).sendMessageToChild(POLYGON_BRIDGE_EXECUTOR, actions);
- }
-}
diff --git a/src/crosschainforwarders/README.md b/src/crosschainforwarders/README.md
deleted file mode 100644
index 7d5d866b6..000000000
--- a/src/crosschainforwarders/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# CrosschainForwarder
-
-## About
-
-To simplify the process of creating a cross-chain proposal this repository contains opinionated `CrosschainForwarder` contracts for `Polygon`, `Optimism`, `Metis` and `Arbitrum` abstracting away the complexity of bridging & cross-chain gas calculations.
-All the forwarders follow the same pattern. They expect a payload to be deployed on L2 and to be executed with a parameterless `execute()` signature and via `DELEGATECALL`.
-
-
-
-### Polygon
-
-For a proposal to be executed on Polygon it needs to pass a mainnet governance proposal that sends an encoded payload via `sendMessageToChild(address,bytes)` on [FX_ROOT](https://etherscan.io/address/0xfe5e5D361b2ad62c541bAb87C45a0B9B018389a2#code)(mainnet) to [FX_CHILD](https://polygonscan.com/address/0x8397259c983751DAf40400790063935a11afa28a#code)(Polygon).
-Once the state is synced to `FX_CHILD` on Polygon network it will queue the payload on [POLYGON_BRIDGE_EXECUTOR](https://polygonscan.com/address/0xdc9A35B16DB4e126cFeDC41322b3a36454B1F772#code).
-
-### Optimism
-
-For a proposal to be executed on Optimism it needs to pass a mainnet governance proposal that sends an encoded payload via `sendMessage(address,bytes,uint32)` on [L1_CROSS_DOMAIN_MESSENGER](https://etherscan.io/address/0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1)(mainnet) to [L2_CROSS_DOMAIN_MESSENGER](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000007#code)(Optimism).
-Once the state is `L2_CROSS_DOMAIN_MESSENGER` on Optimism it will queue the payload on [OPTIMISM_BRIDGE_EXECUTOR](https://optimistic.etherscan.io/address/0x7d9103572bE58FfE99dc390E8246f02dcAe6f611).
-
-### Metis
-
-Similar to Optimism, for a proposal to be executed on Metis it needs to pass a mainnet governance proposal that sends an encoded payload via `sendMessage(address,bytes,uint32)` on [L1_CROSS_DOMAIN_MESSENGER](https://etherscan.io/address/0x081D1101855bD523bA69A9794e0217F0DB6323ff)(mainnet) to [L2_CROSS_DOMAIN_MESSENGER](https://andromeda-explorer.metis.io/address/0x4200000000000000000000000000000000000007)(Metis).
-Once the state is `L2_CROSS_DOMAIN_MESSENGER` on Metis it will queue the payload on [METIS_BRIDGE_EXECUTOR](https://andromeda-explorer.metis.io/address/0x8EC77963068474a45016938Deb95E603Ca82a029).
-
-Caveat: Opposed to the other messenger like on Optimism, using the Metis messenger requires a whitelist by the Metis team. The [SHORT_EXECUTOR](https://etherscan.io/address/0xEE56e2B3D491590B5b31738cC34d5232F378a8D5) has been whitelisted to use the messenger. Also, the gas to queue the payload by the messenger has been hardcoded to 5 million, which seems reasonable considering the queue transaction. Unlike Optimism, the Metis messenger has no limit on gas, and everything is prepaid.
-
-### Arbitrum
-
-For a proposal to be executed on Arbitrum it needs to pass a mainnet governance proposal that sends an encoded payload via `unsafeCreateRetryableTicket{value: uint256}(address,uint256,uint256,address,address,uint256,uint256,bytes)` on [INBOX](https://etherscan.io/address/0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f)(mainnet). The Arbitrum bridge will then call the bridged calldata via the L2_ALIAS of the mainnet `msg.sender` (in this case is the aliased mainnet governance executor) which will queue the payload on [ARBITRUM_BRIDGE_EXECUTOR](https://arbiscan.io/address/0x7d9103572bE58FfE99dc390E8246f02dcAe6f611).
-
-Caveat: Opposed to the other bridges, Arbitrum inbox bridge requires you to supply some gas.
-For simplicity the `CrosschainForwarderArbitrum` expects some eth to be available on the [SHORT_EXECUTOR](https://etherscan.io/address/0xEE56e2B3D491590B5b31738cC34d5232F378a8D5).
-You can check if you need to top-up the SHORT_EXECUTOR by calling `getRequiredGas(580)` on the `CrosschainForwarderArbitrum`.
-
-## Deployed addresses
-
-### Forwarders
-
-- [CrosschainForwarderPolygon](https://etherscan.io/address/0x158a6bc04f0828318821bae797f50b0a1299d45b#code)
-- [CrosschainForwarderOptimism](https://etherscan.io/address/0x5f5c02875a8e9b5a26fbd09040abcfdeb2aa6711#code)
-- [CrosschainForwarderMetis](https://etherscan.io/address/0x2fE52eF191F0BE1D98459BdaD2F1d3160336C08f#code)
-- [CrosschainForwarderArbitrum](https://etherscan.io/address/0x2e2B1F112C4D79A9D22464F0D345dE9b792705f1#code)
-
-## References
-
-- [PolygonBridge: FxRoot](https://etherscan.io/address/0xfe5e5d361b2ad62c541bab87c45a0b9b018389a2#code)
-- [PolygonBridge: PolygonBridgeExecutor](https://polygonscan.com/address/0xdc9A35B16DB4e126cFeDC41322b3a36454B1F772#code)
-
-- [OptimismBridge: L1CrossDomainMessenger](https://etherscan.io/address/0x25ace71c97b33cc4729cf772ae268934f7ab5fa1#readProxyContract)
-- [OptimismBridge: OptimismBridgeExecutor](https://optimistic.etherscan.io/address/0x7d9103572be58ffe99dc390e8246f02dcae6f611#code)
-
-- [MetisBridge: L1CrossDomainMessenger](https://etherscan.io/address/0x081D1101855bD523bA69A9794e0217F0DB6323ff#code)
-- [MetisBridge: MetisBridgeExecutor](https://andromeda-explorer.metis.io/address/0x8EC77963068474a45016938Deb95E603Ca82a029/contracts#address-tabs)
-
-- [ArbitrumBridge: Inbox](https://etherscan.io/address/0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f#code)
-- [ArtitrumBridge: ArbitrumBridgeExecutor](https://arbiscan.io/address/0x7d9103572be58ffe99dc390e8246f02dcae6f611#code)
-
-- [aave crosschain-bridge repository](https://github.com/aave/governance-crosschain-bridges#polygon-governance-bridge)
-- [first ever Polygon bridge proposal](https://github.com/pakim249CAL/Polygon-Asset-Deployment-Generic-Executor)
diff --git a/src/crosschainforwarders/bridge-listing.png b/src/crosschainforwarders/bridge-listing.png
deleted file mode 100644
index 2ffb59451..000000000
Binary files a/src/crosschainforwarders/bridge-listing.png and /dev/null differ
diff --git a/tests/GovV3Test.t.sol b/tests/GovV3Test.t.sol
index 845ff6452..2e94480dd 100644
--- a/tests/GovV3Test.t.sol
+++ b/tests/GovV3Test.t.sol
@@ -3,7 +3,6 @@ pragma solidity ^0.8.0;
import 'forge-std/Test.sol';
import {IVotingMachineWithProofs, GovV3Helpers, PayloadsControllerUtils, IPayloadsControllerCore, GovV3StorageHelpers, IGovernanceCore} from '../src/GovV3Helpers.sol';
-import {GovHelpers} from '../src/GovHelpers.sol';
import {ProtocolV3TestBase} from '../src/ProtocolV3TestBase.sol';
import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
diff --git a/tests/crosschainforwarders/ArbitrumCrossChainForwarderTest.t.sol b/tests/crosschainforwarders/ArbitrumCrossChainForwarderTest.t.sol
deleted file mode 100644
index c6301ca72..000000000
--- a/tests/crosschainforwarders/ArbitrumCrossChainForwarderTest.t.sol
+++ /dev/null
@@ -1,151 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import 'forge-std/Test.sol';
-import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
-import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
-import {AaveGovernanceV2, IExecutorWithTimelock} from 'aave-address-book/AaveGovernanceV2.sol';
-import {AddressAliasHelper} from 'governance-crosschain-bridges/contracts/dependencies/arbitrum/AddressAliasHelper.sol';
-import {IInbox} from 'governance-crosschain-bridges/contracts/dependencies/arbitrum/interfaces/IInbox.sol';
-import {IL2BridgeExecutor} from 'governance-crosschain-bridges/contracts/interfaces/IL2BridgeExecutor.sol';
-import {GovHelpers} from '../../src/GovHelpers.sol';
-import {ProtocolV3TestBase, ReserveConfig, ReserveTokens, IERC20} from '../../src/ProtocolV3TestBase.sol';
-import {ProtocolV3TestBase, ReserveConfig} from '../../src/ProtocolV3TestBase.sol';
-import {CrosschainForwarderArbitrum} from '../../src/crosschainforwarders/CrosschainForwarderArbitrum.sol';
-import {PayloadWithEmit} from '../mocks/PayloadWithEmit.sol';
-
-/**
- * This test covers syncing between mainnet and arbitrum.
- */
-contract ArbitrumCrossChainForwarderTest is ProtocolV3TestBase {
- event TestEvent();
-
- // the identifiers of the forks
- uint256 mainnetFork;
- uint256 arbitrumFork;
-
- PayloadWithEmit public payloadWithEmit;
-
- IInbox public constant INBOX = IInbox(0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f);
-
- address public constant ARBITRUM_BRIDGE_EXECUTOR = AaveGovernanceV2.ARBITRUM_BRIDGE_EXECUTOR;
-
- uint256 public constant MESSAGE_LENGTH = 580;
-
- CrosschainForwarderArbitrum public forwarder;
-
- function setUp() public {
- mainnetFork = vm.createSelectFork(vm.rpcUrl('mainnet'), 16128510);
- forwarder = new CrosschainForwarderArbitrum();
- arbitrumFork = vm.createSelectFork(vm.rpcUrl('arbitrum'), 76261612);
- payloadWithEmit = new PayloadWithEmit();
- }
-
- // utility to transform memory to calldata so array range access is available
- function _cutBytes(bytes calldata input) public pure returns (bytes calldata) {
- return input[64:];
- }
-
- function testHasSufficientGas() public {
- vm.selectFork(mainnetFork);
- assertEq(AaveGovernanceV2.SHORT_EXECUTOR.balance, 0);
- (bool hasEnoughGasBefore, ) = forwarder.hasSufficientGasForExecution(580);
- assertEq(hasEnoughGasBefore, false);
- deal(address(AaveGovernanceV2.SHORT_EXECUTOR), 0.001 ether);
- (bool hasEnoughGasAfter, ) = forwarder.hasSufficientGasForExecution(580);
- assertEq(hasEnoughGasAfter, true);
- }
-
- function testgetGetMaxSubmissionCost() public {
- vm.selectFork(mainnetFork);
- (uint256 maxSubmission, ) = forwarder.getRequiredGas(580);
- assertGt(maxSubmission, 0);
- }
-
- function testProposalE2E() public {
- // assumes the short exec will be topped up with some eth to pay for l2 fee
- vm.selectFork(mainnetFork);
- deal(address(AaveGovernanceV2.SHORT_EXECUTOR), 0.001 ether);
-
- // 1. create l1 proposal
- vm.startPrank(MiscEthereum.ECOSYSTEM_RESERVE);
- GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](1);
- payloads[0] = GovHelpers.Payload({
- target: address(forwarder),
- value: 0,
- signature: 'execute(address)',
- callData: abi.encode(address(payloadWithEmit)),
- withDelegatecall: true
- });
-
- uint256 proposalId = GovHelpers.createProposal(
- payloads,
- 0xec9d2289ab7db9bfbf2b0f2dd41ccdc0a4003e9e0d09e40dee09095145c63fb5
- );
- vm.stopPrank();
-
- // 2. execute proposal and record logs so we can extract the emitted StateSynced event
- vm.recordLogs();
- bytes memory payload = forwarder.getEncodedPayload(address(payloadWithEmit));
-
- (uint256 maxSubmission, ) = forwarder.getRequiredGas(580);
- // check ticket is created correctly
- vm.expectCall(
- address(INBOX),
- abi.encodeCall(
- IInbox.unsafeCreateRetryableTicket,
- (
- ARBITRUM_BRIDGE_EXECUTOR,
- 0,
- maxSubmission,
- forwarder.ARBITRUM_BRIDGE_EXECUTOR(),
- forwarder.ARBITRUM_GUARDIAN(),
- forwarder.L2_GAS_LIMIT(),
- forwarder.L2_MAX_FEE_PER_GAS(),
- payload
- )
- )
- );
- GovHelpers.passVoteAndExecute(vm, proposalId);
-
- // check events are emitted correctly
- Vm.Log[] memory entries = vm.getRecordedLogs();
- assertEq(keccak256('InboxMessageDelivered(uint256,bytes)'), entries[3].topics[0]);
- // uint256 messageId = uint256(entries[3].topics[1]);
- (
- address to,
- uint256 callvalue,
- uint256 value,
- uint256 maxSubmissionCost,
- address excessFeeRefundAddress,
- address callValueRefundAddress,
- uint256 maxGas,
- uint256 gasPriceBid,
- uint256 length
- ) = abi.decode(
- this._cutBytes(entries[3].data),
- (address, uint256, uint256, uint256, address, address, uint256, uint256, uint256)
- );
- assertEq(callvalue, 0);
- assertEq(value > 0, true);
- assertEq(maxSubmissionCost > 0, true);
- assertEq(to, ARBITRUM_BRIDGE_EXECUTOR);
- assertEq(excessFeeRefundAddress, ARBITRUM_BRIDGE_EXECUTOR);
- assertEq(callValueRefundAddress, forwarder.ARBITRUM_GUARDIAN());
- assertEq(maxGas, forwarder.L2_GAS_LIMIT());
- assertEq(gasPriceBid, forwarder.L2_MAX_FEE_PER_GAS());
- assertEq(length, 580);
-
- // 3. mock the queuing on l2 with the data emitted on InboxMessageDelivered
- vm.selectFork(arbitrumFork);
- vm.startPrank(AddressAliasHelper.applyL1ToL2Alias(AaveGovernanceV2.SHORT_EXECUTOR));
-
- (bool success, ) = ARBITRUM_BRIDGE_EXECUTOR.call(payload);
- assertEq(success, true);
- vm.stopPrank();
- // 4. execute the proposal
- vm.expectEmit(true, true, true, true);
- emit TestEvent();
- GovHelpers.executeLatestActionSet(vm, ARBITRUM_BRIDGE_EXECUTOR);
- }
-}
diff --git a/tests/crosschainforwarders/MetisCrossChainForwarderTest.t.sol b/tests/crosschainforwarders/MetisCrossChainForwarderTest.t.sol
deleted file mode 100644
index 9b59fb8e2..000000000
--- a/tests/crosschainforwarders/MetisCrossChainForwarderTest.t.sol
+++ /dev/null
@@ -1,79 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import 'forge-std/Test.sol';
-import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
-import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
-import {IL2CrossDomainMessenger} from 'governance-crosschain-bridges/contracts/dependencies/optimism/interfaces/IL2CrossDomainMessenger.sol';
-import {GovHelpers} from '../../src/GovHelpers.sol';
-import {ProtocolV3TestBase} from '../../src/ProtocolV3TestBase.sol';
-import {CrosschainForwarderMetis} from '../../src/crosschainforwarders/CrosschainForwarderMetis.sol';
-import {PayloadWithEmit} from '../mocks/PayloadWithEmit.sol';
-
-/**
- * This test covers syncing between mainnet and metis.
- */
-contract MetisCrossChainForwarderTest is ProtocolV3TestBase {
- event TestEvent();
- // the identifiers of the forks
- uint256 mainnetFork;
- uint256 metisFork;
-
- address public constant METIS_BRIDGE_EXECUTOR = AaveGovernanceV2.METIS_BRIDGE_EXECUTOR;
-
- IL2CrossDomainMessenger public OVM_L2_CROSS_DOMAIN_MESSENGER =
- IL2CrossDomainMessenger(0x4200000000000000000000000000000000000007);
-
- PayloadWithEmit public payloadWithEmit;
-
- CrosschainForwarderMetis public forwarder;
-
- function setUp() public {
- mainnetFork = vm.createSelectFork(vm.rpcUrl('mainnet'), 17093477);
- forwarder = new CrosschainForwarderMetis();
- metisFork = vm.createSelectFork(vm.rpcUrl('metis'), 5428548);
- payloadWithEmit = new PayloadWithEmit();
- }
-
- function testProposalE2E() public {
- // 1. create l1 proposal
- vm.selectFork(mainnetFork);
- vm.startPrank(MiscEthereum.ECOSYSTEM_RESERVE);
- GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](1);
- payloads[0] = GovHelpers.Payload({
- target: address(forwarder),
- value: 0,
- signature: 'execute(address)',
- callData: abi.encode(address(payloadWithEmit)),
- withDelegatecall: true
- });
-
- uint256 proposalId = GovHelpers.createProposal(payloads, 'ipfs');
- vm.stopPrank();
-
- // 2. execute proposal and record logs so we can extract the emitted StateSynced event
- vm.recordLogs();
- GovHelpers.passVoteAndExecute(vm, proposalId);
- Vm.Log[] memory entries = vm.getRecordedLogs();
- assertEq(
- keccak256('SentMessage(address,address,bytes,uint256,uint256,uint256)'),
- entries[3].topics[0]
- );
- assertEq(address(uint160(uint256(entries[3].topics[1]))), METIS_BRIDGE_EXECUTOR);
- (address sender, bytes memory message, uint256 nonce) = abi.decode(
- entries[3].data,
- (address, bytes, uint256)
- );
-
- // 3. mock the receive on l2 with the data emitted on StateSynced
- vm.selectFork(metisFork);
- vm.startPrank(0x192E1101855bD523Ba69a9794e0217f0Db633510); // AddressAliasHelper.applyL1ToL2Alias on L1_CROSS_DOMAIN_MESSENGER_ADDRESS
- OVM_L2_CROSS_DOMAIN_MESSENGER.relayMessage(METIS_BRIDGE_EXECUTOR, sender, message, nonce);
- vm.stopPrank();
-
- // 4. execute proposal on l2
- vm.expectEmit(true, true, true, true);
- emit TestEvent();
- GovHelpers.executeLatestActionSet(vm, METIS_BRIDGE_EXECUTOR);
- }
-}
diff --git a/tests/crosschainforwarders/OptimismCrossChainForwarderTest.t.sol b/tests/crosschainforwarders/OptimismCrossChainForwarderTest.t.sol
deleted file mode 100644
index 982a70c33..000000000
--- a/tests/crosschainforwarders/OptimismCrossChainForwarderTest.t.sol
+++ /dev/null
@@ -1,81 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import 'forge-std/Test.sol';
-import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
-import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol';
-import {AaveGovernanceV2, IExecutorWithTimelock} from 'aave-address-book/AaveGovernanceV2.sol';
-import {AddressAliasHelper} from 'governance-crosschain-bridges/contracts/dependencies/arbitrum/AddressAliasHelper.sol';
-import {IL2CrossDomainMessenger} from 'governance-crosschain-bridges/contracts/dependencies/optimism/interfaces/IL2CrossDomainMessenger.sol';
-import {GovHelpers} from '../../src/GovHelpers.sol';
-import {ProtocolV3TestBase, ReserveConfig, ReserveTokens, IERC20} from '../../src/ProtocolV3TestBase.sol';
-import {CrosschainForwarderOptimism} from '../../src/crosschainforwarders/CrosschainForwarderOptimism.sol';
-import {PayloadWithEmit} from '../mocks/PayloadWithEmit.sol';
-
-/**
- * This test covers syncing between mainnet and optimism.
- */
-contract OptimismCrossChainForwarderTest is ProtocolV3TestBase {
- event TestEvent();
- // the identifiers of the forks
- uint256 mainnetFork;
- uint256 optimismFork;
-
- address public constant OPTIMISM_BRIDGE_EXECUTOR = AaveGovernanceV2.OPTIMISM_BRIDGE_EXECUTOR;
-
- IL2CrossDomainMessenger public OVM_L2_CROSS_DOMAIN_MESSENGER =
- IL2CrossDomainMessenger(0x4200000000000000000000000000000000000007);
-
- PayloadWithEmit public payloadWithEmit;
-
- CrosschainForwarderOptimism public forwarder;
-
- function setUp() public {
- mainnetFork = vm.createSelectFork(vm.rpcUrl('mainnet'), 15783218);
- forwarder = new CrosschainForwarderOptimism();
- optimismFork = vm.createSelectFork(vm.rpcUrl('optimism'), 30264427);
- payloadWithEmit = new PayloadWithEmit();
- }
-
- function testProposalE2E() public {
- // 1. create l1 proposal
- vm.selectFork(mainnetFork);
- vm.startPrank(MiscEthereum.ECOSYSTEM_RESERVE);
- GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](1);
- payloads[0] = GovHelpers.Payload({
- value: 0,
- withDelegatecall: true,
- target: address(forwarder),
- signature: 'execute(address)',
- callData: abi.encode(address(payloadWithEmit))
- });
-
- uint256 proposalId = GovHelpers.createProposal(
- payloads,
- 0x7ecafb3b0b7e418336cccb0c82b3e25944011bf11e41f8dc541841da073fe4f1
- );
- vm.stopPrank();
-
- // 2. execute proposal and record logs so we can extract the emitted StateSynced event
- vm.recordLogs();
- GovHelpers.passVoteAndExecute(vm, proposalId);
- Vm.Log[] memory entries = vm.getRecordedLogs();
- assertEq(keccak256('SentMessage(address,address,bytes,uint256,uint256)'), entries[3].topics[0]);
- assertEq(address(uint160(uint256(entries[3].topics[1]))), OPTIMISM_BRIDGE_EXECUTOR);
- (address sender, bytes memory message, uint256 nonce) = abi.decode(
- entries[3].data,
- (address, bytes, uint256)
- );
-
- // 3. mock the receive on l2 with the data emitted on StateSynced
- vm.selectFork(optimismFork);
- vm.startPrank(0x36BDE71C97B33Cc4729cf772aE268934f7AB70B2); // AddressAliasHelper.applyL1ToL2Alias on L1_CROSS_DOMAIN_MESSENGER_ADDRESS
- OVM_L2_CROSS_DOMAIN_MESSENGER.relayMessage(OPTIMISM_BRIDGE_EXECUTOR, sender, message, nonce);
- vm.stopPrank();
-
- // 4. execute proposal on l2
- vm.expectEmit(true, true, true, true);
- emit TestEvent();
- GovHelpers.executeLatestActionSet(vm, OPTIMISM_BRIDGE_EXECUTOR);
- }
-}
diff --git a/tests/crosschainforwarders/PolygonCrossChainForwarderTest.t.sol b/tests/crosschainforwarders/PolygonCrossChainForwarderTest.t.sol
deleted file mode 100644
index c0059134f..000000000
--- a/tests/crosschainforwarders/PolygonCrossChainForwarderTest.t.sol
+++ /dev/null
@@ -1,86 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import 'forge-std/Test.sol';
-import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
-import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol';
-import {AaveGovernanceV2, IExecutorWithTimelock} from 'aave-address-book/AaveGovernanceV2.sol';
-import {IStateReceiver} from 'governance-crosschain-bridges/contracts/dependencies/polygon/fxportal/FxChild.sol';
-import {GovHelpers} from '../../src/GovHelpers.sol';
-import {ProtocolV3TestBase, ReserveConfig, ReserveTokens, IERC20} from '../../src/ProtocolV3TestBase.sol';
-import {CrosschainForwarderPolygon} from '../../src/crosschainforwarders/CrosschainForwarderPolygon.sol';
-import {PayloadWithEmit} from '../mocks/PayloadWithEmit.sol';
-
-/**
- * This test covers syncing between mainnet and polygon.
- */
-contract PolygonCrossChainForwarderTest is ProtocolV3TestBase {
- event TestEvent();
- // the identifiers of the forks
- uint256 mainnetFork;
- uint256 polygonFork;
-
- address public constant BRIDGE_ADMIN = 0x0000000000000000000000000000000000001001;
-
- address public constant FX_CHILD_ADDRESS = 0x8397259c983751DAf40400790063935a11afa28a;
-
- address public constant POLYGON_BRIDGE_EXECUTOR = AaveGovernanceV2.POLYGON_BRIDGE_EXECUTOR;
-
- PayloadWithEmit public payloadWithEmit;
-
- CrosschainForwarderPolygon public forwarder;
-
- function setUp() public {
- mainnetFork = vm.createSelectFork(vm.rpcUrl('mainnet'), 15275388);
- forwarder = new CrosschainForwarderPolygon();
- polygonFork = vm.createSelectFork(vm.rpcUrl('polygon'), 31507646);
- payloadWithEmit = new PayloadWithEmit();
- }
-
- // utility to transform memory to calldata so array range access is available
- function _cutBytes(bytes calldata input) public pure returns (bytes calldata) {
- return input[64:];
- }
-
- function testProposalE2E() public {
- // 1. create l1 proposal
- vm.selectFork(mainnetFork);
- vm.startPrank(MiscEthereum.ECOSYSTEM_RESERVE);
- GovHelpers.Payload[] memory payloads = new GovHelpers.Payload[](1);
- payloads[0] = GovHelpers.Payload({
- value: 0,
- withDelegatecall: true,
- target: address(forwarder),
- signature: 'execute(address)',
- callData: abi.encode(address(payloadWithEmit))
- });
-
- uint256 proposalId = GovHelpers.createProposal(
- payloads,
- 0xf6e50d5a3f824f5ab4ffa15fb79f4fa1871b8bf7af9e9b32c1aaaa9ea633006d
- );
- vm.stopPrank();
-
- // 2. execute proposal and record logs so we can extract the emitted StateSynced event
- vm.recordLogs();
- GovHelpers.passVoteAndExecute(vm, proposalId);
-
- Vm.Log[] memory entries = vm.getRecordedLogs();
- assertEq(keccak256('StateSynced(uint256,address,bytes)'), entries[2].topics[0]);
- assertEq(address(uint160(uint256(entries[2].topics[2]))), FX_CHILD_ADDRESS);
-
- // 3. mock the receive on l2 with the data emitted on StateSynced
- vm.selectFork(polygonFork);
- vm.startPrank(BRIDGE_ADMIN);
- IStateReceiver(FX_CHILD_ADDRESS).onStateReceive(
- uint256(entries[2].topics[1]),
- this._cutBytes(entries[2].data)
- );
- vm.stopPrank();
-
- // 4. Forward time & execute proposal
- vm.expectEmit(true, true, true, true);
- emit TestEvent();
- GovHelpers.executeLatestActionSet(vm, POLYGON_BRIDGE_EXECUTOR);
- }
-}
diff --git a/tests/v2-config-engine/AaveV2ConfigEngineTest.t.sol b/tests/v2-config-engine/AaveV2ConfigEngineTest.t.sol
index 7d87b2b58..97b7e700d 100644
--- a/tests/v2-config-engine/AaveV2ConfigEngineTest.t.sol
+++ b/tests/v2-config-engine/AaveV2ConfigEngineTest.t.sol
@@ -7,16 +7,14 @@ import {DeployV2EngineEthLib} from '../../scripts/AaveV2ConfigEngine.s.sol';
import {DeployV2RatesFactoryEthLib} from '../../scripts/V2RateStrategyFactory.s.sol';
import {AaveV2Ethereum} from 'aave-address-book/AaveAddressBook.sol';
import {AaveV2EthereumAssets} from 'aave-address-book/AaveV2Ethereum.sol';
-import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
import {IV2RateStrategyFactory} from '../../src/v2-config-engine/IV2RateStrategyFactory.sol';
-import {GovHelpers} from '../../src/GovHelpers.sol';
import '../../src/ProtocolV2TestBase.sol';
contract AaveV2ConfigEngineTest is ProtocolV2TestBase {
using stdStorage for StdStorage;
function testV2RateStrategiesUpdates() public {
- vm.createSelectFork(vm.rpcUrl('mainnet'), 16727659);
+ vm.createSelectFork(vm.rpcUrl('mainnet'), 19036639);
(address ratesFactory, ) = DeployV2RatesFactoryEthLib.deploy();
IAaveV2ConfigEngine engine = IAaveV2ConfigEngine(DeployV2EngineEthLib.deploy(ratesFactory));
@@ -32,7 +30,7 @@ contract AaveV2ConfigEngineTest is ProtocolV2TestBase {
createConfigurationSnapshot('preTestV2RatesUpdates', AaveV2Ethereum.POOL);
- GovHelpers.executePayload(vm, address(payload), AaveGovernanceV2.SHORT_EXECUTOR);
+ executePayload(vm, address(payload));
createConfigurationSnapshot('postTestV2RatesUpdates', AaveV2Ethereum.POOL);
diff --git a/tests/v3-config-engine/AaveV3ConfigEngineGauntletProposal.t.sol b/tests/v3-config-engine/AaveV3ConfigEngineGauntletProposal.t.sol
deleted file mode 100644
index d81ac6560..000000000
--- a/tests/v3-config-engine/AaveV3ConfigEngineGauntletProposal.t.sol
+++ /dev/null
@@ -1,103 +0,0 @@
-// SPDX-License-Identifier: MIT
-pragma solidity ^0.8.0;
-
-import 'forge-std/Test.sol';
-
-import {AaveV3Polygon, AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol';
-import {AaveV3Avalanche, AaveV3AvalancheAssets} from 'aave-address-book/AaveV3Avalanche.sol';
-import {AaveV3Optimism, AaveV3OptimismAssets} from 'aave-address-book/AaveV3Optimism.sol';
-import {AaveV3Arbitrum, AaveV3ArbitrumAssets} from 'aave-address-book/AaveV3Arbitrum.sol';
-import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
-import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol';
-import {IAaveV3ConfigEngine} from '../../src/v3-config-engine/IAaveV3ConfigEngine.sol';
-import {AaveV3PolygonRatesUpdates070322} from '../mocks/gauntlet-updates/AaveV3PolygonRatesUpdates070322.sol';
-import {AaveV3AvalancheRatesUpdates070322} from '../mocks/gauntlet-updates/AaveV3AvalancheRatesUpdates070322.sol';
-import {AaveV3OptimismRatesUpdates070322} from '../mocks/gauntlet-updates/AaveV3OptimismRatesUpdates070322.sol';
-import {AaveV3ArbitrumRatesUpdates070322} from '../mocks/gauntlet-updates/AaveV3ArbitrumRatesUpdates070322.sol';
-import {DeployEnginePolLib, DeployEngineEthLib, DeployEngineAvaLib, DeployEngineOptLib, DeployEngineArbLib} from '../../scripts/AaveV3ConfigEngine.s.sol';
-import {GovHelpers} from '../../src/GovHelpers.sol';
-import '../../src/ProtocolV3TestBase.sol';
-
-contract AaveV3PolygonConfigEngineRatesTest is ProtocolV3TestBase {
- using stdStorage for StdStorage;
-
- function setUp() public {
- vm.createSelectFork(vm.rpcUrl('polygon'), 40074125);
- }
-
- function testEngine() public {
- IAaveV3ConfigEngine engine = IAaveV3ConfigEngine(0xE202F2fc4b6A37Ba53cfD15bE42a762A645FCA07);
- AaveV3PolygonRatesUpdates070322 payload = new AaveV3PolygonRatesUpdates070322(engine);
-
- createConfigurationSnapshot('preTestEnginePolV3Gauntlet', AaveV3Polygon.POOL);
-
- GovHelpers.executePayload(vm, address(payload), AaveGovernanceV2.POLYGON_BRIDGE_EXECUTOR);
-
- createConfigurationSnapshot('postTestEnginePolV3Gauntlet', AaveV3Polygon.POOL);
-
- diffReports('preTestEnginePolV3Gauntlet', 'postTestEnginePolV3Gauntlet');
- }
-}
-
-contract AaveV3AvalancheConfigEngineRatesTest is ProtocolV3TestBase {
- using stdStorage for StdStorage;
-
- function setUp() public {
- vm.createSelectFork(vm.rpcUrl('avalanche'), 27134232);
- }
-
- function testEngine() public {
- IAaveV3ConfigEngine engine = IAaveV3ConfigEngine(0x49581e5575F49263f556b91daf8fb41D7854D94B);
- AaveV3AvalancheRatesUpdates070322 payload = new AaveV3AvalancheRatesUpdates070322(engine);
-
- createConfigurationSnapshot('preTestEngineAvaV3Gauntlet', AaveV3Avalanche.POOL);
-
- GovHelpers.executePayload(vm, address(payload), 0xa35b76E4935449E33C56aB24b23fcd3246f13470); // Aave Avalanche's Guardian
-
- createConfigurationSnapshot('postTestEngineAvaV3Gauntlet', AaveV3Avalanche.POOL);
-
- diffReports('preTestEngineAvaV3Gauntlet', 'postTestEngineAvaV3Gauntlet');
- }
-}
-
-contract AaveV3OptimismConfigEngineRatesTest is ProtocolV3TestBase {
- using stdStorage for StdStorage;
-
- function setUp() public {
- vm.createSelectFork(vm.rpcUrl('optimism'), 79074228);
- }
-
- function testEngine() public {
- IAaveV3ConfigEngine engine = IAaveV3ConfigEngine(0x7A9A9c14B35E58ffa1cC84aB421acE0FdcD289E3);
- AaveV3OptimismRatesUpdates070322 payload = new AaveV3OptimismRatesUpdates070322(engine);
-
- createConfigurationSnapshot('preTestEngineOptV3Gauntlet', AaveV3Optimism.POOL);
-
- GovHelpers.executePayload(vm, address(payload), AaveGovernanceV2.OPTIMISM_BRIDGE_EXECUTOR);
-
- createConfigurationSnapshot('postTestEngineOptV3Gauntlet', AaveV3Optimism.POOL);
-
- diffReports('preTestEngineOptV3Gauntlet', 'postTestEngineOptV3Gauntlet');
- }
-}
-
-contract AaveV3ArbitrumConfigEngineRatesTest is ProtocolV3TestBase {
- using stdStorage for StdStorage;
-
- function setUp() public {
- vm.createSelectFork(vm.rpcUrl('arbitrum'), 67634819);
- }
-
- function testEngine() public {
- IAaveV3ConfigEngine engine = IAaveV3ConfigEngine(0x0EfdfC1A940DE4E7E6acC9Bb801481f81B17fd20);
- AaveV3ArbitrumRatesUpdates070322 payload = new AaveV3ArbitrumRatesUpdates070322(engine);
-
- createConfigurationSnapshot('preTestEngineArbV3Gauntlet', AaveV3Arbitrum.POOL);
-
- GovHelpers.executePayload(vm, address(payload), AaveGovernanceV2.ARBITRUM_BRIDGE_EXECUTOR);
-
- createConfigurationSnapshot('postTestEngineArbV3Gauntlet', AaveV3Arbitrum.POOL);
-
- diffReports('preTestEngineArbV3Gauntlet', 'postTestEngineArbV3Gauntlet');
- }
-}