From 496d6ee732ea79545af87a791dca9f05f37f35ff Mon Sep 17 00:00:00 2001 From: marczeller Date: Fri, 22 Mar 2024 17:35:41 +0000 Subject: [PATCH 1/9] Init --- ...c8f7175811834d25e2182574a0dfeb42e8738c.svg | 3 + ...46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg | 3 + ...c2865085d427ed04e5a2f5d75e7885ac1517e2.svg | 3 + ...0b3346a2da5456c1e5eeb7876b093ce7188e35.svg | 3 + ...2508ac28f40ef80345b6a915655e49cab178f5.svg | 3 + ...c880792461d9bda0eb72ab837e4fddcecc96bc.svg | 3 + ...d38ed78826631a486f7b9b3a8fd114543fa710.svg | 3 + ...34895d95baff287d2b0c64761d38faae833777.svg | 3 + ...549d646391f9a4cf4c3ec310ca8af022895f36.svg | 3 + ...c73faed5aa696962f84de663a53270b225721c.svg | 3 + ...d599c03feefc2020867d5fbb3089dcd86edb84.svg | 3 + ...73bf64778f4a833728753fe06f9a2fb49bb83a.svg | 3 + ...09c191e41e4e07dfee46916075efd0ef72e575.svg | 3 + ...123f839c4a9ef1d4a2dab92414c51edb0dd440.svg | 3 + ...3279c8e6dd036533d94165c42801655131ad2e.svg | 3 + ...3491e29dfd224a05277bc1dd2ade1ec791ab18.svg | 3 + ...98d269e8a08139605b2434246d84d4bb597ec1.svg | 3 + ...0507b18b304c390bc2dc9b1602d2b79381b52b.svg | 3 + ...413eb19d11867ae3d39aafa81ed63fb6ea66f6.svg | 3 + ...22c8999b36025f914c1bb8a02deb5adfd09c70.svg | 3 + ...485682d175032cac8fb5ae7a1c774f7aa5759c.svg | 3 + ...3f0be01f7b244858ae3b53b46574f4a94ae9e0.svg | 3 + ...37d1a05e27d501bad08ceebf887c7a78cfecbf.svg | 3 + ...ef299385ac1124f7cfc5453c8e559b4d9229d6.svg | 3 + ...506162e1d3af58a3c1e97ae0dacf0152daf986.svg | 3 + ...829ff1636279f61942026054feca6f0539bf99.svg | 3 + ...302f89365f5c7a915d77a2d396103d9d630a4e.svg | 3 + ...62ffb8e1738773ae155739d430077a79451a55.svg | 3 + ...320f3f9b903ba15a3afef70a06f01029f0ac26.svg | 3 + ...3c2469546fb86c1fca744d14fda357059d800c.svg | 3 + ...b1571e65a2211f7a0d9bc13633a228b24e8311.svg | 3 + ...98f2ae6cd66d545a480539679ef1147397b830.svg | 3 + ...4cf56d4a2589f2dfcd6e849a2c7551a972a3ad.svg | 3 + ...73103fe1d4acaf6476fbbdd55f6dd32d91e9cb.svg | 3 + ...0cf5b75abfc0d4bae00c4577b8c380da1c9c3f.svg | 3 + ...5fc1c821399427e01bc830bfb9f62b080e1cf4.svg | 3 + ...ad097e8f4a004470304f7d1ae07dc3c242b121.svg | 3 + ...0c240a1aee12ae0d74072cf2946402382bc43f.svg | 3 + ...2d58267609e07263b6342ae7c2e05fdc7e84b7.svg | 3 + ...4f5c80815f2711734095b0eadafd2e3b09ef4b.svg | 3 + ...650e2faae2d5566154a1aff322be3b91a5cd57.svg | 3 + ...62feff755824776af6c5dc36827e8ad2a9c67d.svg | 3 + ...f95a4b4513a29b7ce19c748925854dd8f0c741.svg | 3 + ...0786b31c3f97e0469558c2f0243123d139fd29.svg | 3 + ...86520732db368b1c64316a02dd2c54289f98a1.svg | 3 + ...e6cda63ae61ef578b581e2e081791148973f1c.svg | 3 + ...nche_StablecoinIRUpdates_20240322_after.md | 116 +++ ...reum_StablecoinIRUpdates_20240322_after.md | 236 +++++ ...ygon_StablecoinIRUpdates_20240322_after.md | 116 +++ ...trum_StablecoinIRUpdates_20240322_after.md | 286 ++++++ ...nche_StablecoinIRUpdates_20240322_after.md | 189 ++++ ...3BNB_StablecoinIRUpdates_20240322_after.md | 131 +++ ...Base_StablecoinIRUpdates_20240322_after.md | 92 ++ ...reum_StablecoinIRUpdates_20240322_after.md | 247 +++++ ...osis_StablecoinIRUpdates_20240322_after.md | 121 +++ ...etis_StablecoinIRUpdates_20240322_after.md | 5 + ...mism_StablecoinIRUpdates_20240322_after.md | 257 +++++ ...ygon_StablecoinIRUpdates_20240322_after.md | 257 +++++ ...Avalanche_StablecoinIRUpdates_20240322.sol | 60 ++ ...alanche_StablecoinIRUpdates_20240322.t.sol | 32 + ...2Ethereum_StablecoinIRUpdates_20240322.sol | 115 +++ ...thereum_StablecoinIRUpdates_20240322.t.sol | 32 + ...V2Polygon_StablecoinIRUpdates_20240322.sol | 60 ++ ...Polygon_StablecoinIRUpdates_20240322.t.sol | 32 + ...3Arbitrum_StablecoinIRUpdates_20240322.sol | 139 +++ ...rbitrum_StablecoinIRUpdates_20240322.t.sol | 32 + ...Avalanche_StablecoinIRUpdates_20240322.sol | 97 ++ ...alanche_StablecoinIRUpdates_20240322.t.sol | 32 + ...AaveV3BNB_StablecoinIRUpdates_20240322.sol | 69 ++ ...veV3BNB_StablecoinIRUpdates_20240322.t.sol | 28 + ...aveV3Base_StablecoinIRUpdates_20240322.sol | 55 ++ ...eV3Base_StablecoinIRUpdates_20240322.t.sol | 28 + ...3Ethereum_StablecoinIRUpdates_20240322.sol | 125 +++ ...thereum_StablecoinIRUpdates_20240322.t.sol | 32 + ...eV3Gnosis_StablecoinIRUpdates_20240322.sol | 69 ++ ...3Gnosis_StablecoinIRUpdates_20240322.t.sol | 28 + ...veV3Metis_StablecoinIRUpdates_20240322.sol | 24 + ...V3Metis_StablecoinIRUpdates_20240322.t.sol | 28 + ...3Optimism_StablecoinIRUpdates_20240322.sol | 125 +++ ...ptimism_StablecoinIRUpdates_20240322.t.sol | 32 + ...V3Polygon_StablecoinIRUpdates_20240322.sol | 125 +++ ...Polygon_StablecoinIRUpdates_20240322.t.sol | 32 + ...eV3Scroll_StablecoinIRUpdates_20240322.sol | 41 + ...3Scroll_StablecoinIRUpdates_20240322.t.sol | 28 + .../StablecoinIRUpdates.md | 34 + .../StablecoinIRUpdates_20240322.s.sol | 349 +++++++ .../config.ts | 890 ++++++++++++++++++ 87 files changed, 4964 insertions(+) create mode 100644 .assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg create mode 100644 .assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg create mode 100644 .assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg create mode 100644 .assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg create mode 100644 .assets/162508ac28f40ef80345b6a915655e49cab178f5.svg create mode 100644 .assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg create mode 100644 .assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg create mode 100644 .assets/2b34895d95baff287d2b0c64761d38faae833777.svg create mode 100644 .assets/35549d646391f9a4cf4c3ec310ca8af022895f36.svg create mode 100644 .assets/36c73faed5aa696962f84de663a53270b225721c.svg create mode 100644 .assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg create mode 100644 .assets/4973bf64778f4a833728753fe06f9a2fb49bb83a.svg create mode 100644 .assets/5509c191e41e4e07dfee46916075efd0ef72e575.svg create mode 100644 .assets/59123f839c4a9ef1d4a2dab92414c51edb0dd440.svg create mode 100644 .assets/5a3279c8e6dd036533d94165c42801655131ad2e.svg create mode 100644 .assets/653491e29dfd224a05277bc1dd2ade1ec791ab18.svg create mode 100644 .assets/7298d269e8a08139605b2434246d84d4bb597ec1.svg create mode 100644 .assets/730507b18b304c390bc2dc9b1602d2b79381b52b.svg create mode 100644 .assets/7f413eb19d11867ae3d39aafa81ed63fb6ea66f6.svg create mode 100644 .assets/8222c8999b36025f914c1bb8a02deb5adfd09c70.svg create mode 100644 .assets/93485682d175032cac8fb5ae7a1c774f7aa5759c.svg create mode 100644 .assets/973f0be01f7b244858ae3b53b46574f4a94ae9e0.svg create mode 100644 .assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg create mode 100644 .assets/a3ef299385ac1124f7cfc5453c8e559b4d9229d6.svg create mode 100644 .assets/aa506162e1d3af58a3c1e97ae0dacf0152daf986.svg create mode 100644 .assets/b0829ff1636279f61942026054feca6f0539bf99.svg create mode 100644 .assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg create mode 100644 .assets/b262ffb8e1738773ae155739d430077a79451a55.svg create mode 100644 .assets/b3320f3f9b903ba15a3afef70a06f01029f0ac26.svg create mode 100644 .assets/bd3c2469546fb86c1fca744d14fda357059d800c.svg create mode 100644 .assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg create mode 100644 .assets/c798f2ae6cd66d545a480539679ef1147397b830.svg create mode 100644 .assets/ca4cf56d4a2589f2dfcd6e849a2c7551a972a3ad.svg create mode 100644 .assets/cf73103fe1d4acaf6476fbbdd55f6dd32d91e9cb.svg create mode 100644 .assets/d00cf5b75abfc0d4bae00c4577b8c380da1c9c3f.svg create mode 100644 .assets/d65fc1c821399427e01bc830bfb9f62b080e1cf4.svg create mode 100644 .assets/d6ad097e8f4a004470304f7d1ae07dc3c242b121.svg create mode 100644 .assets/e60c240a1aee12ae0d74072cf2946402382bc43f.svg create mode 100644 .assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg create mode 100644 .assets/e94f5c80815f2711734095b0eadafd2e3b09ef4b.svg create mode 100644 .assets/ee650e2faae2d5566154a1aff322be3b91a5cd57.svg create mode 100644 .assets/f162feff755824776af6c5dc36827e8ad2a9c67d.svg create mode 100644 .assets/f2f95a4b4513a29b7ce19c748925854dd8f0c741.svg create mode 100644 .assets/fb0786b31c3f97e0469558c2f0243123d139fd29.svg create mode 100644 .assets/fe86520732db368b1c64316a02dd2c54289f98a1.svg create mode 100644 .assets/fee6cda63ae61ef578b581e2e081791148973f1c.svg create mode 100644 diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Ethereum_StablecoinIRUpdates_20240322_before_AaveV3Ethereum_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Metis_StablecoinIRUpdates_20240322_before_AaveV3Metis_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md create mode 100644 diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.t.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md create mode 100644 src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol create mode 100644 src/20240322_Multi_StablecoinIRUpdates/config.ts diff --git a/.assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg b/.assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg b/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg b/.assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg b/.assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/162508ac28f40ef80345b6a915655e49cab178f5.svg b/.assets/162508ac28f40ef80345b6a915655e49cab178f5.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/162508ac28f40ef80345b6a915655e49cab178f5.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg b/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg b/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg b/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/35549d646391f9a4cf4c3ec310ca8af022895f36.svg b/.assets/35549d646391f9a4cf4c3ec310ca8af022895f36.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/35549d646391f9a4cf4c3ec310ca8af022895f36.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/36c73faed5aa696962f84de663a53270b225721c.svg b/.assets/36c73faed5aa696962f84de663a53270b225721c.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/36c73faed5aa696962f84de663a53270b225721c.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg b/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/4973bf64778f4a833728753fe06f9a2fb49bb83a.svg b/.assets/4973bf64778f4a833728753fe06f9a2fb49bb83a.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/4973bf64778f4a833728753fe06f9a2fb49bb83a.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/5509c191e41e4e07dfee46916075efd0ef72e575.svg b/.assets/5509c191e41e4e07dfee46916075efd0ef72e575.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/5509c191e41e4e07dfee46916075efd0ef72e575.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/59123f839c4a9ef1d4a2dab92414c51edb0dd440.svg b/.assets/59123f839c4a9ef1d4a2dab92414c51edb0dd440.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/59123f839c4a9ef1d4a2dab92414c51edb0dd440.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/5a3279c8e6dd036533d94165c42801655131ad2e.svg b/.assets/5a3279c8e6dd036533d94165c42801655131ad2e.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/5a3279c8e6dd036533d94165c42801655131ad2e.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/653491e29dfd224a05277bc1dd2ade1ec791ab18.svg b/.assets/653491e29dfd224a05277bc1dd2ade1ec791ab18.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/653491e29dfd224a05277bc1dd2ade1ec791ab18.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/7298d269e8a08139605b2434246d84d4bb597ec1.svg b/.assets/7298d269e8a08139605b2434246d84d4bb597ec1.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/7298d269e8a08139605b2434246d84d4bb597ec1.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/730507b18b304c390bc2dc9b1602d2b79381b52b.svg b/.assets/730507b18b304c390bc2dc9b1602d2b79381b52b.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/730507b18b304c390bc2dc9b1602d2b79381b52b.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/7f413eb19d11867ae3d39aafa81ed63fb6ea66f6.svg b/.assets/7f413eb19d11867ae3d39aafa81ed63fb6ea66f6.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/7f413eb19d11867ae3d39aafa81ed63fb6ea66f6.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/8222c8999b36025f914c1bb8a02deb5adfd09c70.svg b/.assets/8222c8999b36025f914c1bb8a02deb5adfd09c70.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/8222c8999b36025f914c1bb8a02deb5adfd09c70.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/93485682d175032cac8fb5ae7a1c774f7aa5759c.svg b/.assets/93485682d175032cac8fb5ae7a1c774f7aa5759c.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/93485682d175032cac8fb5ae7a1c774f7aa5759c.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/973f0be01f7b244858ae3b53b46574f4a94ae9e0.svg b/.assets/973f0be01f7b244858ae3b53b46574f4a94ae9e0.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/973f0be01f7b244858ae3b53b46574f4a94ae9e0.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg b/.assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/a3ef299385ac1124f7cfc5453c8e559b4d9229d6.svg b/.assets/a3ef299385ac1124f7cfc5453c8e559b4d9229d6.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/a3ef299385ac1124f7cfc5453c8e559b4d9229d6.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/aa506162e1d3af58a3c1e97ae0dacf0152daf986.svg b/.assets/aa506162e1d3af58a3c1e97ae0dacf0152daf986.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/aa506162e1d3af58a3c1e97ae0dacf0152daf986.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/b0829ff1636279f61942026054feca6f0539bf99.svg b/.assets/b0829ff1636279f61942026054feca6f0539bf99.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/b0829ff1636279f61942026054feca6f0539bf99.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg b/.assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/b262ffb8e1738773ae155739d430077a79451a55.svg b/.assets/b262ffb8e1738773ae155739d430077a79451a55.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/b262ffb8e1738773ae155739d430077a79451a55.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/b3320f3f9b903ba15a3afef70a06f01029f0ac26.svg b/.assets/b3320f3f9b903ba15a3afef70a06f01029f0ac26.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/b3320f3f9b903ba15a3afef70a06f01029f0ac26.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/bd3c2469546fb86c1fca744d14fda357059d800c.svg b/.assets/bd3c2469546fb86c1fca744d14fda357059d800c.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/bd3c2469546fb86c1fca744d14fda357059d800c.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg b/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/c798f2ae6cd66d545a480539679ef1147397b830.svg b/.assets/c798f2ae6cd66d545a480539679ef1147397b830.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/c798f2ae6cd66d545a480539679ef1147397b830.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/ca4cf56d4a2589f2dfcd6e849a2c7551a972a3ad.svg b/.assets/ca4cf56d4a2589f2dfcd6e849a2c7551a972a3ad.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/ca4cf56d4a2589f2dfcd6e849a2c7551a972a3ad.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/cf73103fe1d4acaf6476fbbdd55f6dd32d91e9cb.svg b/.assets/cf73103fe1d4acaf6476fbbdd55f6dd32d91e9cb.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/cf73103fe1d4acaf6476fbbdd55f6dd32d91e9cb.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/d00cf5b75abfc0d4bae00c4577b8c380da1c9c3f.svg b/.assets/d00cf5b75abfc0d4bae00c4577b8c380da1c9c3f.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/d00cf5b75abfc0d4bae00c4577b8c380da1c9c3f.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/d65fc1c821399427e01bc830bfb9f62b080e1cf4.svg b/.assets/d65fc1c821399427e01bc830bfb9f62b080e1cf4.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/d65fc1c821399427e01bc830bfb9f62b080e1cf4.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/d6ad097e8f4a004470304f7d1ae07dc3c242b121.svg b/.assets/d6ad097e8f4a004470304f7d1ae07dc3c242b121.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/d6ad097e8f4a004470304f7d1ae07dc3c242b121.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/e60c240a1aee12ae0d74072cf2946402382bc43f.svg b/.assets/e60c240a1aee12ae0d74072cf2946402382bc43f.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/e60c240a1aee12ae0d74072cf2946402382bc43f.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg b/.assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/e94f5c80815f2711734095b0eadafd2e3b09ef4b.svg b/.assets/e94f5c80815f2711734095b0eadafd2e3b09ef4b.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/e94f5c80815f2711734095b0eadafd2e3b09ef4b.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/ee650e2faae2d5566154a1aff322be3b91a5cd57.svg b/.assets/ee650e2faae2d5566154a1aff322be3b91a5cd57.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/ee650e2faae2d5566154a1aff322be3b91a5cd57.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/f162feff755824776af6c5dc36827e8ad2a9c67d.svg b/.assets/f162feff755824776af6c5dc36827e8ad2a9c67d.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/f162feff755824776af6c5dc36827e8ad2a9c67d.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/f2f95a4b4513a29b7ce19c748925854dd8f0c741.svg b/.assets/f2f95a4b4513a29b7ce19c748925854dd8f0c741.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/f2f95a4b4513a29b7ce19c748925854dd8f0c741.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/fb0786b31c3f97e0469558c2f0243123d139fd29.svg b/.assets/fb0786b31c3f97e0469558c2f0243123d139fd29.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/fb0786b31c3f97e0469558c2f0243123d139fd29.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/fe86520732db368b1c64316a02dd2c54289f98a1.svg b/.assets/fe86520732db368b1c64316a02dd2c54289f98a1.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/fe86520732db368b1c64316a02dd2c54289f98a1.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/.assets/fee6cda63ae61ef578b581e2e081791148973f1c.svg b/.assets/fee6cda63ae61ef578b581e2e081791148973f1c.svg new file mode 100644 index 000000000..dda81d20f --- /dev/null +++ b/.assets/fee6cda63ae61ef578b581e2e081791148973f1c.svg @@ -0,0 +1,3 @@ +The deployment could not be found on Vercel. + +DEPLOYMENT_NOT_FOUND diff --git a/diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..0df1b6acb --- /dev/null +++ b/diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,116 @@ +## Reserve changes + +### Reserve altered + +#### USDC.e ([0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664](https://snowscan.xyz/address/0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | [0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4](https://snowscan.xyz/address/0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4) | +| optimalUsageRatio | 80 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 20 % | 8 % | +| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg) | + +#### USDT.e ([0xc7198437980c041c805A1EDcbA50c1Ce5db95118](https://snowscan.xyz/address/0xc7198437980c041c805A1EDcbA50c1Ce5db95118)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | [0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4](https://snowscan.xyz/address/0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4) | +| optimalUsageRatio | 80 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 20 % | 8 % | +| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg) | + +#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowscan.xyz/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | [0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4](https://snowscan.xyz/address/0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4) | +| optimalUsageRatio | 80 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 20 % | 8 % | +| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664": { + "interestRateStrategy": { + "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", + "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" + } + }, + "0xc7198437980c041c805A1EDcbA50c1Ce5db95118": { + "interestRateStrategy": { + "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", + "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" + } + }, + "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70": { + "interestRateStrategy": { + "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", + "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" + } + } + }, + "strategies": { + "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664": { + "address": { + "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", + "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" + }, + "maxExcessUsageRatio": { + "from": "200000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "800000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xc7198437980c041c805A1EDcbA50c1Ce5db95118": { + "address": { + "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", + "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" + }, + "maxExcessUsageRatio": { + "from": "200000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "800000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70": { + "address": { + "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", + "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" + }, + "maxExcessUsageRatio": { + "from": "200000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "800000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..e3156d54a --- /dev/null +++ b/diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,236 @@ +## Reserve changes + +### Reserve altered + +#### GUSD ([0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd](https://etherscan.io/address/0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x999F449fEAfaAd78CE5702A9ebc460633478D4a4](https://etherscan.io/address/0x999F449fEAfaAd78CE5702A9ebc460633478D4a4) | [0xfA4dEC495522ea25f617113fA0633a5BeCD4918E](https://etherscan.io/address/0xfA4dEC495522ea25f617113fA0633a5BeCD4918E) | +| variableRateSlope1 | 6 % | 12 % | +| interestRate | ![before](/.assets/a87a80755f2166782391624ad468a1446bf0b13d.svg) | ![after](/.assets/c798f2ae6cd66d545a480539679ef1147397b830.svg) | + +#### sUSD ([0x57Ab1ec28D129707052df4dF418D58a2D46d5f51](https://etherscan.io/address/0x57Ab1ec28D129707052df4dF418D58a2D46d5f51)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE](https://etherscan.io/address/0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE) | [0xBbE678b3E03E885B477f97af40671c1182582aD4](https://etherscan.io/address/0xBbE678b3E03E885B477f97af40671c1182582aD4) | +| variableRateSlope1 | 6 % | 12 % | +| interestRate | ![before](/.assets/ce67cec9fdb677d2a0aadbe4d1ab201dfa660e57.svg) | ![after](/.assets/d6ad097e8f4a004470304f7d1ae07dc3c242b121.svg) | + +#### LUSD ([0x5f98805A4E8be255a32880FDeC7F6728C6568bA0](https://etherscan.io/address/0x5f98805A4E8be255a32880FDeC7F6728C6568bA0)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xab7f8ca781C736EB624A9E321cd043F8E6292C96](https://etherscan.io/address/0xab7f8ca781C736EB624A9E321cd043F8E6292C96) | [0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b](https://etherscan.io/address/0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b) | +| variableRateSlope1 | 6 % | 12 % | +| interestRate | ![before](/.assets/162b720585663968afe7fc152291b9068b0e7e2a.svg) | ![after](/.assets/fee6cda63ae61ef578b581e2e081791148973f1c.svg) | + +#### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xab7f8ca781C736EB624A9E321cd043F8E6292C96](https://etherscan.io/address/0xab7f8ca781C736EB624A9E321cd043F8E6292C96) | [0x13828736b5e2CcF7811A2012ff9eB3e685a815b2](https://etherscan.io/address/0x13828736b5e2CcF7811A2012ff9eB3e685a815b2) | +| optimalUsageRatio | 80 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 20 % | 8 % | +| interestRate | ![before](/.assets/162b720585663968afe7fc152291b9068b0e7e2a.svg) | ![after](/.assets/5509c191e41e4e07dfee46916075efd0ef72e575.svg) | + +#### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE](https://etherscan.io/address/0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE) | [0xBbE678b3E03E885B477f97af40671c1182582aD4](https://etherscan.io/address/0xBbE678b3E03E885B477f97af40671c1182582aD4) | +| variableRateSlope1 | 6 % | 12 % | +| interestRate | ![before](/.assets/ce67cec9fdb677d2a0aadbe4d1ab201dfa660e57.svg) | ![after](/.assets/d6ad097e8f4a004470304f7d1ae07dc3c242b121.svg) | + +#### USDP ([0x8E870D67F660D95d5be530380D0eC0bd388289E1](https://etherscan.io/address/0x8E870D67F660D95d5be530380D0eC0bd388289E1)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15](https://etherscan.io/address/0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15) | [0x6a39D2996326853Fed73a69F51EC50C941624500](https://etherscan.io/address/0x6a39D2996326853Fed73a69F51EC50C941624500) | +| variableRateSlope1 | 6 % | 12 % | +| interestRate | ![before](/.assets/f81f17d43b2be15fb98af31960a68c94692b6cb4.svg) | ![after](/.assets/d00cf5b75abfc0d4bae00c4577b8c380da1c9c3f.svg) | + +#### USDC ([0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xb72F23adE9b9980c2E731Ca504105fC860643619](https://etherscan.io/address/0xb72F23adE9b9980c2E731Ca504105fC860643619) | [0x6959f4a661FDF1f3405CaDd56d0Af73a4b082Cb2](https://etherscan.io/address/0x6959f4a661FDF1f3405CaDd56d0Af73a4b082Cb2) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/3f55f2c949040cc13cee0d8a8329ed5bb280d3d3.svg) | ![after](/.assets/4973bf64778f4a833728753fe06f9a2fb49bb83a.svg) | + +#### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99](https://etherscan.io/address/0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99) | [0x65A3De6d805c2A25A8E53e69da6A5a11848f25b3](https://etherscan.io/address/0x65A3De6d805c2A25A8E53e69da6A5a11848f25b3) | +| optimalUsageRatio | 80 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 20 % | 8 % | +| interestRate | ![before](/.assets/ff2b0e4a102e0124ddc975718bccf3d3a6c8dc9b.svg) | ![after](/.assets/bd3c2469546fb86c1fca744d14fda357059d800c.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd": { + "interestRateStrategy": { + "from": "0x999F449fEAfaAd78CE5702A9ebc460633478D4a4", + "to": "0xfA4dEC495522ea25f617113fA0633a5BeCD4918E" + } + }, + "0x57Ab1ec28D129707052df4dF418D58a2D46d5f51": { + "interestRateStrategy": { + "from": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE", + "to": "0xBbE678b3E03E885B477f97af40671c1182582aD4" + } + }, + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "interestRateStrategy": { + "from": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96", + "to": "0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b" + } + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "interestRateStrategy": { + "from": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96", + "to": "0x13828736b5e2CcF7811A2012ff9eB3e685a815b2" + } + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "interestRateStrategy": { + "from": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE", + "to": "0xBbE678b3E03E885B477f97af40671c1182582aD4" + } + }, + "0x8E870D67F660D95d5be530380D0eC0bd388289E1": { + "interestRateStrategy": { + "from": "0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15", + "to": "0x6a39D2996326853Fed73a69F51EC50C941624500" + } + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "interestRateStrategy": { + "from": "0xb72F23adE9b9980c2E731Ca504105fC860643619", + "to": "0x6959f4a661FDF1f3405CaDd56d0Af73a4b082Cb2" + } + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "interestRateStrategy": { + "from": "0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99", + "to": "0x65A3De6d805c2A25A8E53e69da6A5a11848f25b3" + } + } + }, + "strategies": { + "0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd": { + "address": { + "from": "0x999F449fEAfaAd78CE5702A9ebc460633478D4a4", + "to": "0xfA4dEC495522ea25f617113fA0633a5BeCD4918E" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x57Ab1ec28D129707052df4dF418D58a2D46d5f51": { + "address": { + "from": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE", + "to": "0xBbE678b3E03E885B477f97af40671c1182582aD4" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "address": { + "from": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96", + "to": "0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "address": { + "from": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96", + "to": "0x13828736b5e2CcF7811A2012ff9eB3e685a815b2" + }, + "maxExcessUsageRatio": { + "from": "200000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "800000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "address": { + "from": "0x28fc7a5F0e7652B6f5E398F5E656A3eB36a1F3DE", + "to": "0xBbE678b3E03E885B477f97af40671c1182582aD4" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x8E870D67F660D95d5be530380D0eC0bd388289E1": { + "address": { + "from": "0x40a76E018dd4aFe1391F51f0C8c8E4eA70476e15", + "to": "0x6a39D2996326853Fed73a69F51EC50C941624500" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "address": { + "from": "0xb72F23adE9b9980c2E731Ca504105fC860643619", + "to": "0x6959f4a661FDF1f3405CaDd56d0Af73a4b082Cb2" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "address": { + "from": "0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99", + "to": "0x65A3De6d805c2A25A8E53e69da6A5a11848f25b3" + }, + "maxExcessUsageRatio": { + "from": "200000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "800000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..a12761bbc --- /dev/null +++ b/diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,116 @@ +## Reserve changes + +### Reserve altered + +#### USDC ([0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174](https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x2ad5a608a920E7061ccE38955C89A7c3F4c0aba7](https://polygonscan.com/address/0x2ad5a608a920E7061ccE38955C89A7c3F4c0aba7) | [0x40648f731198AD8ba5757a0bE5DaDaE034ffCf76](https://polygonscan.com/address/0x40648f731198AD8ba5757a0bE5DaDaE034ffCf76) | +| optimalUsageRatio | 77 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 23 % | 8 % | +| interestRate | ![before](/.assets/9fdcab76edd6660f763ee400838c013faa920e39.svg) | ![after](/.assets/b262ffb8e1738773ae155739d430077a79451a55.svg) | + +#### DAI ([0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063](https://polygonscan.com/address/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xa966adA364E0491520a1235aAA9cf15E08c1Db05](https://polygonscan.com/address/0xa966adA364E0491520a1235aAA9cf15E08c1Db05) | [0xc4d392a7Bfe01E80A07272F5D8a34D49E9cce966](https://polygonscan.com/address/0xc4d392a7Bfe01E80A07272F5D8a34D49E9cce966) | +| optimalUsageRatio | 71 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 29 % | 8 % | +| interestRate | ![before](/.assets/b8393c809f8dfba89d4623793fa1650416ce5b8b.svg) | ![after](/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg) | + +#### USDT ([0xc2132D05D31c914a87C6611C10748AEb04B58e8F](https://polygonscan.com/address/0xc2132D05D31c914a87C6611C10748AEb04B58e8F)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x7892E4Db4C172e7Af389677c04c42eE3F8Fd5447](https://polygonscan.com/address/0x7892E4Db4C172e7Af389677c04c42eE3F8Fd5447) | [0x1233847129541c166ad585FaC0727CcBF6cf28eC](https://polygonscan.com/address/0x1233847129541c166ad585FaC0727CcBF6cf28eC) | +| optimalUsageRatio | 52 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| maxExcessUsageRatio | 48 % | 8 % | +| interestRate | ![before](/.assets/7b1a62c7a431a1f0b3ef48d0c3eb32be510352d0.svg) | ![after](/.assets/7298d269e8a08139605b2434246d84d4bb597ec1.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "interestRateStrategy": { + "from": "0x2ad5a608a920E7061ccE38955C89A7c3F4c0aba7", + "to": "0x40648f731198AD8ba5757a0bE5DaDaE034ffCf76" + } + }, + "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063": { + "interestRateStrategy": { + "from": "0xa966adA364E0491520a1235aAA9cf15E08c1Db05", + "to": "0xc4d392a7Bfe01E80A07272F5D8a34D49E9cce966" + } + }, + "0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "interestRateStrategy": { + "from": "0x7892E4Db4C172e7Af389677c04c42eE3F8Fd5447", + "to": "0x1233847129541c166ad585FaC0727CcBF6cf28eC" + } + } + }, + "strategies": { + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "address": { + "from": "0x2ad5a608a920E7061ccE38955C89A7c3F4c0aba7", + "to": "0x40648f731198AD8ba5757a0bE5DaDaE034ffCf76" + }, + "maxExcessUsageRatio": { + "from": "230000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "770000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063": { + "address": { + "from": "0xa966adA364E0491520a1235aAA9cf15E08c1Db05", + "to": "0xc4d392a7Bfe01E80A07272F5D8a34D49E9cce966" + }, + "maxExcessUsageRatio": { + "from": "290000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "710000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "address": { + "from": "0x7892E4Db4C172e7Af389677c04c42eE3F8Fd5447", + "to": "0x1233847129541c166ad585FaC0727CcBF6cf28eC" + }, + "maxExcessUsageRatio": { + "from": "480000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "520000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..82851bf8e --- /dev/null +++ b/diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,286 @@ +## Reserve changes + +### Reserve altered + +#### FRAX ([0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F](https://arbiscan.io/address/0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://arbiscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0x48AF11111764E710fcDcE2750db848C63edab57B](https://arbiscan.io/address/0x48AF11111764E710fcDcE2750db848C63edab57B) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/b3320f3f9b903ba15a3afef70a06f01029f0ac26.svg) | + +#### MAI ([0x3F56e0c36d275367b8C502090EDF38289b3dEa0d](https://arbiscan.io/address/0x3F56e0c36d275367b8C502090EDF38289b3dEa0d)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xc77576b02D74BBF9CdC26F3B86FD09d134416df2](https://arbiscan.io/address/0xc77576b02D74BBF9CdC26F3B86FD09d134416df2) | [0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1](https://arbiscan.io/address/0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/5316fd25bc1be6cb09428d8c78d63243d4723c48.svg) | ![after](/.assets/fe86520732db368b1c64316a02dd2c54289f98a1.svg) | + +#### LUSD ([0x93b346b6BC2548dA6A1E7d98E9a421B42541425b](https://arbiscan.io/address/0x93b346b6BC2548dA6A1E7d98E9a421B42541425b)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260](https://arbiscan.io/address/0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260) | [0x7448ABeD12d8538efC115af4a417e3d1367180fc](https://arbiscan.io/address/0x7448ABeD12d8538efC115af4a417e3d1367180fc) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/dc936825b052222d6d3ba80110bf44c7c8d27b10.svg) | ![after](/.assets/93485682d175032cac8fb5ae7a1c774f7aa5759c.svg) | + +#### EURS ([0xD22a58f79e9481D1a88e00c343885A588b34b68B](https://arbiscan.io/address/0xD22a58f79e9481D1a88e00c343885A588b34b68B)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xCbDC7D7984D7AD59434f0B1999D2006898C40f9A](https://arbiscan.io/address/0xCbDC7D7984D7AD59434f0B1999D2006898C40f9A) | [0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d](https://arbiscan.io/address/0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/6054f48e56c94cd70dffba623df52b47094cb156.svg) | ![after](/.assets/35549d646391f9a4cf4c3ec310ca8af022895f36.svg) | + +#### DAI ([0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1](https://arbiscan.io/address/0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://arbiscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0xd56eE97960b1b2953e751151Fd84888cF3F3b521](https://arbiscan.io/address/0xd56eE97960b1b2953e751151Fd84888cF3F3b521) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg) | + +#### USDC ([0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8](https://arbiscan.io/address/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1](https://arbiscan.io/address/0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1) | [0xa8C12113DB50549A1E36FD25982C88B69A0007E0](https://arbiscan.io/address/0xa8C12113DB50549A1E36FD25982C88B69A0007E0) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 7 % | 12 % | +| baseStableBorrowRate | 8 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/7387a2f081b5c6aaea817fa3774fd472edbae392.svg) | ![after](/.assets/aa506162e1d3af58a3c1e97ae0dacf0152daf986.svg) | + +#### USDT ([0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9](https://arbiscan.io/address/0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://arbiscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0xd56eE97960b1b2953e751151Fd84888cF3F3b521](https://arbiscan.io/address/0xd56eE97960b1b2953e751151Fd84888cF3F3b521) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg) | + +#### USDC ([0xaf88d065e77c8cC2239327C5EDb3A432268e5831](https://arbiscan.io/address/0xaf88d065e77c8cC2239327C5EDb3A432268e5831)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x06B1Ec378618EA736a65395eA5CAB69A2410493B](https://arbiscan.io/address/0x06B1Ec378618EA736a65395eA5CAB69A2410493B) | [0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f](https://arbiscan.io/address/0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/e18a415b118acfcc7864c3e185449673148c205b.svg) | ![after](/.assets/8222c8999b36025f914c1bb8a02deb5adfd09c70.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F": { + "interestRateStrategy": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0x48AF11111764E710fcDcE2750db848C63edab57B" + } + }, + "0x3F56e0c36d275367b8C502090EDF38289b3dEa0d": { + "interestRateStrategy": { + "from": "0xc77576b02D74BBF9CdC26F3B86FD09d134416df2", + "to": "0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1" + } + }, + "0x93b346b6BC2548dA6A1E7d98E9a421B42541425b": { + "interestRateStrategy": { + "from": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260", + "to": "0x7448ABeD12d8538efC115af4a417e3d1367180fc" + } + }, + "0xD22a58f79e9481D1a88e00c343885A588b34b68B": { + "interestRateStrategy": { + "from": "0xCbDC7D7984D7AD59434f0B1999D2006898C40f9A", + "to": "0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d" + } + }, + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "interestRateStrategy": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" + } + }, + "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8": { + "interestRateStrategy": { + "from": "0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1", + "to": "0xa8C12113DB50549A1E36FD25982C88B69A0007E0" + } + }, + "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": { + "interestRateStrategy": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" + } + }, + "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": { + "interestRateStrategy": { + "from": "0x06B1Ec378618EA736a65395eA5CAB69A2410493B", + "to": "0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f" + } + } + }, + "strategies": { + "0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F": { + "address": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0x48AF11111764E710fcDcE2750db848C63edab57B" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x3F56e0c36d275367b8C502090EDF38289b3dEa0d": { + "address": { + "from": "0xc77576b02D74BBF9CdC26F3B86FD09d134416df2", + "to": "0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x93b346b6BC2548dA6A1E7d98E9a421B42541425b": { + "address": { + "from": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260", + "to": "0x7448ABeD12d8538efC115af4a417e3d1367180fc" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xD22a58f79e9481D1a88e00c343885A588b34b68B": { + "address": { + "from": "0xCbDC7D7984D7AD59434f0B1999D2006898C40f9A", + "to": "0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "address": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8": { + "address": { + "from": "0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1", + "to": "0xa8C12113DB50549A1E36FD25982C88B69A0007E0" + }, + "baseStableBorrowRate": { + "from": "80000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "70000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": { + "address": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": { + "address": { + "from": "0x06B1Ec378618EA736a65395eA5CAB69A2410493B", + "to": "0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..62cbab4f1 --- /dev/null +++ b/diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,189 @@ +## Reserve changes + +### Reserve altered + +#### MAI ([0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b](https://snowscan.xyz/address/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xD61ca03Eac0352090f45bE50403F7B17d20E11F2](https://snowscan.xyz/address/0xD61ca03Eac0352090f45bE50403F7B17d20E11F2) | [0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4](https://snowscan.xyz/address/0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/f47524384ab6225b87778689e3c6d8287a38de2b.svg) | ![after](/.assets/e94f5c80815f2711734095b0eadafd2e3b09ef4b.svg) | + +#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowscan.xyz/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | [0x41365f2aC2D19c3B4Bc691007d314aba80af3669](https://snowscan.xyz/address/0x41365f2aC2D19c3B4Bc691007d314aba80af3669) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/b0829ff1636279f61942026054feca6f0539bf99.svg) | + +#### USDC ([0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E](https://snowscan.xyz/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x3832311560d3B457E9cC35e5b8e06EB167D8c17D](https://snowscan.xyz/address/0x3832311560d3B457E9cC35e5b8e06EB167D8c17D) | [0xf895e42505E48E3aa83fa41994CBd8d1D006C42B](https://snowscan.xyz/address/0xf895e42505E48E3aa83fa41994CBd8d1D006C42B) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/5982fe691bdce75fb16101b23ef8815d0953520a.svg) | ![after](/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg) | + +#### FRAX ([0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64](https://snowscan.xyz/address/0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | [0x049E42fe40368384d04bC10f8494Ea6FD164442a](https://snowscan.xyz/address/0x049E42fe40368384d04bC10f8494Ea6FD164442a) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/ee650e2faae2d5566154a1aff322be3b91a5cd57.svg) | + +#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowscan.xyz/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | [0x41365f2aC2D19c3B4Bc691007d314aba80af3669](https://snowscan.xyz/address/0x41365f2aC2D19c3B4Bc691007d314aba80af3669) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/b0829ff1636279f61942026054feca6f0539bf99.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b": { + "interestRateStrategy": { + "from": "0xD61ca03Eac0352090f45bE50403F7B17d20E11F2", + "to": "0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4" + } + }, + "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7": { + "interestRateStrategy": { + "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", + "to": "0x41365f2aC2D19c3B4Bc691007d314aba80af3669" + } + }, + "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E": { + "interestRateStrategy": { + "from": "0x3832311560d3B457E9cC35e5b8e06EB167D8c17D", + "to": "0xf895e42505E48E3aa83fa41994CBd8d1D006C42B" + } + }, + "0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64": { + "interestRateStrategy": { + "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", + "to": "0x049E42fe40368384d04bC10f8494Ea6FD164442a" + } + }, + "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70": { + "interestRateStrategy": { + "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", + "to": "0x41365f2aC2D19c3B4Bc691007d314aba80af3669" + } + } + }, + "strategies": { + "0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b": { + "address": { + "from": "0xD61ca03Eac0352090f45bE50403F7B17d20E11F2", + "to": "0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7": { + "address": { + "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", + "to": "0x41365f2aC2D19c3B4Bc691007d314aba80af3669" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E": { + "address": { + "from": "0x3832311560d3B457E9cC35e5b8e06EB167D8c17D", + "to": "0xf895e42505E48E3aa83fa41994CBd8d1D006C42B" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64": { + "address": { + "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", + "to": "0x049E42fe40368384d04bC10f8494Ea6FD164442a" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70": { + "address": { + "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", + "to": "0x41365f2aC2D19c3B4Bc691007d314aba80af3669" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..44ef88932 --- /dev/null +++ b/diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,131 @@ +## Reserve changes + +### Reserve altered + +#### USDT ([0x55d398326f99059fF775485246999027B3197955](https://bscscan.com/address/0x55d398326f99059fF775485246999027B3197955)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xA60d98d1e7C1b5C186c181152AE7412C38ABaC94](https://bscscan.com/address/0xA60d98d1e7C1b5C186c181152AE7412C38ABaC94) | [0x7aD646053aE2A184971dc952Cc680a5a5a0cFB8a](https://bscscan.com/address/0x7aD646053aE2A184971dc952Cc680a5a5a0cFB8a) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/9a2d8ed48d646e3c752ce9f8afc7d70cedc3acaf.svg) | ![after](/.assets/653491e29dfd224a05277bc1dd2ade1ec791ab18.svg) | + +#### USDC ([0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d](https://bscscan.com/address/0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x786c9fF899805fa0813C77CD3228C0e857664E78](https://bscscan.com/address/0x786c9fF899805fa0813C77CD3228C0e857664E78) | [0x0C8c4DbEB2dfA2a3770a54450E9937725D2d3D24](https://bscscan.com/address/0x0C8c4DbEB2dfA2a3770a54450E9937725D2d3D24) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/d96c11a19e37534df160331280d004c75b2fc23a.svg) | ![after](/.assets/7f413eb19d11867ae3d39aafa81ed63fb6ea66f6.svg) | + +#### FDUSD ([0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409](https://bscscan.com/address/0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xDFFD9CDd2eC42099D7086Ff76938C111022014D0](https://bscscan.com/address/0xDFFD9CDd2eC42099D7086Ff76938C111022014D0) | [0xBE6Af4cD3097424BcF5C5BeC3bcEc2017DBCaA86](https://bscscan.com/address/0xBE6Af4cD3097424BcF5C5BeC3bcEc2017DBCaA86) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 9 % | 15 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/911a3480b9f792f655a3ba52d4db6447055ff426.svg) | ![after](/.assets/a3ef299385ac1124f7cfc5453c8e559b4d9229d6.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x55d398326f99059fF775485246999027B3197955": { + "interestRateStrategy": { + "from": "0xA60d98d1e7C1b5C186c181152AE7412C38ABaC94", + "to": "0x7aD646053aE2A184971dc952Cc680a5a5a0cFB8a" + } + }, + "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d": { + "interestRateStrategy": { + "from": "0x786c9fF899805fa0813C77CD3228C0e857664E78", + "to": "0x0C8c4DbEB2dfA2a3770a54450E9937725D2d3D24" + } + }, + "0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409": { + "interestRateStrategy": { + "from": "0xDFFD9CDd2eC42099D7086Ff76938C111022014D0", + "to": "0xBE6Af4cD3097424BcF5C5BeC3bcEc2017DBCaA86" + } + } + }, + "strategies": { + "0x55d398326f99059fF775485246999027B3197955": { + "address": { + "from": "0xA60d98d1e7C1b5C186c181152AE7412C38ABaC94", + "to": "0x7aD646053aE2A184971dc952Cc680a5a5a0cFB8a" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d": { + "address": { + "from": "0x786c9fF899805fa0813C77CD3228C0e857664E78", + "to": "0x0C8c4DbEB2dfA2a3770a54450E9937725D2d3D24" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409": { + "address": { + "from": "0xDFFD9CDd2eC42099D7086Ff76938C111022014D0", + "to": "0xBE6Af4cD3097424BcF5C5BeC3bcEc2017DBCaA86" + }, + "baseStableBorrowRate": { + "from": "90000000000000000000000000", + "to": "150000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..dbf2ff384 --- /dev/null +++ b/diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,92 @@ +## Reserve changes + +### Reserve altered + +#### USDC ([0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913](https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x136848FdaedEB56245bE0e61E28A3CB8c0B45CaA](https://basescan.org/address/0x136848FdaedEB56245bE0e61E28A3CB8c0B45CaA) | [0xcbF65e0708961Da6Dd3F1A4e1cE17D97D1E8C29A](https://basescan.org/address/0xcbF65e0708961Da6Dd3F1A4e1cE17D97D1E8C29A) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 6 % | 12 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/44bd6c5258c27248fabcd09a99dec757454c2a7e.svg) | ![after](/.assets/59123f839c4a9ef1d4a2dab92414c51edb0dd440.svg) | + +#### USDbC ([0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA](https://basescan.org/address/0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xDBea12F69D3Fcb4Be9FD14dd450AAe2B2a3d4de7](https://basescan.org/address/0xDBea12F69D3Fcb4Be9FD14dd450AAe2B2a3d4de7) | [0x64163263753A9610a391A5D0276ae94B0d42fB75](https://basescan.org/address/0x64163263753A9610a391A5D0276ae94B0d42fB75) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 7 % | 12 % | +| baseStableBorrowRate | 8 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/d79d8eb0abd33ffb877708fe07140ce5c8503360.svg) | ![after](/.assets/36c73faed5aa696962f84de663a53270b225721c.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "interestRateStrategy": { + "from": "0x136848FdaedEB56245bE0e61E28A3CB8c0B45CaA", + "to": "0xcbF65e0708961Da6Dd3F1A4e1cE17D97D1E8C29A" + } + }, + "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA": { + "interestRateStrategy": { + "from": "0xDBea12F69D3Fcb4Be9FD14dd450AAe2B2a3d4de7", + "to": "0x64163263753A9610a391A5D0276ae94B0d42fB75" + } + } + }, + "strategies": { + "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "address": { + "from": "0x136848FdaedEB56245bE0e61E28A3CB8c0B45CaA", + "to": "0xcbF65e0708961Da6Dd3F1A4e1cE17D97D1E8C29A" + }, + "baseStableBorrowRate": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA": { + "address": { + "from": "0xDBea12F69D3Fcb4Be9FD14dd450AAe2B2a3d4de7", + "to": "0x64163263753A9610a391A5D0276ae94B0d42fB75" + }, + "baseStableBorrowRate": { + "from": "80000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "70000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Ethereum_StablecoinIRUpdates_20240322_before_AaveV3Ethereum_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Ethereum_StablecoinIRUpdates_20240322_before_AaveV3Ethereum_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..cbc412f65 --- /dev/null +++ b/diffs/AaveV3Ethereum_StablecoinIRUpdates_20240322_before_AaveV3Ethereum_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,247 @@ +## Reserve changes + +### Reserve altered + +#### LUSD ([0x5f98805A4E8be255a32880FDeC7F6728C6568bA0](https://etherscan.io/address/0x5f98805A4E8be255a32880FDeC7F6728C6568bA0)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260](https://etherscan.io/address/0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260) | [0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1](https://etherscan.io/address/0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/dc936825b052222d6d3ba80110bf44c7c8d27b10.svg) | ![after](/.assets/d65fc1c821399427e01bc830bfb9f62b080e1cf4.svg) | + +#### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://etherscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0xa8C12113DB50549A1E36FD25982C88B69A0007E0](https://etherscan.io/address/0xa8C12113DB50549A1E36FD25982C88B69A0007E0) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/fb0786b31c3f97e0469558c2f0243123d139fd29.svg) | + +#### PYUSD ([0x6c3ea9036406852006290770BEdFcAbA0e23A0e8](https://etherscan.io/address/0x6c3ea9036406852006290770BEdFcAbA0e23A0e8)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514](https://etherscan.io/address/0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514) | [0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f](https://etherscan.io/address/0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 9 % | 15 % | +| interestRate | ![before](/.assets/c907af8377a5e8ffda3acd3fe2ac6aee00eff4ae.svg) | ![after](/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg) | + +#### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://etherscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0x7448ABeD12d8538efC115af4a417e3d1367180fc](https://etherscan.io/address/0x7448ABeD12d8538efC115af4a417e3d1367180fc) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/ca4cf56d4a2589f2dfcd6e849a2c7551a972a3ad.svg) | + +#### USDC ([0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1](https://etherscan.io/address/0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1) | [0xd56eE97960b1b2953e751151Fd84888cF3F3b521](https://etherscan.io/address/0xd56eE97960b1b2953e751151Fd84888cF3F3b521) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/cf8cdad86320a216fb48759e63e01741a6ed442d.svg) | ![after](/.assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg) | + +#### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xc77576b02D74BBF9CdC26F3B86FD09d134416df2](https://etherscan.io/address/0xc77576b02D74BBF9CdC26F3B86FD09d134416df2) | [0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d](https://etherscan.io/address/0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/2278f5a715be21ce4c1a7931f606c4a368fe286b.svg) | ![after](/.assets/f162feff755824776af6c5dc36827e8ad2a9c67d.svg) | + +#### crvUSD ([0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E](https://etherscan.io/address/0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x44CaDF6E49895640D9De85ac01d97D44429Ad0A4](https://etherscan.io/address/0x44CaDF6E49895640D9De85ac01d97D44429Ad0A4) | [0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f](https://etherscan.io/address/0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f) | +| variableRateSlope1 | 5 % | 12 % | +| baseStableBorrowRate | 8 % | 15 % | +| interestRate | ![before](/.assets/964205bd85f6f4e4de171c694a4116a90a534cac.svg) | ![after](/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "interestRateStrategy": { + "from": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260", + "to": "0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1" + } + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "interestRateStrategy": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0xa8C12113DB50549A1E36FD25982C88B69A0007E0" + } + }, + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "interestRateStrategy": { + "from": "0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514", + "to": "0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f" + } + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "interestRateStrategy": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0x7448ABeD12d8538efC115af4a417e3d1367180fc" + } + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "interestRateStrategy": { + "from": "0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1", + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" + } + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "interestRateStrategy": { + "from": "0xc77576b02D74BBF9CdC26F3B86FD09d134416df2", + "to": "0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d" + } + }, + "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { + "interestRateStrategy": { + "from": "0x44CaDF6E49895640D9De85ac01d97D44429Ad0A4", + "to": "0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f" + } + } + }, + "strategies": { + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "address": { + "from": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260", + "to": "0xb96c569Ceb49440731DdD5D8c5E6DA3538f1CBF1" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "address": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0xa8C12113DB50549A1E36FD25982C88B69A0007E0" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "address": { + "from": "0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514", + "to": "0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f" + }, + "baseStableBorrowRate": { + "from": "90000000000000000000000000", + "to": "150000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "address": { + "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", + "to": "0x7448ABeD12d8538efC115af4a417e3d1367180fc" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "address": { + "from": "0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1", + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "address": { + "from": "0xc77576b02D74BBF9CdC26F3B86FD09d134416df2", + "to": "0xc7b53C7d24164FB78F57Ea3b5d056bD2E541013d" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { + "address": { + "from": "0x44CaDF6E49895640D9De85ac01d97D44429Ad0A4", + "to": "0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f" + }, + "baseStableBorrowRate": { + "from": "80000000000000000000000000", + "to": "150000000000000000000000000" + }, + "variableRateSlope1": { + "from": "50000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..eb794fc03 --- /dev/null +++ b/diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,121 @@ +## Reserve changes + +### Reserve altered + +#### USDC ([0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83](https://gnosisscan.io/address/0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xE74CD4ADF9103370144c327457bd294753E2E856](https://gnosisscan.io/address/0xE74CD4ADF9103370144c327457bd294753E2E856) | [0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e](https://gnosisscan.io/address/0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/f4b1b8f3a89d9f171e1de97ae32be0c4decc7291.svg) | ![after](/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg) | + +#### EURe ([0xcB444e90D8198415266c6a2724b7900fb12FC56E](https://gnosisscan.io/address/0xcB444e90D8198415266c6a2724b7900fb12FC56E)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x6c3b7e7B8b9609D57C70C3F630228F979EAbb450](https://gnosisscan.io/address/0x6c3b7e7B8b9609D57C70C3F630228F979EAbb450) | [0x5c5eC8bf67a83d9d703DCB755B1e8D1e72Fa89E3](https://gnosisscan.io/address/0x5c5eC8bf67a83d9d703DCB755B1e8D1e72Fa89E3) | +| variableRateSlope1 | 4 % | 12 % | +| baseStableBorrowRate | 5 % | 13 % | +| interestRate | ![before](/.assets/79d2d01632de8f7a1295d120d64fe0b8930a59f2.svg) | ![after](/.assets/f2f95a4b4513a29b7ce19c748925854dd8f0c741.svg) | + +#### WXDAI ([0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d](https://gnosisscan.io/address/0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xE74CD4ADF9103370144c327457bd294753E2E856](https://gnosisscan.io/address/0xE74CD4ADF9103370144c327457bd294753E2E856) | [0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e](https://gnosisscan.io/address/0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/f4b1b8f3a89d9f171e1de97ae32be0c4decc7291.svg) | ![after](/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83": { + "interestRateStrategy": { + "from": "0xE74CD4ADF9103370144c327457bd294753E2E856", + "to": "0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e" + } + }, + "0xcB444e90D8198415266c6a2724b7900fb12FC56E": { + "interestRateStrategy": { + "from": "0x6c3b7e7B8b9609D57C70C3F630228F979EAbb450", + "to": "0x5c5eC8bf67a83d9d703DCB755B1e8D1e72Fa89E3" + } + }, + "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d": { + "interestRateStrategy": { + "from": "0xE74CD4ADF9103370144c327457bd294753E2E856", + "to": "0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e" + } + } + }, + "strategies": { + "0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83": { + "address": { + "from": "0xE74CD4ADF9103370144c327457bd294753E2E856", + "to": "0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xcB444e90D8198415266c6a2724b7900fb12FC56E": { + "address": { + "from": "0x6c3b7e7B8b9609D57C70C3F630228F979EAbb450", + "to": "0x5c5eC8bf67a83d9d703DCB755B1e8D1e72Fa89E3" + }, + "baseStableBorrowRate": { + "from": "50000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "40000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d": { + "address": { + "from": "0xE74CD4ADF9103370144c327457bd294753E2E856", + "to": "0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Metis_StablecoinIRUpdates_20240322_before_AaveV3Metis_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Metis_StablecoinIRUpdates_20240322_before_AaveV3Metis_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..c15d3e2bc --- /dev/null +++ b/diffs/AaveV3Metis_StablecoinIRUpdates_20240322_before_AaveV3Metis_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,5 @@ +## Raw diff + +```json +{} +``` \ No newline at end of file diff --git a/diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..3c40d8160 --- /dev/null +++ b/diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,257 @@ +## Reserve changes + +### Reserve altered + +#### USDC ([0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85](https://optimistic.etherscan.io/address/0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xb83d1B74e1D917d4a95C1e9392f6c639932F444C](https://optimistic.etherscan.io/address/0xb83d1B74e1D917d4a95C1e9392f6c639932F444C) | [0x2b5F720fBA11EeB5f2213FdF06Be9f7fB0ad1C48](https://optimistic.etherscan.io/address/0x2b5F720fBA11EeB5f2213FdF06Be9f7fB0ad1C48) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/674d17a62ee62a3043e08a86f4469e4fede11d3a.svg) | ![after](/.assets/162508ac28f40ef80345b6a915655e49cab178f5.svg) | + +#### USDC ([0x7F5c764cBc14f9669B88837ca1490cCa17c31607](https://optimistic.etherscan.io/address/0x7F5c764cBc14f9669B88837ca1490cCa17c31607)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x769EbC5106bF09D9A665CCb691e1907612b57F16](https://optimistic.etherscan.io/address/0x769EbC5106bF09D9A665CCb691e1907612b57F16) | [0xdd5ee22CC6CbbB41518871D95558B648a3551b54](https://optimistic.etherscan.io/address/0xdd5ee22CC6CbbB41518871D95558B648a3551b54) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 7 % | 12 % | +| baseStableBorrowRate | 8 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/30004f8456edabc18f0ed307b8a79983ab437388.svg) | ![after](/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg) | + +#### sUSD ([0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9](https://optimistic.etherscan.io/address/0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x424883C7dD9Bd129BC346A65E8455CDe9fC0c43C](https://optimistic.etherscan.io/address/0x424883C7dD9Bd129BC346A65E8455CDe9fC0c43C) | [0xD1c2f0F2C7F6A40C8047eee410C800c3d1435D16](https://optimistic.etherscan.io/address/0xD1c2f0F2C7F6A40C8047eee410C800c3d1435D16) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/4c96597d8e0f135353f37321358e767ebe5eb8a8.svg) | ![after](/.assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg) | + +#### USDT ([0x94b008aA00579c1307B0EF2c499aD98a8ce58e58](https://optimistic.etherscan.io/address/0x94b008aA00579c1307B0EF2c499aD98a8ce58e58)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xd5CA18a70189309664e34FB8150799ff13722308](https://optimistic.etherscan.io/address/0xd5CA18a70189309664e34FB8150799ff13722308) | [0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f](https://optimistic.etherscan.io/address/0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/19d720ba733a698f9e5c8714853876f8759c351e.svg) | ![after](/.assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg) | + +#### DAI ([0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1](https://optimistic.etherscan.io/address/0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xd5CA18a70189309664e34FB8150799ff13722308](https://optimistic.etherscan.io/address/0xd5CA18a70189309664e34FB8150799ff13722308) | [0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f](https://optimistic.etherscan.io/address/0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/19d720ba733a698f9e5c8714853876f8759c351e.svg) | ![after](/.assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg) | + +#### LUSD ([0xc40F949F8a4e094D1b49a23ea9241D289B7b2819](https://optimistic.etherscan.io/address/0xc40F949F8a4e094D1b49a23ea9241D289B7b2819)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x5F58C62077b667370879D6580a59f47C30f96a74](https://optimistic.etherscan.io/address/0x5F58C62077b667370879D6580a59f47C30f96a74) | [0xcf3136a52e6a01C482EdA64d3F0242dc3DBAFa47](https://optimistic.etherscan.io/address/0xcf3136a52e6a01C482EdA64d3F0242dc3DBAFa47) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/c497f28ccdc8a6ebf9dd8ec6980e1e7268cd5b81.svg) | ![after](/.assets/e60c240a1aee12ae0d74072cf2946402382bc43f.svg) | + +#### MAI ([0xdFA46478F9e5EA86d57387849598dbFB2e964b02](https://optimistic.etherscan.io/address/0xdFA46478F9e5EA86d57387849598dbFB2e964b02)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x8e3dC8151C46e0547045Ef57a82798CDF91adB4A](https://optimistic.etherscan.io/address/0x8e3dC8151C46e0547045Ef57a82798CDF91adB4A) | [0x4Fb9B5c02EC681499BD3B3a88683E15aaBDe6288](https://optimistic.etherscan.io/address/0x4Fb9B5c02EC681499BD3B3a88683E15aaBDe6288) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/a5e6f9a25baf55329b920758daa560c5b8cfd350.svg) | ![after](/.assets/5a3279c8e6dd036533d94165c42801655131ad2e.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85": { + "interestRateStrategy": { + "from": "0xb83d1B74e1D917d4a95C1e9392f6c639932F444C", + "to": "0x2b5F720fBA11EeB5f2213FdF06Be9f7fB0ad1C48" + } + }, + "0x7F5c764cBc14f9669B88837ca1490cCa17c31607": { + "interestRateStrategy": { + "from": "0x769EbC5106bF09D9A665CCb691e1907612b57F16", + "to": "0xdd5ee22CC6CbbB41518871D95558B648a3551b54" + } + }, + "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9": { + "interestRateStrategy": { + "from": "0x424883C7dD9Bd129BC346A65E8455CDe9fC0c43C", + "to": "0xD1c2f0F2C7F6A40C8047eee410C800c3d1435D16" + } + }, + "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58": { + "interestRateStrategy": { + "from": "0xd5CA18a70189309664e34FB8150799ff13722308", + "to": "0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f" + } + }, + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "interestRateStrategy": { + "from": "0xd5CA18a70189309664e34FB8150799ff13722308", + "to": "0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f" + } + }, + "0xc40F949F8a4e094D1b49a23ea9241D289B7b2819": { + "interestRateStrategy": { + "from": "0x5F58C62077b667370879D6580a59f47C30f96a74", + "to": "0xcf3136a52e6a01C482EdA64d3F0242dc3DBAFa47" + } + }, + "0xdFA46478F9e5EA86d57387849598dbFB2e964b02": { + "interestRateStrategy": { + "from": "0x8e3dC8151C46e0547045Ef57a82798CDF91adB4A", + "to": "0x4Fb9B5c02EC681499BD3B3a88683E15aaBDe6288" + } + } + }, + "strategies": { + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85": { + "address": { + "from": "0xb83d1B74e1D917d4a95C1e9392f6c639932F444C", + "to": "0x2b5F720fBA11EeB5f2213FdF06Be9f7fB0ad1C48" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x7F5c764cBc14f9669B88837ca1490cCa17c31607": { + "address": { + "from": "0x769EbC5106bF09D9A665CCb691e1907612b57F16", + "to": "0xdd5ee22CC6CbbB41518871D95558B648a3551b54" + }, + "baseStableBorrowRate": { + "from": "80000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "70000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9": { + "address": { + "from": "0x424883C7dD9Bd129BC346A65E8455CDe9fC0c43C", + "to": "0xD1c2f0F2C7F6A40C8047eee410C800c3d1435D16" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58": { + "address": { + "from": "0xd5CA18a70189309664e34FB8150799ff13722308", + "to": "0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "address": { + "from": "0xd5CA18a70189309664e34FB8150799ff13722308", + "to": "0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xc40F949F8a4e094D1b49a23ea9241D289B7b2819": { + "address": { + "from": "0x5F58C62077b667370879D6580a59f47C30f96a74", + "to": "0xcf3136a52e6a01C482EdA64d3F0242dc3DBAFa47" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xdFA46478F9e5EA86d57387849598dbFB2e964b02": { + "address": { + "from": "0x8e3dC8151C46e0547045Ef57a82798CDF91adB4A", + "to": "0x4Fb9B5c02EC681499BD3B3a88683E15aaBDe6288" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..4ee64515e --- /dev/null +++ b/diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,257 @@ +## Reserve changes + +### Reserve altered + +#### USDC ([0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174](https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x588b62C84533232E3A881e096E5D639Fa754F093](https://polygonscan.com/address/0x588b62C84533232E3A881e096E5D639Fa754F093) | [0xc77576b02D74BBF9CdC26F3B86FD09d134416df2](https://polygonscan.com/address/0xc77576b02D74BBF9CdC26F3B86FD09d134416df2) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 7 % | 12 % | +| baseStableBorrowRate | 8 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/8dca23d950316194bae32289f94123f87abf1dcf.svg) | ![after](/.assets/730507b18b304c390bc2dc9b1602d2b79381b52b.svg) | + +#### USDC ([0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359](https://polygonscan.com/address/0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1](https://polygonscan.com/address/0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1) | [0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514](https://polygonscan.com/address/0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 6 % | 12 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/72490a8918cee95a56717e7d3753cce611ac1805.svg) | ![after](/.assets/cf73103fe1d4acaf6476fbbdd55f6dd32d91e9cb.svg) | + +#### jEUR ([0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c](https://polygonscan.com/address/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x41B66b4b6b4c9dab039d96528D1b88f7BAF8C5A4](https://polygonscan.com/address/0x41B66b4b6b4c9dab039d96528D1b88f7BAF8C5A4) | [0x06B1Ec378618EA736a65395eA5CAB69A2410493B](https://polygonscan.com/address/0x06B1Ec378618EA736a65395eA5CAB69A2410493B) | +| variableRateSlope1 | 4 % | 12 % | +| baseStableBorrowRate | 5 % | 13 % | +| interestRate | ![before](/.assets/1baf85e415bd720bc42ec928d822cffbd4236d90.svg) | ![after](/.assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg) | + +#### DAI ([0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063](https://polygonscan.com/address/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477](https://polygonscan.com/address/0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477) | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://polygonscan.com/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/9b7be685a38f661247e12c171aa7c6e605f7a547.svg) | ![after](/.assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg) | + +#### EURA ([0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4](https://polygonscan.com/address/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xA9F3C3caE095527061e6d270DBE163693e6fda9D](https://polygonscan.com/address/0xA9F3C3caE095527061e6d270DBE163693e6fda9D) | [0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260](https://polygonscan.com/address/0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260) | +| variableRateSlope1 | 4 % | 12 % | +| baseStableBorrowRate | 5 % | 13 % | +| interestRate | ![before](/.assets/8a10dd458958b063af4177af8f709f1971c58974.svg) | ![after](/.assets/973f0be01f7b244858ae3b53b46574f4a94ae9e0.svg) | + +#### EURS ([0xE111178A87A3BFf0c8d18DECBa5798827539Ae99](https://polygonscan.com/address/0xE111178A87A3BFf0c8d18DECBa5798827539Ae99)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x8F183Ee74C790CB558232a141099b316D6C8Ba6E](https://polygonscan.com/address/0x8F183Ee74C790CB558232a141099b316D6C8Ba6E) | [0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260](https://polygonscan.com/address/0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/8f84201aa8a64dd4068a65bba6c43cc7622ae5b8.svg) | ![after](/.assets/973f0be01f7b244858ae3b53b46574f4a94ae9e0.svg) | + +#### USDT ([0xc2132D05D31c914a87C6611C10748AEb04B58e8F](https://polygonscan.com/address/0xc2132D05D31c914a87C6611C10748AEb04B58e8F)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477](https://polygonscan.com/address/0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477) | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://polygonscan.com/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | +| optimalUsageRatio | 90 % | 92 % | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| maxExcessUsageRatio | 10 % | 8 % | +| interestRate | ![before](/.assets/9b7be685a38f661247e12c171aa7c6e605f7a547.svg) | ![after](/.assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "interestRateStrategy": { + "from": "0x588b62C84533232E3A881e096E5D639Fa754F093", + "to": "0xc77576b02D74BBF9CdC26F3B86FD09d134416df2" + } + }, + "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359": { + "interestRateStrategy": { + "from": "0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1", + "to": "0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514" + } + }, + "0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c": { + "interestRateStrategy": { + "from": "0x41B66b4b6b4c9dab039d96528D1b88f7BAF8C5A4", + "to": "0x06B1Ec378618EA736a65395eA5CAB69A2410493B" + } + }, + "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063": { + "interestRateStrategy": { + "from": "0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477", + "to": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237" + } + }, + "0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4": { + "interestRateStrategy": { + "from": "0xA9F3C3caE095527061e6d270DBE163693e6fda9D", + "to": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260" + } + }, + "0xE111178A87A3BFf0c8d18DECBa5798827539Ae99": { + "interestRateStrategy": { + "from": "0x8F183Ee74C790CB558232a141099b316D6C8Ba6E", + "to": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260" + } + }, + "0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "interestRateStrategy": { + "from": "0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477", + "to": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237" + } + } + }, + "strategies": { + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "address": { + "from": "0x588b62C84533232E3A881e096E5D639Fa754F093", + "to": "0xc77576b02D74BBF9CdC26F3B86FD09d134416df2" + }, + "baseStableBorrowRate": { + "from": "80000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "70000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359": { + "address": { + "from": "0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1", + "to": "0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514" + }, + "baseStableBorrowRate": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c": { + "address": { + "from": "0x41B66b4b6b4c9dab039d96528D1b88f7BAF8C5A4", + "to": "0x06B1Ec378618EA736a65395eA5CAB69A2410493B" + }, + "baseStableBorrowRate": { + "from": "50000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "40000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063": { + "address": { + "from": "0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477", + "to": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4": { + "address": { + "from": "0xA9F3C3caE095527061e6d270DBE163693e6fda9D", + "to": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260" + }, + "baseStableBorrowRate": { + "from": "50000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "40000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xE111178A87A3BFf0c8d18DECBa5798827539Ae99": { + "address": { + "from": "0x8F183Ee74C790CB558232a141099b316D6C8Ba6E", + "to": "0xC0B875907514131C2Fd43f0FBf59EdaB84C7e260" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + }, + "0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "address": { + "from": "0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477", + "to": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "maxExcessUsageRatio": { + "from": "100000000000000000000000000", + "to": "80000000000000000000000000" + }, + "optimalUsageRatio": { + "from": "900000000000000000000000000", + "to": "920000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..1b99a8454 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV2AvalancheAssets} from 'aave-address-book/AaveV2Avalanche.sol'; +import {AaveV2PayloadAvalanche} from 'aave-helpers/v2-config-engine/AaveV2PayloadAvalanche.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV2ConfigEngine} from 'aave-helpers/v2-config-engine/IAaveV2ConfigEngine.sol'; +import {IV2RateStrategyFactory} from 'aave-helpers/v2-config-engine/IV2RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV2ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV2ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV2ConfigEngine.RateStrategyUpdate[](3); + rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2AvalancheAssets.USDCe_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2AvalancheAssets.USDTe_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2AvalancheAssets.DAIe_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..fadb74302 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV2Avalanche} from 'aave-address-book/AaveV2Avalanche.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV2TestBase, ReserveConfig} from 'aave-helpers/ProtocolV2TestBase.sol'; +import {AaveV2Avalanche_StablecoinIRUpdates_20240322} from './AaveV2Avalanche_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV2Avalanche_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV2Avalanche_StablecoinIRUpdates_20240322 + */ +contract AaveV2Avalanche_StablecoinIRUpdates_20240322_Test is ProtocolV2TestBase { + AaveV2Avalanche_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('avalanche'), 43233162); + proposal = new AaveV2Avalanche_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV2Avalanche_StablecoinIRUpdates_20240322', + AaveV2Avalanche.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..699dcf235 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,115 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV2EthereumAssets} from 'aave-address-book/AaveV2Ethereum.sol'; +import {AaveV2PayloadEthereum} from 'aave-helpers/v2-config-engine/AaveV2PayloadEthereum.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV2ConfigEngine} from 'aave-helpers/v2-config-engine/IAaveV2ConfigEngine.sol'; +import {IV2RateStrategyFactory} from 'aave-helpers/v2-config-engine/IV2RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV2Ethereum_StablecoinIRUpdates_20240322 is AaveV2PayloadEthereum { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV2ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV2ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV2ConfigEngine.RateStrategyUpdate[](8); + rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.USDT_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.DAI_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.sUSD_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[3] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.USDC_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[4] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.GUSD_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[5] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.USDP_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[6] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.FRAX_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[7] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2EthereumAssets.LUSD_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..fea352d99 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV2Ethereum} from 'aave-address-book/AaveV2Ethereum.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV2TestBase, ReserveConfig} from 'aave-helpers/ProtocolV2TestBase.sol'; +import {AaveV2Ethereum_StablecoinIRUpdates_20240322} from './AaveV2Ethereum_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV2Ethereum_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV2Ethereum_StablecoinIRUpdates_20240322 + */ +contract AaveV2Ethereum_StablecoinIRUpdates_20240322_Test is ProtocolV2TestBase { + AaveV2Ethereum_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('mainnet'), 19490769); + proposal = new AaveV2Ethereum_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV2Ethereum_StablecoinIRUpdates_20240322', + AaveV2Ethereum.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..ef4cc1e14 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV2PolygonAssets} from 'aave-address-book/AaveV2Polygon.sol'; +import {AaveV2PayloadPolygon} from 'aave-helpers/v2-config-engine/AaveV2PayloadPolygon.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV2ConfigEngine} from 'aave-helpers/v2-config-engine/IAaveV2ConfigEngine.sol'; +import {IV2RateStrategyFactory} from 'aave-helpers/v2-config-engine/IV2RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV2Polygon_StablecoinIRUpdates_20240322 is AaveV2PayloadPolygon { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV2ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV2ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV2ConfigEngine.RateStrategyUpdate[](3); + rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2PolygonAssets.USDC_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2PolygonAssets.USDT_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ + asset: AaveV2PolygonAssets.DAI_UNDERLYING, + params: IV2RateStrategyFactory.RateStrategyParams({ + optimalUtilizationRate: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..eaa9c8aa6 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV2Polygon} from 'aave-address-book/AaveV2Polygon.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV2TestBase, ReserveConfig} from 'aave-helpers/ProtocolV2TestBase.sol'; +import {AaveV2Polygon_StablecoinIRUpdates_20240322} from './AaveV2Polygon_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV2Polygon_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV2Polygon_StablecoinIRUpdates_20240322 + */ +contract AaveV2Polygon_StablecoinIRUpdates_20240322_Test is ProtocolV2TestBase { + AaveV2Polygon_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('polygon'), 54954318); + proposal = new AaveV2Polygon_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV2Polygon_StablecoinIRUpdates_20240322', + AaveV2Polygon.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..f31f7215b --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,139 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3ArbitrumAssets} from 'aave-address-book/AaveV3Arbitrum.sol'; +import {AaveV3PayloadArbitrum} from 'aave-helpers/v3-config-engine/AaveV3PayloadArbitrum.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](8); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.DAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.USDT_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[3] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.EURS_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[4] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.MAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[5] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.LUSD_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.USDCn_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[7] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ArbitrumAssets.FRAX_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..3adf51a47 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Arbitrum_StablecoinIRUpdates_20240322} from './AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Arbitrum_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Arbitrum_StablecoinIRUpdates_20240322 + */ +contract AaveV3Arbitrum_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Arbitrum_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('arbitrum'), 193053541); + proposal = new AaveV3Arbitrum_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Arbitrum_StablecoinIRUpdates_20240322', + AaveV3Arbitrum.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..4fe961337 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3AvalancheAssets} from 'aave-address-book/AaveV3Avalanche.sol'; +import {AaveV3PayloadAvalanche} from 'aave-helpers/v3-config-engine/AaveV3PayloadAvalanche.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Avalanche_StablecoinIRUpdates_20240322 is AaveV3PayloadAvalanche { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](5); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3AvalancheAssets.DAIe_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3AvalancheAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3AvalancheAssets.USDt_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[3] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3AvalancheAssets.FRAX_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[4] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3AvalancheAssets.MAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..9132e9dac --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Avalanche_StablecoinIRUpdates_20240322} from './AaveV3Avalanche_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Avalanche_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Avalanche_StablecoinIRUpdates_20240322 + */ +contract AaveV3Avalanche_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Avalanche_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('avalanche'), 43233259); + proposal = new AaveV3Avalanche_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Avalanche_StablecoinIRUpdates_20240322', + AaveV3Avalanche.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..e1fd47285 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3BNBAssets} from 'aave-address-book/AaveV3BNB.sol'; +import {AaveV3PayloadBnb} from 'aave-helpers/v3-config-engine/AaveV3PayloadBnb.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](3); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3BNBAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3BNBAssets.USDT_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3BNBAssets.FDUSD_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..2b0cff04f --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3BNB} from 'aave-address-book/AaveV3BNB.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3BNB_StablecoinIRUpdates_20240322} from './AaveV3BNB_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3BNB_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3BNB_StablecoinIRUpdates_20240322 + */ +contract AaveV3BNB_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3BNB_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('bnb'), 37194140); + proposal = new AaveV3BNB_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3BNB_StablecoinIRUpdates_20240322', AaveV3BNB.POOL, address(proposal)); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..323d0fc21 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3BaseAssets} from 'aave-address-book/AaveV3Base.sol'; +import {AaveV3PayloadBase} from 'aave-helpers/v3-config-engine/AaveV3PayloadBase.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Base_StablecoinIRUpdates_20240322 is AaveV3PayloadBase { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](2); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3BaseAssets.USDbC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3BaseAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..b9cf67120 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Base_StablecoinIRUpdates_20240322} from './AaveV3Base_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Base_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Base_StablecoinIRUpdates_20240322 + */ +contract AaveV3Base_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Base_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('base'), 12164516); + proposal = new AaveV3Base_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Base_StablecoinIRUpdates_20240322', AaveV3Base.POOL, address(proposal)); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..ec17fe063 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,125 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; +import {AaveV3PayloadEthereum} from 'aave-helpers/v3-config-engine/AaveV3PayloadEthereum.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Ethereum_StablecoinIRUpdates_20240322 is AaveV3PayloadEthereum { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](7); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3EthereumAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3EthereumAssets.DAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3EthereumAssets.USDT_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[3] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3EthereumAssets.LUSD_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[4] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3EthereumAssets.FRAX_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[5] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3EthereumAssets.crvUSD_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3EthereumAssets.PYUSD_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..0f3a9e84f --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Ethereum_StablecoinIRUpdates_20240322} from './AaveV3Ethereum_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Ethereum_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Ethereum_StablecoinIRUpdates_20240322 + */ +contract AaveV3Ethereum_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Ethereum_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('mainnet'), 19490783); + proposal = new AaveV3Ethereum_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Ethereum_StablecoinIRUpdates_20240322', + AaveV3Ethereum.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..24dc841a5 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3GnosisAssets} from 'aave-address-book/AaveV3Gnosis.sol'; +import {AaveV3PayloadGnosis} from 'aave-helpers/v3-config-engine/AaveV3PayloadGnosis.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Gnosis_StablecoinIRUpdates_20240322 is AaveV3PayloadGnosis { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](3); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3GnosisAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3GnosisAssets.WXDAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3GnosisAssets.EURe_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..143f61b05 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Gnosis} from 'aave-address-book/AaveV3Gnosis.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Gnosis_StablecoinIRUpdates_20240322} from './AaveV3Gnosis_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Gnosis_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Gnosis_StablecoinIRUpdates_20240322 + */ +contract AaveV3Gnosis_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Gnosis_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('gnosis'), 33059799); + proposal = new AaveV3Gnosis_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Gnosis_StablecoinIRUpdates_20240322', AaveV3Gnosis.POOL, address(proposal)); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..226e10930 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3PayloadMetis} from 'aave-helpers/v3-config-engine/AaveV3PayloadMetis.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Metis_StablecoinIRUpdates_20240322 is AaveV3PayloadMetis { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](0); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..8029b709e --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Metis_StablecoinIRUpdates_20240322} from './AaveV3Metis_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Metis_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Metis_StablecoinIRUpdates_20240322 + */ +contract AaveV3Metis_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Metis_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('metis'), 15633620); + proposal = new AaveV3Metis_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Metis_StablecoinIRUpdates_20240322', AaveV3Metis.POOL, address(proposal)); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..8df8add91 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,125 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3OptimismAssets} from 'aave-address-book/AaveV3Optimism.sol'; +import {AaveV3PayloadOptimism} from 'aave-helpers/v3-config-engine/AaveV3PayloadOptimism.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](7); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3OptimismAssets.DAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3OptimismAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3OptimismAssets.USDT_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[3] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3OptimismAssets.sUSD_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[4] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3OptimismAssets.LUSD_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[5] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3OptimismAssets.MAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3OptimismAssets.USDCn_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..3313568f8 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Optimism_StablecoinIRUpdates_20240322} from './AaveV3Optimism_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Optimism_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Optimism_StablecoinIRUpdates_20240322 + */ +contract AaveV3Optimism_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Optimism_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('optimism'), 117759733); + proposal = new AaveV3Optimism_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Optimism_StablecoinIRUpdates_20240322', + AaveV3Optimism.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..3a1ad7d79 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,125 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol'; +import {AaveV3PayloadPolygon} from 'aave-helpers/v3-config-engine/AaveV3PayloadPolygon.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](7); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3PolygonAssets.DAI_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3PolygonAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3PolygonAssets.USDT_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[3] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3PolygonAssets.EURS_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[4] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3PolygonAssets.jEUR_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[5] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: 0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: EngineFlags.KEEP_CURRENT, + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3PolygonAssets.USDCn_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..6865cc5f8 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Polygon_StablecoinIRUpdates_20240322} from './AaveV3Polygon_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Polygon_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Polygon_StablecoinIRUpdates_20240322 + */ +contract AaveV3Polygon_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Polygon_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('polygon'), 54954371); + proposal = new AaveV3Polygon_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Polygon_StablecoinIRUpdates_20240322', + AaveV3Polygon.POOL, + address(proposal) + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol new file mode 100644 index 000000000..9a17ceaa2 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3ScrollAssets} from 'aave-address-book/AaveV3Scroll.sol'; +import {AaveV3PayloadScroll} from 'aave-helpers/v3-config-engine/AaveV3PayloadScroll.sol'; +import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; +/** + * @title Stablecoin IR Updates + * @author Chaos Labs, ACI + * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d + * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 + */ +contract AaveV3Scroll_StablecoinIRUpdates_20240322 is AaveV3PayloadScroll { + function rateStrategiesUpdates() + public + pure + override + returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) + { + IAaveV3ConfigEngine.RateStrategyUpdate[] + memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](1); + rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ + asset: AaveV3ScrollAssets.USDC_UNDERLYING, + params: IV3RateStrategyFactory.RateStrategyParams({ + optimalUsageRatio: _bpsToRay(92_00), + baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, + variableRateSlope1: _bpsToRay(12_00), + variableRateSlope2: EngineFlags.KEEP_CURRENT, + stableRateSlope1: EngineFlags.KEEP_CURRENT, + stableRateSlope2: EngineFlags.KEEP_CURRENT, + baseStableRateOffset: EngineFlags.KEEP_CURRENT, + stableRateExcessOffset: EngineFlags.KEEP_CURRENT, + optimalStableToTotalDebtRatio: EngineFlags.KEEP_CURRENT + }) + }); + + return rateStrategies; + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.t.sol new file mode 100644 index 000000000..4bfe89ce3 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.t.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Scroll_StablecoinIRUpdates_20240322} from './AaveV3Scroll_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Test for AaveV3Scroll_StablecoinIRUpdates_20240322 + * command: make test-contract filter=AaveV3Scroll_StablecoinIRUpdates_20240322 + */ +contract AaveV3Scroll_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { + AaveV3Scroll_StablecoinIRUpdates_20240322 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('scroll'), 4339602); + proposal = new AaveV3Scroll_StablecoinIRUpdates_20240322(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Scroll_StablecoinIRUpdates_20240322', AaveV3Scroll.POOL, address(proposal)); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md new file mode 100644 index 000000000..39fd6627a --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md @@ -0,0 +1,34 @@ +--- +title: "Stablecoin IR Updates" +author: "Chaos Labs, ACI" +discussions: "https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864" +snapshot: "https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d" +--- + +## Simple Summary + +A proposal to increase stablecoin Interest Rate parameters across all Aave deployments. + +## Motivation + +To adapt to the current market conditions and optimize the utilization of stablecoins on Aave, we propose to update the Interest Rate parameters of stablecoins across all Aave deployments. + +This will help to maintain the competitiveness of Aave's stablecoin markets and ensure that the interest rates are aligned with the market conditions. + +THis will also increase Aave DAO revenue by increasing the utilization of stablecoins and cost of borrowing them. + +## Specification + +This AIP update the Slope1 parameters of Aave stablecoins to 12%. +It also increase the uOptimal parameter of DAI, USDC & USDT assets to 92%. + +## References + +- Implementation: [AaveV2Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol), [AaveV2Polygon](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol), [AaveV2Avalanche](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol), [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.sol), [AaveV3Polygon](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol), [AaveV3Avalanche](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol), [AaveV3Optimism](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol), [AaveV3Metis](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol), [AaveV3Base](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol), [AaveV3Gnosis](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol), [AaveV3Scroll](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol), [AaveV3BNB](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol) +- Tests: [AaveV2Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.t.sol), [AaveV2Polygon](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.t.sol), [AaveV2Avalanche](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.t.sol), [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Ethereum_StablecoinIRUpdates_20240322.t.sol), [AaveV3Polygon](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.t.sol), [AaveV3Avalanche](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.t.sol), [AaveV3Optimism](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.t.sol), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.t.sol), [AaveV3Metis](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol), [AaveV3Base](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.t.sol), [AaveV3Gnosis](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.t.sol), [AaveV3Scroll](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.t.sol), [AaveV3BNB](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.t.sol) +- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d) +- [Discussion](https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864) + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol new file mode 100644 index 000000000..dcb2ef6db --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol @@ -0,0 +1,349 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol'; +import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, MetisScript, BaseScript, GnosisScript, ScrollScript, BNBScript} from 'aave-helpers/ScriptUtils.sol'; +import {AaveV2Ethereum_StablecoinIRUpdates_20240322} from './AaveV2Ethereum_StablecoinIRUpdates_20240322.sol'; +import {AaveV2Polygon_StablecoinIRUpdates_20240322} from './AaveV2Polygon_StablecoinIRUpdates_20240322.sol'; +import {AaveV2Avalanche_StablecoinIRUpdates_20240322} from './AaveV2Avalanche_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Ethereum_StablecoinIRUpdates_20240322} from './AaveV3Ethereum_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Polygon_StablecoinIRUpdates_20240322} from './AaveV3Polygon_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Avalanche_StablecoinIRUpdates_20240322} from './AaveV3Avalanche_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Optimism_StablecoinIRUpdates_20240322} from './AaveV3Optimism_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Arbitrum_StablecoinIRUpdates_20240322} from './AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Metis_StablecoinIRUpdates_20240322} from './AaveV3Metis_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Base_StablecoinIRUpdates_20240322} from './AaveV3Base_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Gnosis_StablecoinIRUpdates_20240322} from './AaveV3Gnosis_StablecoinIRUpdates_20240322.sol'; +import {AaveV3Scroll_StablecoinIRUpdates_20240322} from './AaveV3Scroll_StablecoinIRUpdates_20240322.sol'; +import {AaveV3BNB_StablecoinIRUpdates_20240322} from './AaveV3BNB_StablecoinIRUpdates_20240322.sol'; + +/** + * @dev Deploy Ethereum + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployEthereum chain=mainnet + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/1/run-latest.json + */ +contract DeployEthereum is EthereumScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV2Ethereum_StablecoinIRUpdates_20240322).creationCode + ); + address payload1 = GovV3Helpers.deployDeterministic( + type(AaveV3Ethereum_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](2); + actions[0] = GovV3Helpers.buildAction(payload0); + actions[1] = GovV3Helpers.buildAction(payload1); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Polygon + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployPolygon chain=polygon + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/137/run-latest.json + */ +contract DeployPolygon is PolygonScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV2Polygon_StablecoinIRUpdates_20240322).creationCode + ); + address payload1 = GovV3Helpers.deployDeterministic( + type(AaveV3Polygon_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](2); + actions[0] = GovV3Helpers.buildAction(payload0); + actions[1] = GovV3Helpers.buildAction(payload1); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Avalanche + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployAvalanche chain=avalanche + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/43114/run-latest.json + */ +contract DeployAvalanche is AvalancheScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV2Avalanche_StablecoinIRUpdates_20240322).creationCode + ); + address payload1 = GovV3Helpers.deployDeterministic( + type(AaveV3Avalanche_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](2); + actions[0] = GovV3Helpers.buildAction(payload0); + actions[1] = GovV3Helpers.buildAction(payload1); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Optimism + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployOptimism chain=optimism + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/10/run-latest.json + */ +contract DeployOptimism is OptimismScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Optimism_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Arbitrum + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployArbitrum chain=arbitrum + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/42161/run-latest.json + */ +contract DeployArbitrum is ArbitrumScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Arbitrum_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Metis + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployMetis chain=metis + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/1088/run-latest.json + */ +contract DeployMetis is MetisScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Metis_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Base + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployBase chain=base + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/8453/run-latest.json + */ +contract DeployBase is BaseScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Base_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Gnosis + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployGnosis chain=gnosis + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/100/run-latest.json + */ +contract DeployGnosis is GnosisScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Gnosis_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Scroll + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployScroll chain=scroll + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/534352/run-latest.json + */ +contract DeployScroll is ScrollScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Scroll_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy BNB + * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployBNB chain=bnb + * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/56/run-latest.json + */ +contract DeployBNB is BNBScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3BNB_StablecoinIRUpdates_20240322).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Create Proposal + * command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:CreateProposal chain=mainnet + */ +contract CreateProposal is EthereumScript { + function run() external { + // create payloads + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](10); + + // compose actions for validation + IPayloadsControllerCore.ExecutionAction[] + memory actionsEthereum = new IPayloadsControllerCore.ExecutionAction[](2); + actionsEthereum[0] = GovV3Helpers.buildAction( + type(AaveV2Ethereum_StablecoinIRUpdates_20240322).creationCode + ); + actionsEthereum[1] = GovV3Helpers.buildAction( + type(AaveV3Ethereum_StablecoinIRUpdates_20240322).creationCode + ); + payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsPolygon = new IPayloadsControllerCore.ExecutionAction[](2); + actionsPolygon[0] = GovV3Helpers.buildAction( + type(AaveV2Polygon_StablecoinIRUpdates_20240322).creationCode + ); + actionsPolygon[1] = GovV3Helpers.buildAction( + type(AaveV3Polygon_StablecoinIRUpdates_20240322).creationCode + ); + payloads[1] = GovV3Helpers.buildPolygonPayload(vm, actionsPolygon); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsAvalanche = new IPayloadsControllerCore.ExecutionAction[](2); + actionsAvalanche[0] = GovV3Helpers.buildAction( + type(AaveV2Avalanche_StablecoinIRUpdates_20240322).creationCode + ); + actionsAvalanche[1] = GovV3Helpers.buildAction( + type(AaveV3Avalanche_StablecoinIRUpdates_20240322).creationCode + ); + payloads[2] = GovV3Helpers.buildAvalanchePayload(vm, actionsAvalanche); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsOptimism = new IPayloadsControllerCore.ExecutionAction[](1); + actionsOptimism[0] = GovV3Helpers.buildAction( + type(AaveV3Optimism_StablecoinIRUpdates_20240322).creationCode + ); + payloads[3] = GovV3Helpers.buildOptimismPayload(vm, actionsOptimism); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsArbitrum = new IPayloadsControllerCore.ExecutionAction[](1); + actionsArbitrum[0] = GovV3Helpers.buildAction( + type(AaveV3Arbitrum_StablecoinIRUpdates_20240322).creationCode + ); + payloads[4] = GovV3Helpers.buildArbitrumPayload(vm, actionsArbitrum); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsMetis = new IPayloadsControllerCore.ExecutionAction[](1); + actionsMetis[0] = GovV3Helpers.buildAction( + type(AaveV3Metis_StablecoinIRUpdates_20240322).creationCode + ); + payloads[5] = GovV3Helpers.buildMetisPayload(vm, actionsMetis); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsBase = new IPayloadsControllerCore.ExecutionAction[](1); + actionsBase[0] = GovV3Helpers.buildAction( + type(AaveV3Base_StablecoinIRUpdates_20240322).creationCode + ); + payloads[6] = GovV3Helpers.buildBasePayload(vm, actionsBase); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsGnosis = new IPayloadsControllerCore.ExecutionAction[](1); + actionsGnosis[0] = GovV3Helpers.buildAction( + type(AaveV3Gnosis_StablecoinIRUpdates_20240322).creationCode + ); + payloads[7] = GovV3Helpers.buildGnosisPayload(vm, actionsGnosis); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsScroll = new IPayloadsControllerCore.ExecutionAction[](1); + actionsScroll[0] = GovV3Helpers.buildAction( + type(AaveV3Scroll_StablecoinIRUpdates_20240322).creationCode + ); + payloads[8] = GovV3Helpers.buildScrollPayload(vm, actionsScroll); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsBNB = new IPayloadsControllerCore.ExecutionAction[](1); + actionsBNB[0] = GovV3Helpers.buildAction( + type(AaveV3BNB_StablecoinIRUpdates_20240322).creationCode + ); + payloads[9] = GovV3Helpers.buildBNBPayload(vm, actionsBNB); + + // create proposal + vm.startBroadcast(); + GovV3Helpers.createProposal( + vm, + payloads, + GovV3Helpers.ipfsHashFile(vm, 'src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md') + ); + } +} diff --git a/src/20240322_Multi_StablecoinIRUpdates/config.ts b/src/20240322_Multi_StablecoinIRUpdates/config.ts new file mode 100644 index 000000000..84978d4b0 --- /dev/null +++ b/src/20240322_Multi_StablecoinIRUpdates/config.ts @@ -0,0 +1,890 @@ +import {ConfigFile} from '../../generator/types'; +export const config: ConfigFile = { + rootOptions: { + configFile: 'src/20240322_Multi_StablecoinIRUpdates/config.ts', + pools: [ + 'AaveV2Ethereum', + 'AaveV2Polygon', + 'AaveV2Avalanche', + 'AaveV3Ethereum', + 'AaveV3Polygon', + 'AaveV3Avalanche', + 'AaveV3Optimism', + 'AaveV3Arbitrum', + 'AaveV3Metis', + 'AaveV3Base', + 'AaveV3Gnosis', + 'AaveV3Scroll', + 'AaveV3BNB', + ], + title: 'Stablecoin IR Updates', + shortName: 'StablecoinIRUpdates', + date: '20240322', + author: 'Chaos Labs, ACI', + discussion: + 'https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864', + snapshot: + 'https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d', + }, + poolOptions: { + AaveV2Ethereum: { + configs: { + RATE_UPDATE_V2: [ + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + { + asset: 'DAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + { + asset: 'sUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + { + asset: 'GUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + { + asset: 'USDP', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + { + asset: 'FRAX', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + { + asset: 'LUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + }, + }, + ], + }, + cache: {blockNumber: 19490769}, + }, + AaveV2Polygon: { + configs: { + RATE_UPDATE_V2: [ + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'DAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 54954318}, + }, + AaveV2Avalanche: { + configs: { + RATE_UPDATE_V2: [ + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'DAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 43233162}, + }, + AaveV3Ethereum: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'DAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'LUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'FRAX', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'crvUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'PYUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 19490783}, + }, + AaveV3Polygon: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'DAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'EURS', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'jEUR', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'EURA', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDCn', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 54954371}, + }, + AaveV3Avalanche: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'DAIe', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDt', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'FRAX', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'MAI', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 43233259}, + }, + AaveV3Optimism: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'DAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'sUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'LUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'MAI', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDCn', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 117759733}, + }, + AaveV3Arbitrum: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'DAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'EURS', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'MAI', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'LUSD', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDCn', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'FRAX', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 193053541}, + }, + AaveV3Metis: {configs: {RATE_UPDATE_V3: []}, cache: {blockNumber: 15633620}}, + AaveV3Base: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'USDbC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 12164516}, + }, + AaveV3Gnosis: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'WXDAI', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'EURe', + params: { + optimalUtilizationRate: '', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 33059799}, + }, + AaveV3Scroll: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 4339602}, + }, + AaveV3BNB: { + configs: { + RATE_UPDATE_V3: [ + { + asset: 'USDC', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'USDT', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + { + asset: 'FDUSD', + params: { + optimalUtilizationRate: '92', + baseVariableBorrowRate: '', + variableRateSlope1: '12', + variableRateSlope2: '', + stableRateSlope1: '', + stableRateSlope2: '', + baseStableRateOffset: '', + stableRateExcessOffset: '', + optimalStableToTotalDebtRatio: '', + }, + }, + ], + }, + cache: {blockNumber: 37194140}, + }, + }, +}; From 026f79f9328f657dd96cb4fed668568f103d59e1 Mon Sep 17 00:00:00 2001 From: Marc Zeller Date: Tue, 26 Mar 2024 12:23:11 +0100 Subject: [PATCH 2/9] Update src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md Co-authored-by: sendra --- src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md index 39fd6627a..1623ceca7 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md +++ b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md @@ -15,7 +15,7 @@ To adapt to the current market conditions and optimize the utilization of stable This will help to maintain the competitiveness of Aave's stablecoin markets and ensure that the interest rates are aligned with the market conditions. -THis will also increase Aave DAO revenue by increasing the utilization of stablecoins and cost of borrowing them. +This will also increase Aave DAO revenue by increasing the utilization of stablecoins and cost of borrowing them. ## Specification From 2987988ea7decb3e38353d05e5d47086c4fe039d Mon Sep 17 00:00:00 2001 From: marczeller Date: Tue, 26 Mar 2024 11:40:59 +0000 Subject: [PATCH 3/9] fix optimal ratio issue --- ...Avalanche_StablecoinIRUpdates_20240322.sol | 12 ++-- ...2Ethereum_StablecoinIRUpdates_20240322.sol | 6 +- ...V2Polygon_StablecoinIRUpdates_20240322.sol | 6 +- ...3Arbitrum_StablecoinIRUpdates_20240322.sol | 8 +-- ...Avalanche_StablecoinIRUpdates_20240322.sol | 6 +- ...AaveV3BNB_StablecoinIRUpdates_20240322.sol | 10 +-- ...aveV3Base_StablecoinIRUpdates_20240322.sol | 4 +- ...eV3Gnosis_StablecoinIRUpdates_20240322.sol | 4 +- ...3Optimism_StablecoinIRUpdates_20240322.sol | 8 +-- ...V3Polygon_StablecoinIRUpdates_20240322.sol | 10 +-- ...eV3Scroll_StablecoinIRUpdates_20240322.sol | 3 +- .../StablecoinIRUpdates.md | 2 +- .../config.ts | 64 +++++++++---------- 13 files changed, 72 insertions(+), 71 deletions(-) diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol index 1b99a8454..f4e53b161 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol @@ -22,9 +22,9 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche IAaveV2ConfigEngine.RateStrategyUpdate[] memory rateStrategies = new IAaveV2ConfigEngine.RateStrategyUpdate[](3); rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ - asset: AaveV2AvalancheAssets.USDCe_UNDERLYING, + asset: AaveV2AvalancheAssets.USDC_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -33,9 +33,9 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche }) }); rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ - asset: AaveV2AvalancheAssets.USDTe_UNDERLYING, + asset: AaveV2AvalancheAssets.USDT_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -44,9 +44,9 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche }) }); rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ - asset: AaveV2AvalancheAssets.DAIe_UNDERLYING, + asset: AaveV2AvalancheAssets.DAI_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol index 699dcf235..2b3a4a1a0 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV2Ethereum_StablecoinIRUpdates_20240322 is AaveV2PayloadEthereum { rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2EthereumAssets.USDT_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -35,7 +35,7 @@ contract AaveV2Ethereum_StablecoinIRUpdates_20240322 is AaveV2PayloadEthereum { rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2EthereumAssets.DAI_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -57,7 +57,7 @@ contract AaveV2Ethereum_StablecoinIRUpdates_20240322 is AaveV2PayloadEthereum { rateStrategies[3] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2EthereumAssets.USDC_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol index ef4cc1e14..b7930ffa3 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV2Polygon_StablecoinIRUpdates_20240322 is AaveV2PayloadPolygon { rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2PolygonAssets.USDC_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -35,7 +35,7 @@ contract AaveV2Polygon_StablecoinIRUpdates_20240322 is AaveV2PayloadPolygon { rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2PolygonAssets.USDT_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -46,7 +46,7 @@ contract AaveV2Polygon_StablecoinIRUpdates_20240322 is AaveV2PayloadPolygon { rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2PolygonAssets.DAI_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol index f31f7215b..9f5e66d2d 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.DAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -108,7 +108,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.USDCn_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol index 4fe961337..c796d6cc8 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Avalanche_StablecoinIRUpdates_20240322 is AaveV3PayloadAvalanche rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3AvalancheAssets.DAIe_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Avalanche_StablecoinIRUpdates_20240322 is AaveV3PayloadAvalanche rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3AvalancheAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Avalanche_StablecoinIRUpdates_20240322 is AaveV3PayloadAvalanche rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3AvalancheAssets.USDt_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol index e1fd47285..ea1b07974 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3BNBAssets} from 'aave-address-book/AaveV3BNB.sol'; -import {AaveV3PayloadBnb} from 'aave-helpers/v3-config-engine/AaveV3PayloadBnb.sol'; +import {AaveV3PayloadBNB} from 'aave-helpers/v3-config-engine/AaveV3PayloadBNB.sol'; import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; @@ -12,7 +12,7 @@ import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrat * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 */ -contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { +contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBNB { function rateStrategiesUpdates() public pure @@ -24,7 +24,7 @@ contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BNBAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BNBAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BNBAssets.FDUSD_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol index 323d0fc21..4e473f765 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Base_StablecoinIRUpdates_20240322 is AaveV3PayloadBase { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BaseAssets.USDbC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Base_StablecoinIRUpdates_20240322 is AaveV3PayloadBase { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BaseAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol index 24dc841a5..7b097c425 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Gnosis_StablecoinIRUpdates_20240322 is AaveV3PayloadGnosis { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3GnosisAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Gnosis_StablecoinIRUpdates_20240322 is AaveV3PayloadGnosis { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3GnosisAssets.WXDAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol index 8df8add91..8636b8428 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.DAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -108,7 +108,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.USDCn_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol index 3a1ad7d79..712da6f2a 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.DAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -92,7 +92,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { }) }); rateStrategies[5] = IAaveV3ConfigEngine.RateStrategyUpdate({ - asset: 0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4, + asset: AaveV3PolygonAssets.EURA_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, @@ -108,7 +108,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.USDCn_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol index 9a17ceaa2..4634dc818 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol @@ -6,6 +6,7 @@ import {AaveV3PayloadScroll} from 'aave-helpers/v3-config-engine/AaveV3PayloadSc import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; + /** * @title Stablecoin IR Updates * @author Chaos Labs, ACI @@ -24,7 +25,7 @@ contract AaveV3Scroll_StablecoinIRUpdates_20240322 is AaveV3PayloadScroll { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ScrollAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md index 1623ceca7..6f06db15e 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md +++ b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates.md @@ -20,7 +20,7 @@ This will also increase Aave DAO revenue by increasing the utilization of stable ## Specification This AIP update the Slope1 parameters of Aave stablecoins to 12%. -It also increase the uOptimal parameter of DAI, USDC & USDT assets to 92%. +It also increase the uOptimal parameter of DAI, USDC & USDT assets to 92% on the ETH V3 Pool. ## References diff --git a/src/20240322_Multi_StablecoinIRUpdates/config.ts b/src/20240322_Multi_StablecoinIRUpdates/config.ts index 84978d4b0..895c6bdc7 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/config.ts +++ b/src/20240322_Multi_StablecoinIRUpdates/config.ts @@ -33,7 +33,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -44,7 +44,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -66,7 +66,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -128,7 +128,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -142,7 +142,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -156,7 +156,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -177,7 +177,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -191,7 +191,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -205,7 +205,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -331,7 +331,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -345,7 +345,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -359,7 +359,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -415,7 +415,7 @@ export const config: ConfigFile = { { asset: 'USDCn', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -436,7 +436,7 @@ export const config: ConfigFile = { { asset: 'DAIe', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -450,7 +450,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -464,7 +464,7 @@ export const config: ConfigFile = { { asset: 'USDt', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -513,7 +513,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -527,7 +527,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -541,7 +541,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -597,7 +597,7 @@ export const config: ConfigFile = { { asset: 'USDCn', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -618,7 +618,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -632,7 +632,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -646,7 +646,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -702,7 +702,7 @@ export const config: ConfigFile = { { asset: 'USDCn', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -738,7 +738,7 @@ export const config: ConfigFile = { { asset: 'USDbC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -752,7 +752,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -773,7 +773,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -787,7 +787,7 @@ export const config: ConfigFile = { { asset: 'WXDAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -822,7 +822,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -843,7 +843,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -857,7 +857,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -871,7 +871,7 @@ export const config: ConfigFile = { { asset: 'FDUSD', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', From ff1157ed25b83a5fcc73b41a55c7632d65383ebb Mon Sep 17 00:00:00 2001 From: marczeller Date: Wed, 27 Mar 2024 14:47:47 +0000 Subject: [PATCH 4/9] small updates --- ...Avalanche_StablecoinIRUpdates_20240322.sol | 6 +-- ...AaveV3BNB_StablecoinIRUpdates_20240322.sol | 4 +- ...veV3Metis_StablecoinIRUpdates_20240322.sol | 24 ----------- ...V3Metis_StablecoinIRUpdates_20240322.t.sol | 28 ------------- ...V3Polygon_StablecoinIRUpdates_20240322.sol | 2 +- .../StablecoinIRUpdates_20240322.s.sol | 42 +++---------------- .../config.ts | 2 - 7 files changed, 12 insertions(+), 96 deletions(-) delete mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol delete mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol index f4e53b161..3f3497209 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol @@ -22,7 +22,7 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche IAaveV2ConfigEngine.RateStrategyUpdate[] memory rateStrategies = new IAaveV2ConfigEngine.RateStrategyUpdate[](3); rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ - asset: AaveV2AvalancheAssets.USDC_UNDERLYING, + asset: AaveV2AvalancheAssets.USDCe_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, @@ -33,7 +33,7 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche }) }); rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ - asset: AaveV2AvalancheAssets.USDT_UNDERLYING, + asset: AaveV2AvalancheAssets.USDTe_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, @@ -44,7 +44,7 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche }) }); rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ - asset: AaveV2AvalancheAssets.DAI_UNDERLYING, + asset: AaveV2AvalancheAssets.DAIe_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol index ea1b07974..4e7898b42 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3BNBAssets} from 'aave-address-book/AaveV3BNB.sol'; -import {AaveV3PayloadBNB} from 'aave-helpers/v3-config-engine/AaveV3PayloadBNB.sol'; +import {AaveV3PayloadBnb} from 'aave-helpers/v3-config-engine/AaveV3PayloadBnb.sol'; import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; @@ -12,7 +12,7 @@ import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrat * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 */ -contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBNB { +contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { function rateStrategiesUpdates() public pure diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol deleted file mode 100644 index 226e10930..000000000 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import {AaveV3PayloadMetis} from 'aave-helpers/v3-config-engine/AaveV3PayloadMetis.sol'; -import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; -/** - * @title Stablecoin IR Updates - * @author Chaos Labs, ACI - * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d - * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 - */ -contract AaveV3Metis_StablecoinIRUpdates_20240322 is AaveV3PayloadMetis { - function rateStrategiesUpdates() - public - pure - override - returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) - { - IAaveV3ConfigEngine.RateStrategyUpdate[] - memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](0); - - return rateStrategies; - } -} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol deleted file mode 100644 index 8029b709e..000000000 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol'; - -import 'forge-std/Test.sol'; -import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; -import {AaveV3Metis_StablecoinIRUpdates_20240322} from './AaveV3Metis_StablecoinIRUpdates_20240322.sol'; - -/** - * @dev Test for AaveV3Metis_StablecoinIRUpdates_20240322 - * command: make test-contract filter=AaveV3Metis_StablecoinIRUpdates_20240322 - */ -contract AaveV3Metis_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { - AaveV3Metis_StablecoinIRUpdates_20240322 internal proposal; - - function setUp() public { - vm.createSelectFork(vm.rpcUrl('metis'), 15633620); - proposal = new AaveV3Metis_StablecoinIRUpdates_20240322(); - } - - /** - * @dev executes the generic test suite including e2e and config snapshots - */ - function test_defaultProposalExecution() public { - defaultTest('AaveV3Metis_StablecoinIRUpdates_20240322', AaveV3Metis.POOL, address(proposal)); - } -} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol index 712da6f2a..43dece0f6 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol @@ -92,7 +92,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { }) }); rateStrategies[5] = IAaveV3ConfigEngine.RateStrategyUpdate({ - asset: AaveV3PolygonAssets.EURA_UNDERLYING, + asset: 0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4, params: IV3RateStrategyFactory.RateStrategyParams({ optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol index dcb2ef6db..3e2e43d95 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol'; -import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, MetisScript, BaseScript, GnosisScript, ScrollScript, BNBScript} from 'aave-helpers/ScriptUtils.sol'; +import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, BaseScript, GnosisScript, ScrollScript, BNBScript} from 'aave-helpers/ScriptUtils.sol'; import {AaveV2Ethereum_StablecoinIRUpdates_20240322} from './AaveV2Ethereum_StablecoinIRUpdates_20240322.sol'; import {AaveV2Polygon_StablecoinIRUpdates_20240322} from './AaveV2Polygon_StablecoinIRUpdates_20240322.sol'; import {AaveV2Avalanche_StablecoinIRUpdates_20240322} from './AaveV2Avalanche_StablecoinIRUpdates_20240322.sol'; @@ -11,7 +11,6 @@ import {AaveV3Polygon_StablecoinIRUpdates_20240322} from './AaveV3Polygon_Stable import {AaveV3Avalanche_StablecoinIRUpdates_20240322} from './AaveV3Avalanche_StablecoinIRUpdates_20240322.sol'; import {AaveV3Optimism_StablecoinIRUpdates_20240322} from './AaveV3Optimism_StablecoinIRUpdates_20240322.sol'; import {AaveV3Arbitrum_StablecoinIRUpdates_20240322} from './AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol'; -import {AaveV3Metis_StablecoinIRUpdates_20240322} from './AaveV3Metis_StablecoinIRUpdates_20240322.sol'; import {AaveV3Base_StablecoinIRUpdates_20240322} from './AaveV3Base_StablecoinIRUpdates_20240322.sol'; import {AaveV3Gnosis_StablecoinIRUpdates_20240322} from './AaveV3Gnosis_StablecoinIRUpdates_20240322.sol'; import {AaveV3Scroll_StablecoinIRUpdates_20240322} from './AaveV3Scroll_StablecoinIRUpdates_20240322.sol'; @@ -139,28 +138,6 @@ contract DeployArbitrum is ArbitrumScript { } } -/** - * @dev Deploy Metis - * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployMetis chain=metis - * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/1088/run-latest.json - */ -contract DeployMetis is MetisScript { - function run() external broadcast { - // deploy payloads - address payload0 = GovV3Helpers.deployDeterministic( - type(AaveV3Metis_StablecoinIRUpdates_20240322).creationCode - ); - - // compose action - IPayloadsControllerCore.ExecutionAction[] - memory actions = new IPayloadsControllerCore.ExecutionAction[](1); - actions[0] = GovV3Helpers.buildAction(payload0); - - // register action at payloadsController - GovV3Helpers.createPayload(actions); - } -} - /** * @dev Deploy Base * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployBase chain=base @@ -256,7 +233,7 @@ contract DeployBNB is BNBScript { contract CreateProposal is EthereumScript { function run() external { // create payloads - PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](10); + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](9); // compose actions for validation IPayloadsControllerCore.ExecutionAction[] @@ -303,40 +280,33 @@ contract CreateProposal is EthereumScript { ); payloads[4] = GovV3Helpers.buildArbitrumPayload(vm, actionsArbitrum); - IPayloadsControllerCore.ExecutionAction[] - memory actionsMetis = new IPayloadsControllerCore.ExecutionAction[](1); - actionsMetis[0] = GovV3Helpers.buildAction( - type(AaveV3Metis_StablecoinIRUpdates_20240322).creationCode - ); - payloads[5] = GovV3Helpers.buildMetisPayload(vm, actionsMetis); - IPayloadsControllerCore.ExecutionAction[] memory actionsBase = new IPayloadsControllerCore.ExecutionAction[](1); actionsBase[0] = GovV3Helpers.buildAction( type(AaveV3Base_StablecoinIRUpdates_20240322).creationCode ); - payloads[6] = GovV3Helpers.buildBasePayload(vm, actionsBase); + payloads[5] = GovV3Helpers.buildBasePayload(vm, actionsBase); IPayloadsControllerCore.ExecutionAction[] memory actionsGnosis = new IPayloadsControllerCore.ExecutionAction[](1); actionsGnosis[0] = GovV3Helpers.buildAction( type(AaveV3Gnosis_StablecoinIRUpdates_20240322).creationCode ); - payloads[7] = GovV3Helpers.buildGnosisPayload(vm, actionsGnosis); + payloads[6] = GovV3Helpers.buildGnosisPayload(vm, actionsGnosis); IPayloadsControllerCore.ExecutionAction[] memory actionsScroll = new IPayloadsControllerCore.ExecutionAction[](1); actionsScroll[0] = GovV3Helpers.buildAction( type(AaveV3Scroll_StablecoinIRUpdates_20240322).creationCode ); - payloads[8] = GovV3Helpers.buildScrollPayload(vm, actionsScroll); + payloads[7] = GovV3Helpers.buildScrollPayload(vm, actionsScroll); IPayloadsControllerCore.ExecutionAction[] memory actionsBNB = new IPayloadsControllerCore.ExecutionAction[](1); actionsBNB[0] = GovV3Helpers.buildAction( type(AaveV3BNB_StablecoinIRUpdates_20240322).creationCode ); - payloads[9] = GovV3Helpers.buildBNBPayload(vm, actionsBNB); + payloads[8] = GovV3Helpers.buildBNBPayload(vm, actionsBNB); // create proposal vm.startBroadcast(); diff --git a/src/20240322_Multi_StablecoinIRUpdates/config.ts b/src/20240322_Multi_StablecoinIRUpdates/config.ts index 895c6bdc7..ad9ed2631 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/config.ts +++ b/src/20240322_Multi_StablecoinIRUpdates/config.ts @@ -11,7 +11,6 @@ export const config: ConfigFile = { 'AaveV3Avalanche', 'AaveV3Optimism', 'AaveV3Arbitrum', - 'AaveV3Metis', 'AaveV3Base', 'AaveV3Gnosis', 'AaveV3Scroll', @@ -731,7 +730,6 @@ export const config: ConfigFile = { }, cache: {blockNumber: 193053541}, }, - AaveV3Metis: {configs: {RATE_UPDATE_V3: []}, cache: {blockNumber: 15633620}}, AaveV3Base: { configs: { RATE_UPDATE_V3: [ From 9ebdea9bb1fd2e101c19d94382fa38e2bf67c5f7 Mon Sep 17 00:00:00 2001 From: marczeller Date: Thu, 28 Mar 2024 16:19:23 +0900 Subject: [PATCH 5/9] Tests run --- ...b03d6f60b9750d02983796033f924a6d918d81.svg | 1 + ...acc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg | 1 + ...a1ebb4deb19f90dccb93ec71cdbb222e6987e6.svg | 1 + ...ad2b84ed46bdafcda42d716eb6cd8f54bd190f.svg | 1 + ...d6d84168e4068a40122f647020c27ee3e36ed1.svg | 1 + ...854462871fe9c2159f93144e1db3723476a00a.svg | 1 + ...494af0da6f85cabec3c980938db6fcf8b6171f.svg | 1 + ...d85ef2aae018346bf4ae5d47f0f379ee834a81.svg | 1 + ...01fe056a30aeab26b9f5ef5c945c6afece8779.svg | 1 + ...633d9077d080479568e5342fc14c4507401d2f.svg | 1 + ...713b8fe82177533a16dd37178324b412bce932.svg | 1 + ...2488a1b7ee691f80006e3fec1034d79c974a26.svg | 1 + ...2730c9c60fb74762e8fc4694ca1350269e22c2.svg | 1 + ...7e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg | 1 + ...66c6dd3a1bea1498b3908b4be8b94c971a839d.svg | 1 + ...5d77509bc0670471c898f81b8247410aaa1df4.svg | 1 + ...b87e261ce14178066782517b478b20a088e4a8.svg | 1 + ...55117ceefbc6d6d810e0e5578a4a7e9f292aae.svg | 1 + ...3f96fab886586256a20855ce2dd7a1566267f0.svg | 1 + ...7fde975a340ec20a967916a1754eee7309d36f.svg | 1 + ...415d85cf3a2a1b266d8754e0257240f664acf4.svg | 1 + ...cf081bdcfeedc751f6987ba20c1f591aa3d9ae.svg | 1 + ...6afa53063e923502967d99a4191110108e0d3c.svg | 1 + .vscode/settings.json | 6 +- ...nche_StablecoinIRUpdates_20240322_after.md | 36 +--------- ...reum_StablecoinIRUpdates_20240322_after.md | 44 ++---------- ...ygon_StablecoinIRUpdates_20240322_after.md | 36 +--------- ...trum_StablecoinIRUpdates_20240322_after.md | 56 +++------------ ...nche_StablecoinIRUpdates_20240322_after.md | 52 +++----------- ...3BNB_StablecoinIRUpdates_20240322_after.md | 36 +--------- ...Base_StablecoinIRUpdates_20240322_after.md | 24 +------ ...osis_StablecoinIRUpdates_20240322_after.md | 24 +------ ...mism_StablecoinIRUpdates_20240322_after.md | 48 ++----------- ...roll_StablecoinIRUpdates_20240322_after.md | 43 +++++++++++ ...Avalanche_StablecoinIRUpdates_20240322.sol | 6 +- ...2Ethereum_StablecoinIRUpdates_20240322.sol | 6 +- ...V2Polygon_StablecoinIRUpdates_20240322.sol | 6 +- ...3Arbitrum_StablecoinIRUpdates_20240322.sol | 8 +-- ...Avalanche_StablecoinIRUpdates_20240322.sol | 6 +- ...AaveV3BNB_StablecoinIRUpdates_20240322.sol | 10 +-- ...aveV3Base_StablecoinIRUpdates_20240322.sol | 4 +- ...eV3Gnosis_StablecoinIRUpdates_20240322.sol | 4 +- ...veV3Metis_StablecoinIRUpdates_20240322.sol | 24 ------- ...V3Metis_StablecoinIRUpdates_20240322.t.sol | 28 -------- ...3Optimism_StablecoinIRUpdates_20240322.sol | 8 +-- ...V3Polygon_StablecoinIRUpdates_20240322.sol | 10 +-- ...eV3Scroll_StablecoinIRUpdates_20240322.sol | 2 +- .../StablecoinIRUpdates_20240322.s.sol | 42 ++--------- .../config.ts | 72 +++++++++---------- 49 files changed, 189 insertions(+), 475 deletions(-) create mode 100644 .assets/18b03d6f60b9750d02983796033f924a6d918d81.svg create mode 100644 .assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg create mode 100644 .assets/1ea1ebb4deb19f90dccb93ec71cdbb222e6987e6.svg create mode 100644 .assets/1ead2b84ed46bdafcda42d716eb6cd8f54bd190f.svg create mode 100644 .assets/2dd6d84168e4068a40122f647020c27ee3e36ed1.svg create mode 100644 .assets/36854462871fe9c2159f93144e1db3723476a00a.svg create mode 100644 .assets/41494af0da6f85cabec3c980938db6fcf8b6171f.svg create mode 100644 .assets/63d85ef2aae018346bf4ae5d47f0f379ee834a81.svg create mode 100644 .assets/6d01fe056a30aeab26b9f5ef5c945c6afece8779.svg create mode 100644 .assets/6f633d9077d080479568e5342fc14c4507401d2f.svg create mode 100644 .assets/71713b8fe82177533a16dd37178324b412bce932.svg create mode 100644 .assets/782488a1b7ee691f80006e3fec1034d79c974a26.svg create mode 100644 .assets/802730c9c60fb74762e8fc4694ca1350269e22c2.svg create mode 100644 .assets/857e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg create mode 100644 .assets/9566c6dd3a1bea1498b3908b4be8b94c971a839d.svg create mode 100644 .assets/ad5d77509bc0670471c898f81b8247410aaa1df4.svg create mode 100644 .assets/bab87e261ce14178066782517b478b20a088e4a8.svg create mode 100644 .assets/ef55117ceefbc6d6d810e0e5578a4a7e9f292aae.svg create mode 100644 .assets/f23f96fab886586256a20855ce2dd7a1566267f0.svg create mode 100644 .assets/f97fde975a340ec20a967916a1754eee7309d36f.svg create mode 100644 .assets/fa415d85cf3a2a1b266d8754e0257240f664acf4.svg create mode 100644 .assets/facf081bdcfeedc751f6987ba20c1f591aa3d9ae.svg create mode 100644 .assets/ff6afa53063e923502967d99a4191110108e0d3c.svg create mode 100644 diffs/AaveV3Scroll_StablecoinIRUpdates_20240322_before_AaveV3Scroll_StablecoinIRUpdates_20240322_after.md delete mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol delete mode 100644 src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol diff --git a/.assets/18b03d6f60b9750d02983796033f924a6d918d81.svg b/.assets/18b03d6f60b9750d02983796033f924a6d918d81.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/18b03d6f60b9750d02983796033f924a6d918d81.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg b/.assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg new file mode 100644 index 000000000..988e727ad --- /dev/null +++ b/.assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 80%uOptimal 80% \ No newline at end of file diff --git a/.assets/1ea1ebb4deb19f90dccb93ec71cdbb222e6987e6.svg b/.assets/1ea1ebb4deb19f90dccb93ec71cdbb222e6987e6.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/1ea1ebb4deb19f90dccb93ec71cdbb222e6987e6.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/1ead2b84ed46bdafcda42d716eb6cd8f54bd190f.svg b/.assets/1ead2b84ed46bdafcda42d716eb6cd8f54bd190f.svg new file mode 100644 index 000000000..a1ee31b76 --- /dev/null +++ b/.assets/1ead2b84ed46bdafcda42d716eb6cd8f54bd190f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/2dd6d84168e4068a40122f647020c27ee3e36ed1.svg b/.assets/2dd6d84168e4068a40122f647020c27ee3e36ed1.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/2dd6d84168e4068a40122f647020c27ee3e36ed1.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/36854462871fe9c2159f93144e1db3723476a00a.svg b/.assets/36854462871fe9c2159f93144e1db3723476a00a.svg new file mode 100644 index 000000000..a1ee31b76 --- /dev/null +++ b/.assets/36854462871fe9c2159f93144e1db3723476a00a.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/41494af0da6f85cabec3c980938db6fcf8b6171f.svg b/.assets/41494af0da6f85cabec3c980938db6fcf8b6171f.svg new file mode 100644 index 000000000..0694abc70 --- /dev/null +++ b/.assets/41494af0da6f85cabec3c980938db6fcf8b6171f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/63d85ef2aae018346bf4ae5d47f0f379ee834a81.svg b/.assets/63d85ef2aae018346bf4ae5d47f0f379ee834a81.svg new file mode 100644 index 000000000..a1ee31b76 --- /dev/null +++ b/.assets/63d85ef2aae018346bf4ae5d47f0f379ee834a81.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/6d01fe056a30aeab26b9f5ef5c945c6afece8779.svg b/.assets/6d01fe056a30aeab26b9f5ef5c945c6afece8779.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/6d01fe056a30aeab26b9f5ef5c945c6afece8779.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/6f633d9077d080479568e5342fc14c4507401d2f.svg b/.assets/6f633d9077d080479568e5342fc14c4507401d2f.svg new file mode 100644 index 000000000..2dded68e4 --- /dev/null +++ b/.assets/6f633d9077d080479568e5342fc14c4507401d2f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%150%uOptimal 77%uOptimal 77% \ No newline at end of file diff --git a/.assets/71713b8fe82177533a16dd37178324b412bce932.svg b/.assets/71713b8fe82177533a16dd37178324b412bce932.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/71713b8fe82177533a16dd37178324b412bce932.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/782488a1b7ee691f80006e3fec1034d79c974a26.svg b/.assets/782488a1b7ee691f80006e3fec1034d79c974a26.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/782488a1b7ee691f80006e3fec1034d79c974a26.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/802730c9c60fb74762e8fc4694ca1350269e22c2.svg b/.assets/802730c9c60fb74762e8fc4694ca1350269e22c2.svg new file mode 100644 index 000000000..a1ee31b76 --- /dev/null +++ b/.assets/802730c9c60fb74762e8fc4694ca1350269e22c2.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/857e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg b/.assets/857e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg new file mode 100644 index 000000000..988e727ad --- /dev/null +++ b/.assets/857e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 80%uOptimal 80% \ No newline at end of file diff --git a/.assets/9566c6dd3a1bea1498b3908b4be8b94c971a839d.svg b/.assets/9566c6dd3a1bea1498b3908b4be8b94c971a839d.svg new file mode 100644 index 000000000..4c7586db1 --- /dev/null +++ b/.assets/9566c6dd3a1bea1498b3908b4be8b94c971a839d.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 71%uOptimal 71% \ No newline at end of file diff --git a/.assets/ad5d77509bc0670471c898f81b8247410aaa1df4.svg b/.assets/ad5d77509bc0670471c898f81b8247410aaa1df4.svg new file mode 100644 index 000000000..150a67977 --- /dev/null +++ b/.assets/ad5d77509bc0670471c898f81b8247410aaa1df4.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%uOptimal 52%uOptimal 52% \ No newline at end of file diff --git a/.assets/bab87e261ce14178066782517b478b20a088e4a8.svg b/.assets/bab87e261ce14178066782517b478b20a088e4a8.svg new file mode 100644 index 000000000..0694abc70 --- /dev/null +++ b/.assets/bab87e261ce14178066782517b478b20a088e4a8.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/ef55117ceefbc6d6d810e0e5578a4a7e9f292aae.svg b/.assets/ef55117ceefbc6d6d810e0e5578a4a7e9f292aae.svg new file mode 100644 index 000000000..a1ee31b76 --- /dev/null +++ b/.assets/ef55117ceefbc6d6d810e0e5578a4a7e9f292aae.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/f23f96fab886586256a20855ce2dd7a1566267f0.svg b/.assets/f23f96fab886586256a20855ce2dd7a1566267f0.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/f23f96fab886586256a20855ce2dd7a1566267f0.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/f97fde975a340ec20a967916a1754eee7309d36f.svg b/.assets/f97fde975a340ec20a967916a1754eee7309d36f.svg new file mode 100644 index 000000000..a1ee31b76 --- /dev/null +++ b/.assets/f97fde975a340ec20a967916a1754eee7309d36f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/fa415d85cf3a2a1b266d8754e0257240f664acf4.svg b/.assets/fa415d85cf3a2a1b266d8754e0257240f664acf4.svg new file mode 100644 index 000000000..0694abc70 --- /dev/null +++ b/.assets/fa415d85cf3a2a1b266d8754e0257240f664acf4.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/facf081bdcfeedc751f6987ba20c1f591aa3d9ae.svg b/.assets/facf081bdcfeedc751f6987ba20c1f591aa3d9ae.svg new file mode 100644 index 000000000..ce9a14432 --- /dev/null +++ b/.assets/facf081bdcfeedc751f6987ba20c1f591aa3d9ae.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 80%uOptimal 80% \ No newline at end of file diff --git a/.assets/ff6afa53063e923502967d99a4191110108e0d3c.svg b/.assets/ff6afa53063e923502967d99a4191110108e0d3c.svg new file mode 100644 index 000000000..671189bf6 --- /dev/null +++ b/.assets/ff6afa53063e923502967d99a4191110108e0d3c.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%uOptimal 45%uOptimal 45% \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f08fc492..fa038decb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,11 +1,13 @@ { "cSpell.words": [ "Aave", + "Arbitrum", "bgdlabs", + "Borrowable", "Certora", - "Arbitrum", + "EURS", "Flashloanable", - "Borrowable", + "GUSD", "stablecoins", "usecase" ] diff --git a/diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md index 0df1b6acb..5521af413 100644 --- a/diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV2Avalanche_StablecoinIRUpdates_20240322_before_AaveV2Avalanche_StablecoinIRUpdates_20240322_after.md @@ -7,30 +7,24 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | [0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4](https://snowscan.xyz/address/0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4) | -| optimalUsageRatio | 80 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 20 % | 8 % | -| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg) | +| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/857e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg) | #### USDT.e ([0xc7198437980c041c805A1EDcbA50c1Ce5db95118](https://snowscan.xyz/address/0xc7198437980c041c805A1EDcbA50c1Ce5db95118)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | [0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4](https://snowscan.xyz/address/0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4) | -| optimalUsageRatio | 80 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 20 % | 8 % | -| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg) | +| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/857e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg) | #### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowscan.xyz/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | [0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4](https://snowscan.xyz/address/0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4) | -| optimalUsageRatio | 80 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 20 % | 8 % | -| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/c3b1571e65a2211f7a0d9bc13633a228b24e8311.svg) | +| interestRate | ![before](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | ![after](/.assets/857e4e2fbb6d6dc9100be9ba3b6b134c59ad974b.svg) | ## Raw diff @@ -62,14 +56,6 @@ "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" }, - "maxExcessUsageRatio": { - "from": "200000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "800000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -80,14 +66,6 @@ "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" }, - "maxExcessUsageRatio": { - "from": "200000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "800000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -98,14 +76,6 @@ "from": "0xa7C0f85c626761eDD0875549aD09E8d3f5446695", "to": "0xb1f13B58D6a3B1aEdB211Db58D9e42d28D09DbF4" }, - "maxExcessUsageRatio": { - "from": "200000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "800000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md index e3156d54a..3af4df096 100644 --- a/diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV2Ethereum_StablecoinIRUpdates_20240322_before_AaveV2Ethereum_StablecoinIRUpdates_20240322_after.md @@ -22,19 +22,17 @@ | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0xab7f8ca781C736EB624A9E321cd043F8E6292C96](https://etherscan.io/address/0xab7f8ca781C736EB624A9E321cd043F8E6292C96) | [0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b](https://etherscan.io/address/0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b) | +| interestRateStrategy | [0xab7f8ca781C736EB624A9E321cd043F8E6292C96](https://etherscan.io/address/0xab7f8ca781C736EB624A9E321cd043F8E6292C96) | [0x13828736b5e2CcF7811A2012ff9eB3e685a815b2](https://etherscan.io/address/0x13828736b5e2CcF7811A2012ff9eB3e685a815b2) | | variableRateSlope1 | 6 % | 12 % | -| interestRate | ![before](/.assets/162b720585663968afe7fc152291b9068b0e7e2a.svg) | ![after](/.assets/fee6cda63ae61ef578b581e2e081791148973f1c.svg) | +| interestRate | ![before](/.assets/162b720585663968afe7fc152291b9068b0e7e2a.svg) | ![after](/.assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg) | #### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xab7f8ca781C736EB624A9E321cd043F8E6292C96](https://etherscan.io/address/0xab7f8ca781C736EB624A9E321cd043F8E6292C96) | [0x13828736b5e2CcF7811A2012ff9eB3e685a815b2](https://etherscan.io/address/0x13828736b5e2CcF7811A2012ff9eB3e685a815b2) | -| optimalUsageRatio | 80 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 20 % | 8 % | -| interestRate | ![before](/.assets/162b720585663968afe7fc152291b9068b0e7e2a.svg) | ![after](/.assets/5509c191e41e4e07dfee46916075efd0ef72e575.svg) | +| interestRate | ![before](/.assets/162b720585663968afe7fc152291b9068b0e7e2a.svg) | ![after](/.assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg) | #### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e)) @@ -57,20 +55,16 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xb72F23adE9b9980c2E731Ca504105fC860643619](https://etherscan.io/address/0xb72F23adE9b9980c2E731Ca504105fC860643619) | [0x6959f4a661FDF1f3405CaDd56d0Af73a4b082Cb2](https://etherscan.io/address/0x6959f4a661FDF1f3405CaDd56d0Af73a4b082Cb2) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/3f55f2c949040cc13cee0d8a8329ed5bb280d3d3.svg) | ![after](/.assets/4973bf64778f4a833728753fe06f9a2fb49bb83a.svg) | +| interestRate | ![before](/.assets/3f55f2c949040cc13cee0d8a8329ed5bb280d3d3.svg) | ![after](/.assets/18b03d6f60b9750d02983796033f924a6d918d81.svg) | #### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99](https://etherscan.io/address/0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99) | [0x65A3De6d805c2A25A8E53e69da6A5a11848f25b3](https://etherscan.io/address/0x65A3De6d805c2A25A8E53e69da6A5a11848f25b3) | -| optimalUsageRatio | 80 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 20 % | 8 % | -| interestRate | ![before](/.assets/ff2b0e4a102e0124ddc975718bccf3d3a6c8dc9b.svg) | ![after](/.assets/bd3c2469546fb86c1fca744d14fda357059d800c.svg) | +| interestRate | ![before](/.assets/ff2b0e4a102e0124ddc975718bccf3d3a6c8dc9b.svg) | ![after](/.assets/facf081bdcfeedc751f6987ba20c1f591aa3d9ae.svg) | ## Raw diff @@ -92,7 +86,7 @@ "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { "interestRateStrategy": { "from": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96", - "to": "0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b" + "to": "0x13828736b5e2CcF7811A2012ff9eB3e685a815b2" } }, "0x6B175474E89094C44Da98b954EedeAC495271d0F": { @@ -150,7 +144,7 @@ "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { "address": { "from": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96", - "to": "0x45d54d48ca90C03Eb8352ADf228DeA4D1E0bc19b" + "to": "0x13828736b5e2CcF7811A2012ff9eB3e685a815b2" }, "variableRateSlope1": { "from": "60000000000000000000000000", @@ -162,14 +156,6 @@ "from": "0xab7f8ca781C736EB624A9E321cd043F8E6292C96", "to": "0x13828736b5e2CcF7811A2012ff9eB3e685a815b2" }, - "maxExcessUsageRatio": { - "from": "200000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "800000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -200,14 +186,6 @@ "from": "0xb72F23adE9b9980c2E731Ca504105fC860643619", "to": "0x6959f4a661FDF1f3405CaDd56d0Af73a4b082Cb2" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -218,14 +196,6 @@ "from": "0xF02EC9CA513ca505f0F5347E7D784Fa6165F8a99", "to": "0x65A3De6d805c2A25A8E53e69da6A5a11848f25b3" }, - "maxExcessUsageRatio": { - "from": "200000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "800000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md index a12761bbc..01a7d0ce3 100644 --- a/diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV2Polygon_StablecoinIRUpdates_20240322_before_AaveV2Polygon_StablecoinIRUpdates_20240322_after.md @@ -7,30 +7,24 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x2ad5a608a920E7061ccE38955C89A7c3F4c0aba7](https://polygonscan.com/address/0x2ad5a608a920E7061ccE38955C89A7c3F4c0aba7) | [0x40648f731198AD8ba5757a0bE5DaDaE034ffCf76](https://polygonscan.com/address/0x40648f731198AD8ba5757a0bE5DaDaE034ffCf76) | -| optimalUsageRatio | 77 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 23 % | 8 % | -| interestRate | ![before](/.assets/9fdcab76edd6660f763ee400838c013faa920e39.svg) | ![after](/.assets/b262ffb8e1738773ae155739d430077a79451a55.svg) | +| interestRate | ![before](/.assets/9fdcab76edd6660f763ee400838c013faa920e39.svg) | ![after](/.assets/6f633d9077d080479568e5342fc14c4507401d2f.svg) | #### DAI ([0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063](https://polygonscan.com/address/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xa966adA364E0491520a1235aAA9cf15E08c1Db05](https://polygonscan.com/address/0xa966adA364E0491520a1235aAA9cf15E08c1Db05) | [0xc4d392a7Bfe01E80A07272F5D8a34D49E9cce966](https://polygonscan.com/address/0xc4d392a7Bfe01E80A07272F5D8a34D49E9cce966) | -| optimalUsageRatio | 71 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 29 % | 8 % | -| interestRate | ![before](/.assets/b8393c809f8dfba89d4623793fa1650416ce5b8b.svg) | ![after](/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg) | +| interestRate | ![before](/.assets/b8393c809f8dfba89d4623793fa1650416ce5b8b.svg) | ![after](/.assets/9566c6dd3a1bea1498b3908b4be8b94c971a839d.svg) | #### USDT ([0xc2132D05D31c914a87C6611C10748AEb04B58e8F](https://polygonscan.com/address/0xc2132D05D31c914a87C6611C10748AEb04B58e8F)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x7892E4Db4C172e7Af389677c04c42eE3F8Fd5447](https://polygonscan.com/address/0x7892E4Db4C172e7Af389677c04c42eE3F8Fd5447) | [0x1233847129541c166ad585FaC0727CcBF6cf28eC](https://polygonscan.com/address/0x1233847129541c166ad585FaC0727CcBF6cf28eC) | -| optimalUsageRatio | 52 % | 92 % | | variableRateSlope1 | 6 % | 12 % | -| maxExcessUsageRatio | 48 % | 8 % | -| interestRate | ![before](/.assets/7b1a62c7a431a1f0b3ef48d0c3eb32be510352d0.svg) | ![after](/.assets/7298d269e8a08139605b2434246d84d4bb597ec1.svg) | +| interestRate | ![before](/.assets/7b1a62c7a431a1f0b3ef48d0c3eb32be510352d0.svg) | ![after](/.assets/ad5d77509bc0670471c898f81b8247410aaa1df4.svg) | ## Raw diff @@ -62,14 +56,6 @@ "from": "0x2ad5a608a920E7061ccE38955C89A7c3F4c0aba7", "to": "0x40648f731198AD8ba5757a0bE5DaDaE034ffCf76" }, - "maxExcessUsageRatio": { - "from": "230000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "770000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -80,14 +66,6 @@ "from": "0xa966adA364E0491520a1235aAA9cf15E08c1Db05", "to": "0xc4d392a7Bfe01E80A07272F5D8a34D49E9cce966" }, - "maxExcessUsageRatio": { - "from": "290000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "710000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -98,14 +76,6 @@ "from": "0x7892E4Db4C172e7Af389677c04c42eE3F8Fd5447", "to": "0x1233847129541c166ad585FaC0727CcBF6cf28eC" }, - "maxExcessUsageRatio": { - "from": "480000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "520000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md index 82851bf8e..d9c24a282 100644 --- a/diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV3Arbitrum_StablecoinIRUpdates_20240322_before_AaveV3Arbitrum_StablecoinIRUpdates_20240322_after.md @@ -6,10 +6,10 @@ | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://arbiscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0x48AF11111764E710fcDcE2750db848C63edab57B](https://arbiscan.io/address/0x48AF11111764E710fcDcE2750db848C63edab57B) | +| interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://arbiscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0xd56eE97960b1b2953e751151Fd84888cF3F3b521](https://arbiscan.io/address/0xd56eE97960b1b2953e751151Fd84888cF3F3b521) | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/b3320f3f9b903ba15a3afef70a06f01029f0ac26.svg) | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/802730c9c60fb74762e8fc4694ca1350269e22c2.svg) | #### MAI ([0x3F56e0c36d275367b8C502090EDF38289b3dEa0d](https://arbiscan.io/address/0x3F56e0c36d275367b8C502090EDF38289b3dEa0d)) @@ -43,44 +43,36 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://arbiscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0xd56eE97960b1b2953e751151Fd84888cF3F3b521](https://arbiscan.io/address/0xd56eE97960b1b2953e751151Fd84888cF3F3b521) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg) | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/802730c9c60fb74762e8fc4694ca1350269e22c2.svg) | #### USDC ([0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8](https://arbiscan.io/address/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1](https://arbiscan.io/address/0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1) | [0xa8C12113DB50549A1E36FD25982C88B69A0007E0](https://arbiscan.io/address/0xa8C12113DB50549A1E36FD25982C88B69A0007E0) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 7 % | 12 % | | baseStableBorrowRate | 8 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/7387a2f081b5c6aaea817fa3774fd472edbae392.svg) | ![after](/.assets/aa506162e1d3af58a3c1e97ae0dacf0152daf986.svg) | +| interestRate | ![before](/.assets/7387a2f081b5c6aaea817fa3774fd472edbae392.svg) | ![after](/.assets/bab87e261ce14178066782517b478b20a088e4a8.svg) | #### USDT ([0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9](https://arbiscan.io/address/0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://arbiscan.io/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | [0xd56eE97960b1b2953e751151Fd84888cF3F3b521](https://arbiscan.io/address/0xd56eE97960b1b2953e751151Fd84888cF3F3b521) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/9837d1a05e27d501bad08ceebf887c7a78cfecbf.svg) | +| interestRate | ![before](/.assets/471bf36a0704f0fb8e9dd43041d549e5e7198527.svg) | ![after](/.assets/802730c9c60fb74762e8fc4694ca1350269e22c2.svg) | #### USDC ([0xaf88d065e77c8cC2239327C5EDb3A432268e5831](https://arbiscan.io/address/0xaf88d065e77c8cC2239327C5EDb3A432268e5831)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x06B1Ec378618EA736a65395eA5CAB69A2410493B](https://arbiscan.io/address/0x06B1Ec378618EA736a65395eA5CAB69A2410493B) | [0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f](https://arbiscan.io/address/0xaEc90D2516c79F8Ae7165574a41EC4dF2631b36f) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/e18a415b118acfcc7864c3e185449673148c205b.svg) | ![after](/.assets/8222c8999b36025f914c1bb8a02deb5adfd09c70.svg) | +| interestRate | ![before](/.assets/e18a415b118acfcc7864c3e185449673148c205b.svg) | ![after](/.assets/1ea1ebb4deb19f90dccb93ec71cdbb222e6987e6.svg) | ## Raw diff @@ -90,7 +82,7 @@ "0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F": { "interestRateStrategy": { "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", - "to": "0x48AF11111764E710fcDcE2750db848C63edab57B" + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" } }, "0x3F56e0c36d275367b8C502090EDF38289b3dEa0d": { @@ -140,7 +132,7 @@ "0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F": { "address": { "from": "0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237", - "to": "0x48AF11111764E710fcDcE2750db848C63edab57B" + "to": "0xd56eE97960b1b2953e751151Fd84888cF3F3b521" }, "baseStableBorrowRate": { "from": "70000000000000000000000000", @@ -202,14 +194,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -224,14 +208,6 @@ "from": "80000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "70000000000000000000000000", "to": "120000000000000000000000000" @@ -246,14 +222,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -268,14 +236,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md index 62cbab4f1..46a221dfd 100644 --- a/diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV3Avalanche_StablecoinIRUpdates_20240322_before_AaveV3Avalanche_StablecoinIRUpdates_20240322_after.md @@ -6,52 +6,46 @@ | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0xD61ca03Eac0352090f45bE50403F7B17d20E11F2](https://snowscan.xyz/address/0xD61ca03Eac0352090f45bE50403F7B17d20E11F2) | [0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4](https://snowscan.xyz/address/0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4) | +| interestRateStrategy | [0xD61ca03Eac0352090f45bE50403F7B17d20E11F2](https://snowscan.xyz/address/0xD61ca03Eac0352090f45bE50403F7B17d20E11F2) | [0x049E42fe40368384d04bC10f8494Ea6FD164442a](https://snowscan.xyz/address/0x049E42fe40368384d04bC10f8494Ea6FD164442a) | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| interestRate | ![before](/.assets/f47524384ab6225b87778689e3c6d8287a38de2b.svg) | ![after](/.assets/e94f5c80815f2711734095b0eadafd2e3b09ef4b.svg) | +| interestRate | ![before](/.assets/f47524384ab6225b87778689e3c6d8287a38de2b.svg) | ![after](/.assets/ff6afa53063e923502967d99a4191110108e0d3c.svg) | #### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowscan.xyz/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | [0x41365f2aC2D19c3B4Bc691007d314aba80af3669](https://snowscan.xyz/address/0x41365f2aC2D19c3B4Bc691007d314aba80af3669) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/b0829ff1636279f61942026054feca6f0539bf99.svg) | +| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/1ead2b84ed46bdafcda42d716eb6cd8f54bd190f.svg) | #### USDC ([0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E](https://snowscan.xyz/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x3832311560d3B457E9cC35e5b8e06EB167D8c17D](https://snowscan.xyz/address/0x3832311560d3B457E9cC35e5b8e06EB167D8c17D) | [0xf895e42505E48E3aa83fa41994CBd8d1D006C42B](https://snowscan.xyz/address/0xf895e42505E48E3aa83fa41994CBd8d1D006C42B) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/5982fe691bdce75fb16101b23ef8815d0953520a.svg) | ![after](/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg) | +| interestRate | ![before](/.assets/5982fe691bdce75fb16101b23ef8815d0953520a.svg) | ![after](/.assets/6d01fe056a30aeab26b9f5ef5c945c6afece8779.svg) | #### FRAX ([0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64](https://snowscan.xyz/address/0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | [0x049E42fe40368384d04bC10f8494Ea6FD164442a](https://snowscan.xyz/address/0x049E42fe40368384d04bC10f8494Ea6FD164442a) | +| interestRateStrategy | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | [0x41365f2aC2D19c3B4Bc691007d314aba80af3669](https://snowscan.xyz/address/0x41365f2aC2D19c3B4Bc691007d314aba80af3669) | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/ee650e2faae2d5566154a1aff322be3b91a5cd57.svg) | +| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/1ead2b84ed46bdafcda42d716eb6cd8f54bd190f.svg) | #### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowscan.xyz/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | [0x41365f2aC2D19c3B4Bc691007d314aba80af3669](https://snowscan.xyz/address/0x41365f2aC2D19c3B4Bc691007d314aba80af3669) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/b0829ff1636279f61942026054feca6f0539bf99.svg) | +| interestRate | ![before](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | ![after](/.assets/1ead2b84ed46bdafcda42d716eb6cd8f54bd190f.svg) | ## Raw diff @@ -61,7 +55,7 @@ "0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b": { "interestRateStrategy": { "from": "0xD61ca03Eac0352090f45bE50403F7B17d20E11F2", - "to": "0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4" + "to": "0x049E42fe40368384d04bC10f8494Ea6FD164442a" } }, "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7": { @@ -79,7 +73,7 @@ "0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64": { "interestRateStrategy": { "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", - "to": "0x049E42fe40368384d04bC10f8494Ea6FD164442a" + "to": "0x41365f2aC2D19c3B4Bc691007d314aba80af3669" } }, "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70": { @@ -93,7 +87,7 @@ "0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b": { "address": { "from": "0xD61ca03Eac0352090f45bE50403F7B17d20E11F2", - "to": "0x5eE947d920643cCd3e2c54eAAd8F260FC8Add3b4" + "to": "0x049E42fe40368384d04bC10f8494Ea6FD164442a" }, "baseStableBorrowRate": { "from": "70000000000000000000000000", @@ -113,14 +107,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -135,14 +121,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -151,7 +129,7 @@ "0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64": { "address": { "from": "0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e", - "to": "0x049E42fe40368384d04bC10f8494Ea6FD164442a" + "to": "0x41365f2aC2D19c3B4Bc691007d314aba80af3669" }, "baseStableBorrowRate": { "from": "70000000000000000000000000", @@ -171,14 +149,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md index 44ef88932..18901eaff 100644 --- a/diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV3BNB_StablecoinIRUpdates_20240322_before_AaveV3BNB_StablecoinIRUpdates_20240322_after.md @@ -7,33 +7,27 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xA60d98d1e7C1b5C186c181152AE7412C38ABaC94](https://bscscan.com/address/0xA60d98d1e7C1b5C186c181152AE7412C38ABaC94) | [0x7aD646053aE2A184971dc952Cc680a5a5a0cFB8a](https://bscscan.com/address/0x7aD646053aE2A184971dc952Cc680a5a5a0cFB8a) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/9a2d8ed48d646e3c752ce9f8afc7d70cedc3acaf.svg) | ![after](/.assets/653491e29dfd224a05277bc1dd2ade1ec791ab18.svg) | +| interestRate | ![before](/.assets/9a2d8ed48d646e3c752ce9f8afc7d70cedc3acaf.svg) | ![after](/.assets/36854462871fe9c2159f93144e1db3723476a00a.svg) | #### USDC ([0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d](https://bscscan.com/address/0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x786c9fF899805fa0813C77CD3228C0e857664E78](https://bscscan.com/address/0x786c9fF899805fa0813C77CD3228C0e857664E78) | [0x0C8c4DbEB2dfA2a3770a54450E9937725D2d3D24](https://bscscan.com/address/0x0C8c4DbEB2dfA2a3770a54450E9937725D2d3D24) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/d96c11a19e37534df160331280d004c75b2fc23a.svg) | ![after](/.assets/7f413eb19d11867ae3d39aafa81ed63fb6ea66f6.svg) | +| interestRate | ![before](/.assets/d96c11a19e37534df160331280d004c75b2fc23a.svg) | ![after](/.assets/782488a1b7ee691f80006e3fec1034d79c974a26.svg) | #### FDUSD ([0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409](https://bscscan.com/address/0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xDFFD9CDd2eC42099D7086Ff76938C111022014D0](https://bscscan.com/address/0xDFFD9CDd2eC42099D7086Ff76938C111022014D0) | [0xBE6Af4cD3097424BcF5C5BeC3bcEc2017DBCaA86](https://bscscan.com/address/0xBE6Af4cD3097424BcF5C5BeC3bcEc2017DBCaA86) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 9 % | 15 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/911a3480b9f792f655a3ba52d4db6447055ff426.svg) | ![after](/.assets/a3ef299385ac1124f7cfc5453c8e559b4d9229d6.svg) | +| interestRate | ![before](/.assets/911a3480b9f792f655a3ba52d4db6447055ff426.svg) | ![after](/.assets/ef55117ceefbc6d6d810e0e5578a4a7e9f292aae.svg) | ## Raw diff @@ -69,14 +63,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -91,14 +77,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -113,14 +91,6 @@ "from": "90000000000000000000000000", "to": "150000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md index dbf2ff384..fe39af337 100644 --- a/diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV3Base_StablecoinIRUpdates_20240322_before_AaveV3Base_StablecoinIRUpdates_20240322_after.md @@ -7,22 +7,18 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x136848FdaedEB56245bE0e61E28A3CB8c0B45CaA](https://basescan.org/address/0x136848FdaedEB56245bE0e61E28A3CB8c0B45CaA) | [0xcbF65e0708961Da6Dd3F1A4e1cE17D97D1E8C29A](https://basescan.org/address/0xcbF65e0708961Da6Dd3F1A4e1cE17D97D1E8C29A) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 6 % | 12 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/44bd6c5258c27248fabcd09a99dec757454c2a7e.svg) | ![after](/.assets/59123f839c4a9ef1d4a2dab92414c51edb0dd440.svg) | +| interestRate | ![before](/.assets/44bd6c5258c27248fabcd09a99dec757454c2a7e.svg) | ![after](/.assets/2dd6d84168e4068a40122f647020c27ee3e36ed1.svg) | #### USDbC ([0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA](https://basescan.org/address/0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xDBea12F69D3Fcb4Be9FD14dd450AAe2B2a3d4de7](https://basescan.org/address/0xDBea12F69D3Fcb4Be9FD14dd450AAe2B2a3d4de7) | [0x64163263753A9610a391A5D0276ae94B0d42fB75](https://basescan.org/address/0x64163263753A9610a391A5D0276ae94B0d42fB75) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 7 % | 12 % | | baseStableBorrowRate | 8 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/d79d8eb0abd33ffb877708fe07140ce5c8503360.svg) | ![after](/.assets/36c73faed5aa696962f84de663a53270b225721c.svg) | +| interestRate | ![before](/.assets/d79d8eb0abd33ffb877708fe07140ce5c8503360.svg) | ![after](/.assets/41494af0da6f85cabec3c980938db6fcf8b6171f.svg) | ## Raw diff @@ -52,14 +48,6 @@ "from": "60000000000000000000000000", "to": "120000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -74,14 +62,6 @@ "from": "80000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "70000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md index eb794fc03..1567c0740 100644 --- a/diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV3Gnosis_StablecoinIRUpdates_20240322_before_AaveV3Gnosis_StablecoinIRUpdates_20240322_after.md @@ -7,11 +7,9 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xE74CD4ADF9103370144c327457bd294753E2E856](https://gnosisscan.io/address/0xE74CD4ADF9103370144c327457bd294753E2E856) | [0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e](https://gnosisscan.io/address/0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/f4b1b8f3a89d9f171e1de97ae32be0c4decc7291.svg) | ![after](/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg) | +| interestRate | ![before](/.assets/f4b1b8f3a89d9f171e1de97ae32be0c4decc7291.svg) | ![after](/.assets/63d85ef2aae018346bf4ae5d47f0f379ee834a81.svg) | #### EURe ([0xcB444e90D8198415266c6a2724b7900fb12FC56E](https://gnosisscan.io/address/0xcB444e90D8198415266c6a2724b7900fb12FC56E)) @@ -27,11 +25,9 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xE74CD4ADF9103370144c327457bd294753E2E856](https://gnosisscan.io/address/0xE74CD4ADF9103370144c327457bd294753E2E856) | [0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e](https://gnosisscan.io/address/0xBAbaB9202855F1c3FC943F0d032eAb4847A92D7e) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/f4b1b8f3a89d9f171e1de97ae32be0c4decc7291.svg) | ![after](/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg) | +| interestRate | ![before](/.assets/f4b1b8f3a89d9f171e1de97ae32be0c4decc7291.svg) | ![after](/.assets/63d85ef2aae018346bf4ae5d47f0f379ee834a81.svg) | ## Raw diff @@ -67,14 +63,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -103,14 +91,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md index 3c40d8160..c1f24be4b 100644 --- a/diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV3Optimism_StablecoinIRUpdates_20240322_before_AaveV3Optimism_StablecoinIRUpdates_20240322_after.md @@ -7,22 +7,18 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xb83d1B74e1D917d4a95C1e9392f6c639932F444C](https://optimistic.etherscan.io/address/0xb83d1B74e1D917d4a95C1e9392f6c639932F444C) | [0x2b5F720fBA11EeB5f2213FdF06Be9f7fB0ad1C48](https://optimistic.etherscan.io/address/0x2b5F720fBA11EeB5f2213FdF06Be9f7fB0ad1C48) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/674d17a62ee62a3043e08a86f4469e4fede11d3a.svg) | ![after](/.assets/162508ac28f40ef80345b6a915655e49cab178f5.svg) | +| interestRate | ![before](/.assets/674d17a62ee62a3043e08a86f4469e4fede11d3a.svg) | ![after](/.assets/f23f96fab886586256a20855ce2dd7a1566267f0.svg) | #### USDC ([0x7F5c764cBc14f9669B88837ca1490cCa17c31607](https://optimistic.etherscan.io/address/0x7F5c764cBc14f9669B88837ca1490cCa17c31607)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x769EbC5106bF09D9A665CCb691e1907612b57F16](https://optimistic.etherscan.io/address/0x769EbC5106bF09D9A665CCb691e1907612b57F16) | [0xdd5ee22CC6CbbB41518871D95558B648a3551b54](https://optimistic.etherscan.io/address/0xdd5ee22CC6CbbB41518871D95558B648a3551b54) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 7 % | 12 % | | baseStableBorrowRate | 8 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/30004f8456edabc18f0ed307b8a79983ab437388.svg) | ![after](/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg) | +| interestRate | ![before](/.assets/30004f8456edabc18f0ed307b8a79983ab437388.svg) | ![after](/.assets/fa415d85cf3a2a1b266d8754e0257240f664acf4.svg) | #### sUSD ([0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9](https://optimistic.etherscan.io/address/0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9)) @@ -38,22 +34,18 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xd5CA18a70189309664e34FB8150799ff13722308](https://optimistic.etherscan.io/address/0xd5CA18a70189309664e34FB8150799ff13722308) | [0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f](https://optimistic.etherscan.io/address/0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/19d720ba733a698f9e5c8714853876f8759c351e.svg) | ![after](/.assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg) | +| interestRate | ![before](/.assets/19d720ba733a698f9e5c8714853876f8759c351e.svg) | ![after](/.assets/f97fde975a340ec20a967916a1754eee7309d36f.svg) | #### DAI ([0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1](https://optimistic.etherscan.io/address/0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xd5CA18a70189309664e34FB8150799ff13722308](https://optimistic.etherscan.io/address/0xd5CA18a70189309664e34FB8150799ff13722308) | [0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f](https://optimistic.etherscan.io/address/0x16F9bBeE415e519F184Fe1c09d653C6567e4eb2f) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/19d720ba733a698f9e5c8714853876f8759c351e.svg) | ![after](/.assets/b2302f89365f5c7a915d77a2d396103d9d630a4e.svg) | +| interestRate | ![before](/.assets/19d720ba733a698f9e5c8714853876f8759c351e.svg) | ![after](/.assets/f97fde975a340ec20a967916a1754eee7309d36f.svg) | #### LUSD ([0xc40F949F8a4e094D1b49a23ea9241D289B7b2819](https://optimistic.etherscan.io/address/0xc40F949F8a4e094D1b49a23ea9241D289B7b2819)) @@ -131,14 +123,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -153,14 +137,6 @@ "from": "80000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "70000000000000000000000000", "to": "120000000000000000000000000" @@ -189,14 +165,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -211,14 +179,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" diff --git a/diffs/AaveV3Scroll_StablecoinIRUpdates_20240322_before_AaveV3Scroll_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Scroll_StablecoinIRUpdates_20240322_before_AaveV3Scroll_StablecoinIRUpdates_20240322_after.md new file mode 100644 index 000000000..a98b235fe --- /dev/null +++ b/diffs/AaveV3Scroll_StablecoinIRUpdates_20240322_before_AaveV3Scroll_StablecoinIRUpdates_20240322_after.md @@ -0,0 +1,43 @@ +## Reserve changes + +### Reserves altered + +#### USDC ([0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4](https://scrollscan.com/address/0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4)) + +| description | value before | value after | +| --- | --- | --- | +| interestRateStrategy | [0x9205B37978aC983A297dFB53b3f3D2cCC7DDDADa](https://scrollscan.com/address/0x9205B37978aC983A297dFB53b3f3D2cCC7DDDADa) | [0x39FA62444F4716f64253aEAc4509Ad32DE8D67B2](https://scrollscan.com/address/0x39FA62444F4716f64253aEAc4509Ad32DE8D67B2) | +| variableRateSlope1 | 6 % | 12 % | +| baseStableBorrowRate | 7 % | 13 % | +| interestRate | ![before](/.assets/3dae2b4f6923d155de327323b76840893e8fe017.svg) | ![after](/.assets/71713b8fe82177533a16dd37178324b412bce932.svg) | + +## Raw diff + +```json +{ + "reserves": { + "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4": { + "interestRateStrategy": { + "from": "0x9205B37978aC983A297dFB53b3f3D2cCC7DDDADa", + "to": "0x39FA62444F4716f64253aEAc4509Ad32DE8D67B2" + } + } + }, + "strategies": { + "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4": { + "address": { + "from": "0x9205B37978aC983A297dFB53b3f3D2cCC7DDDADa", + "to": "0x39FA62444F4716f64253aEAc4509Ad32DE8D67B2" + }, + "baseStableBorrowRate": { + "from": "70000000000000000000000000", + "to": "130000000000000000000000000" + }, + "variableRateSlope1": { + "from": "60000000000000000000000000", + "to": "120000000000000000000000000" + } + } + } +} +``` \ No newline at end of file diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol index 1b99a8454..3f3497209 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Avalanche_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2AvalancheAssets.USDCe_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -35,7 +35,7 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2AvalancheAssets.USDTe_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -46,7 +46,7 @@ contract AaveV2Avalanche_StablecoinIRUpdates_20240322 is AaveV2PayloadAvalanche rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2AvalancheAssets.DAIe_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol index 699dcf235..2b3a4a1a0 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Ethereum_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV2Ethereum_StablecoinIRUpdates_20240322 is AaveV2PayloadEthereum { rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2EthereumAssets.USDT_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -35,7 +35,7 @@ contract AaveV2Ethereum_StablecoinIRUpdates_20240322 is AaveV2PayloadEthereum { rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2EthereumAssets.DAI_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -57,7 +57,7 @@ contract AaveV2Ethereum_StablecoinIRUpdates_20240322 is AaveV2PayloadEthereum { rateStrategies[3] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2EthereumAssets.USDC_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol index ef4cc1e14..b7930ffa3 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV2Polygon_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV2Polygon_StablecoinIRUpdates_20240322 is AaveV2PayloadPolygon { rateStrategies[0] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2PolygonAssets.USDC_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -35,7 +35,7 @@ contract AaveV2Polygon_StablecoinIRUpdates_20240322 is AaveV2PayloadPolygon { rateStrategies[1] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2PolygonAssets.USDT_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -46,7 +46,7 @@ contract AaveV2Polygon_StablecoinIRUpdates_20240322 is AaveV2PayloadPolygon { rateStrategies[2] = IAaveV2ConfigEngine.RateStrategyUpdate({ asset: AaveV2PolygonAssets.DAI_UNDERLYING, params: IV2RateStrategyFactory.RateStrategyParams({ - optimalUtilizationRate: _bpsToRay(92_00), + optimalUtilizationRate: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol index f31f7215b..9f5e66d2d 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.DAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -108,7 +108,7 @@ contract AaveV3Arbitrum_StablecoinIRUpdates_20240322 is AaveV3PayloadArbitrum { rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ArbitrumAssets.USDCn_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol index 4fe961337..c796d6cc8 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Avalanche_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Avalanche_StablecoinIRUpdates_20240322 is AaveV3PayloadAvalanche rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3AvalancheAssets.DAIe_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Avalanche_StablecoinIRUpdates_20240322 is AaveV3PayloadAvalanche rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3AvalancheAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Avalanche_StablecoinIRUpdates_20240322 is AaveV3PayloadAvalanche rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3AvalancheAssets.USDt_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol index e1fd47285..ea1b07974 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3BNB_StablecoinIRUpdates_20240322.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3BNBAssets} from 'aave-address-book/AaveV3BNB.sol'; -import {AaveV3PayloadBnb} from 'aave-helpers/v3-config-engine/AaveV3PayloadBnb.sol'; +import {AaveV3PayloadBNB} from 'aave-helpers/v3-config-engine/AaveV3PayloadBNB.sol'; import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol'; import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol'; @@ -12,7 +12,7 @@ import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrat * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 */ -contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { +contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBNB { function rateStrategiesUpdates() public pure @@ -24,7 +24,7 @@ contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BNBAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BNBAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3BNB_StablecoinIRUpdates_20240322 is AaveV3PayloadBnb { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BNBAssets.FDUSD_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol index 323d0fc21..4e473f765 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Base_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Base_StablecoinIRUpdates_20240322 is AaveV3PayloadBase { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BaseAssets.USDbC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Base_StablecoinIRUpdates_20240322 is AaveV3PayloadBase { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3BaseAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol index 24dc841a5..7b097c425 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Gnosis_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Gnosis_StablecoinIRUpdates_20240322 is AaveV3PayloadGnosis { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3GnosisAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Gnosis_StablecoinIRUpdates_20240322 is AaveV3PayloadGnosis { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3GnosisAssets.WXDAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol deleted file mode 100644 index 226e10930..000000000 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import {AaveV3PayloadMetis} from 'aave-helpers/v3-config-engine/AaveV3PayloadMetis.sol'; -import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol'; -/** - * @title Stablecoin IR Updates - * @author Chaos Labs, ACI - * - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xe2dd228640c3cad93f5418c40c4b5743b3c6c85aa0aae9eee53cbdbca2ed5c2d - * - Discussion: https://governance.aave.com/t/arfc-stablecoin-ir-curve-amendment-on-aave-v2-and-v3/16864 - */ -contract AaveV3Metis_StablecoinIRUpdates_20240322 is AaveV3PayloadMetis { - function rateStrategiesUpdates() - public - pure - override - returns (IAaveV3ConfigEngine.RateStrategyUpdate[] memory) - { - IAaveV3ConfigEngine.RateStrategyUpdate[] - memory rateStrategies = new IAaveV3ConfigEngine.RateStrategyUpdate[](0); - - return rateStrategies; - } -} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol deleted file mode 100644 index 8029b709e..000000000 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Metis_StablecoinIRUpdates_20240322.t.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol'; - -import 'forge-std/Test.sol'; -import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol'; -import {AaveV3Metis_StablecoinIRUpdates_20240322} from './AaveV3Metis_StablecoinIRUpdates_20240322.sol'; - -/** - * @dev Test for AaveV3Metis_StablecoinIRUpdates_20240322 - * command: make test-contract filter=AaveV3Metis_StablecoinIRUpdates_20240322 - */ -contract AaveV3Metis_StablecoinIRUpdates_20240322_Test is ProtocolV3TestBase { - AaveV3Metis_StablecoinIRUpdates_20240322 internal proposal; - - function setUp() public { - vm.createSelectFork(vm.rpcUrl('metis'), 15633620); - proposal = new AaveV3Metis_StablecoinIRUpdates_20240322(); - } - - /** - * @dev executes the generic test suite including e2e and config snapshots - */ - function test_defaultProposalExecution() public { - defaultTest('AaveV3Metis_StablecoinIRUpdates_20240322', AaveV3Metis.POOL, address(proposal)); - } -} diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol index 8df8add91..8636b8428 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Optimism_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.DAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -108,7 +108,7 @@ contract AaveV3Optimism_StablecoinIRUpdates_20240322 is AaveV3PayloadOptimism { rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3OptimismAssets.USDCn_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol index 3a1ad7d79..712da6f2a 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Polygon_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.DAI_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -38,7 +38,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[1] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -52,7 +52,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[2] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.USDT_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, @@ -92,7 +92,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { }) }); rateStrategies[5] = IAaveV3ConfigEngine.RateStrategyUpdate({ - asset: 0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4, + asset: AaveV3PolygonAssets.EURA_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, @@ -108,7 +108,7 @@ contract AaveV3Polygon_StablecoinIRUpdates_20240322 is AaveV3PayloadPolygon { rateStrategies[6] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3PolygonAssets.USDCn_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol index 9a17ceaa2..ae6c1bc14 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/AaveV3Scroll_StablecoinIRUpdates_20240322.sol @@ -24,7 +24,7 @@ contract AaveV3Scroll_StablecoinIRUpdates_20240322 is AaveV3PayloadScroll { rateStrategies[0] = IAaveV3ConfigEngine.RateStrategyUpdate({ asset: AaveV3ScrollAssets.USDC_UNDERLYING, params: IV3RateStrategyFactory.RateStrategyParams({ - optimalUsageRatio: _bpsToRay(92_00), + optimalUsageRatio: EngineFlags.KEEP_CURRENT, baseVariableBorrowRate: EngineFlags.KEEP_CURRENT, variableRateSlope1: _bpsToRay(12_00), variableRateSlope2: EngineFlags.KEEP_CURRENT, diff --git a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol index dcb2ef6db..3e2e43d95 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol +++ b/src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol'; -import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, MetisScript, BaseScript, GnosisScript, ScrollScript, BNBScript} from 'aave-helpers/ScriptUtils.sol'; +import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, BaseScript, GnosisScript, ScrollScript, BNBScript} from 'aave-helpers/ScriptUtils.sol'; import {AaveV2Ethereum_StablecoinIRUpdates_20240322} from './AaveV2Ethereum_StablecoinIRUpdates_20240322.sol'; import {AaveV2Polygon_StablecoinIRUpdates_20240322} from './AaveV2Polygon_StablecoinIRUpdates_20240322.sol'; import {AaveV2Avalanche_StablecoinIRUpdates_20240322} from './AaveV2Avalanche_StablecoinIRUpdates_20240322.sol'; @@ -11,7 +11,6 @@ import {AaveV3Polygon_StablecoinIRUpdates_20240322} from './AaveV3Polygon_Stable import {AaveV3Avalanche_StablecoinIRUpdates_20240322} from './AaveV3Avalanche_StablecoinIRUpdates_20240322.sol'; import {AaveV3Optimism_StablecoinIRUpdates_20240322} from './AaveV3Optimism_StablecoinIRUpdates_20240322.sol'; import {AaveV3Arbitrum_StablecoinIRUpdates_20240322} from './AaveV3Arbitrum_StablecoinIRUpdates_20240322.sol'; -import {AaveV3Metis_StablecoinIRUpdates_20240322} from './AaveV3Metis_StablecoinIRUpdates_20240322.sol'; import {AaveV3Base_StablecoinIRUpdates_20240322} from './AaveV3Base_StablecoinIRUpdates_20240322.sol'; import {AaveV3Gnosis_StablecoinIRUpdates_20240322} from './AaveV3Gnosis_StablecoinIRUpdates_20240322.sol'; import {AaveV3Scroll_StablecoinIRUpdates_20240322} from './AaveV3Scroll_StablecoinIRUpdates_20240322.sol'; @@ -139,28 +138,6 @@ contract DeployArbitrum is ArbitrumScript { } } -/** - * @dev Deploy Metis - * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployMetis chain=metis - * verify-command: npx catapulta-verify -b broadcast/StablecoinIRUpdates_20240322.s.sol/1088/run-latest.json - */ -contract DeployMetis is MetisScript { - function run() external broadcast { - // deploy payloads - address payload0 = GovV3Helpers.deployDeterministic( - type(AaveV3Metis_StablecoinIRUpdates_20240322).creationCode - ); - - // compose action - IPayloadsControllerCore.ExecutionAction[] - memory actions = new IPayloadsControllerCore.ExecutionAction[](1); - actions[0] = GovV3Helpers.buildAction(payload0); - - // register action at payloadsController - GovV3Helpers.createPayload(actions); - } -} - /** * @dev Deploy Base * deploy-command: make deploy-ledger contract=src/20240322_Multi_StablecoinIRUpdates/StablecoinIRUpdates_20240322.s.sol:DeployBase chain=base @@ -256,7 +233,7 @@ contract DeployBNB is BNBScript { contract CreateProposal is EthereumScript { function run() external { // create payloads - PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](10); + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](9); // compose actions for validation IPayloadsControllerCore.ExecutionAction[] @@ -303,40 +280,33 @@ contract CreateProposal is EthereumScript { ); payloads[4] = GovV3Helpers.buildArbitrumPayload(vm, actionsArbitrum); - IPayloadsControllerCore.ExecutionAction[] - memory actionsMetis = new IPayloadsControllerCore.ExecutionAction[](1); - actionsMetis[0] = GovV3Helpers.buildAction( - type(AaveV3Metis_StablecoinIRUpdates_20240322).creationCode - ); - payloads[5] = GovV3Helpers.buildMetisPayload(vm, actionsMetis); - IPayloadsControllerCore.ExecutionAction[] memory actionsBase = new IPayloadsControllerCore.ExecutionAction[](1); actionsBase[0] = GovV3Helpers.buildAction( type(AaveV3Base_StablecoinIRUpdates_20240322).creationCode ); - payloads[6] = GovV3Helpers.buildBasePayload(vm, actionsBase); + payloads[5] = GovV3Helpers.buildBasePayload(vm, actionsBase); IPayloadsControllerCore.ExecutionAction[] memory actionsGnosis = new IPayloadsControllerCore.ExecutionAction[](1); actionsGnosis[0] = GovV3Helpers.buildAction( type(AaveV3Gnosis_StablecoinIRUpdates_20240322).creationCode ); - payloads[7] = GovV3Helpers.buildGnosisPayload(vm, actionsGnosis); + payloads[6] = GovV3Helpers.buildGnosisPayload(vm, actionsGnosis); IPayloadsControllerCore.ExecutionAction[] memory actionsScroll = new IPayloadsControllerCore.ExecutionAction[](1); actionsScroll[0] = GovV3Helpers.buildAction( type(AaveV3Scroll_StablecoinIRUpdates_20240322).creationCode ); - payloads[8] = GovV3Helpers.buildScrollPayload(vm, actionsScroll); + payloads[7] = GovV3Helpers.buildScrollPayload(vm, actionsScroll); IPayloadsControllerCore.ExecutionAction[] memory actionsBNB = new IPayloadsControllerCore.ExecutionAction[](1); actionsBNB[0] = GovV3Helpers.buildAction( type(AaveV3BNB_StablecoinIRUpdates_20240322).creationCode ); - payloads[9] = GovV3Helpers.buildBNBPayload(vm, actionsBNB); + payloads[8] = GovV3Helpers.buildBNBPayload(vm, actionsBNB); // create proposal vm.startBroadcast(); diff --git a/src/20240322_Multi_StablecoinIRUpdates/config.ts b/src/20240322_Multi_StablecoinIRUpdates/config.ts index 84978d4b0..f373243e9 100644 --- a/src/20240322_Multi_StablecoinIRUpdates/config.ts +++ b/src/20240322_Multi_StablecoinIRUpdates/config.ts @@ -11,7 +11,6 @@ export const config: ConfigFile = { 'AaveV3Avalanche', 'AaveV3Optimism', 'AaveV3Arbitrum', - 'AaveV3Metis', 'AaveV3Base', 'AaveV3Gnosis', 'AaveV3Scroll', @@ -33,7 +32,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -44,7 +43,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -66,7 +65,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -128,7 +127,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -142,7 +141,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -156,7 +155,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -175,9 +174,9 @@ export const config: ConfigFile = { configs: { RATE_UPDATE_V2: [ { - asset: 'USDC', + asset: 'USDCe', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -189,9 +188,9 @@ export const config: ConfigFile = { }, }, { - asset: 'USDT', + asset: 'USDTe', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -203,9 +202,9 @@ export const config: ConfigFile = { }, }, { - asset: 'DAI', + asset: 'DAIe', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -331,7 +330,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -345,7 +344,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -359,7 +358,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -415,7 +414,7 @@ export const config: ConfigFile = { { asset: 'USDCn', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -436,7 +435,7 @@ export const config: ConfigFile = { { asset: 'DAIe', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -450,7 +449,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -464,7 +463,7 @@ export const config: ConfigFile = { { asset: 'USDt', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -513,7 +512,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -527,7 +526,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -541,7 +540,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -597,7 +596,7 @@ export const config: ConfigFile = { { asset: 'USDCn', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -618,7 +617,7 @@ export const config: ConfigFile = { { asset: 'DAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -632,7 +631,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -646,7 +645,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -702,7 +701,7 @@ export const config: ConfigFile = { { asset: 'USDCn', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -731,14 +730,13 @@ export const config: ConfigFile = { }, cache: {blockNumber: 193053541}, }, - AaveV3Metis: {configs: {RATE_UPDATE_V3: []}, cache: {blockNumber: 15633620}}, AaveV3Base: { configs: { RATE_UPDATE_V3: [ { asset: 'USDbC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -752,7 +750,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -773,7 +771,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -787,7 +785,7 @@ export const config: ConfigFile = { { asset: 'WXDAI', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -822,7 +820,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -843,7 +841,7 @@ export const config: ConfigFile = { { asset: 'USDC', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -857,7 +855,7 @@ export const config: ConfigFile = { { asset: 'USDT', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', @@ -871,7 +869,7 @@ export const config: ConfigFile = { { asset: 'FDUSD', params: { - optimalUtilizationRate: '92', + optimalUtilizationRate: '', baseVariableBorrowRate: '', variableRateSlope1: '12', variableRateSlope2: '', From 222de3b978a40c92863c04cbda9b7ded356fe0bb Mon Sep 17 00:00:00 2001 From: marczeller Date: Fri, 29 Mar 2024 10:11:32 +0900 Subject: [PATCH 6/9] regen assets & tests --- ...014f6d7e563bf95e08a254d6612c2a1779bb37.svg | 1 + ...9bca66f2e25caf04da3e3bc7e387fbf24599b2.svg | 1 + ...5175152675989ae95d4f77c383a7d32c223e20.svg | 1 + ...ygon_StablecoinIRUpdates_20240322_after.md | 48 ++----------------- 4 files changed, 7 insertions(+), 44 deletions(-) create mode 100644 .assets/03014f6d7e563bf95e08a254d6612c2a1779bb37.svg create mode 100644 .assets/249bca66f2e25caf04da3e3bc7e387fbf24599b2.svg create mode 100644 .assets/815175152675989ae95d4f77c383a7d32c223e20.svg diff --git a/.assets/03014f6d7e563bf95e08a254d6612c2a1779bb37.svg b/.assets/03014f6d7e563bf95e08a254d6612c2a1779bb37.svg new file mode 100644 index 000000000..6fedc0f3b --- /dev/null +++ b/.assets/03014f6d7e563bf95e08a254d6612c2a1779bb37.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/249bca66f2e25caf04da3e3bc7e387fbf24599b2.svg b/.assets/249bca66f2e25caf04da3e3bc7e387fbf24599b2.svg new file mode 100644 index 000000000..a1ee31b76 --- /dev/null +++ b/.assets/249bca66f2e25caf04da3e3bc7e387fbf24599b2.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/.assets/815175152675989ae95d4f77c383a7d32c223e20.svg b/.assets/815175152675989ae95d4f77c383a7d32c223e20.svg new file mode 100644 index 000000000..0694abc70 --- /dev/null +++ b/.assets/815175152675989ae95d4f77c383a7d32c223e20.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 90%uOptimal 90% \ No newline at end of file diff --git a/diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md b/diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md index 4ee64515e..a67f78a0f 100644 --- a/diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md +++ b/diffs/AaveV3Polygon_StablecoinIRUpdates_20240322_before_AaveV3Polygon_StablecoinIRUpdates_20240322_after.md @@ -7,22 +7,18 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x588b62C84533232E3A881e096E5D639Fa754F093](https://polygonscan.com/address/0x588b62C84533232E3A881e096E5D639Fa754F093) | [0xc77576b02D74BBF9CdC26F3B86FD09d134416df2](https://polygonscan.com/address/0xc77576b02D74BBF9CdC26F3B86FD09d134416df2) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 7 % | 12 % | | baseStableBorrowRate | 8 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/8dca23d950316194bae32289f94123f87abf1dcf.svg) | ![after](/.assets/730507b18b304c390bc2dc9b1602d2b79381b52b.svg) | +| interestRate | ![before](/.assets/8dca23d950316194bae32289f94123f87abf1dcf.svg) | ![after](/.assets/815175152675989ae95d4f77c383a7d32c223e20.svg) | #### USDC ([0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359](https://polygonscan.com/address/0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359)) | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1](https://polygonscan.com/address/0x642a8DAcC59b73491Dcaa3BCeF046D660901fCc1) | [0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514](https://polygonscan.com/address/0xAC4f9019608f3A359Ba6a576DC4deC9561D2e514) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 6 % | 12 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/72490a8918cee95a56717e7d3753cce611ac1805.svg) | ![after](/.assets/cf73103fe1d4acaf6476fbbdd55f6dd32d91e9cb.svg) | +| interestRate | ![before](/.assets/72490a8918cee95a56717e7d3753cce611ac1805.svg) | ![after](/.assets/03014f6d7e563bf95e08a254d6612c2a1779bb37.svg) | #### jEUR ([0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c](https://polygonscan.com/address/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c)) @@ -38,11 +34,9 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477](https://polygonscan.com/address/0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477) | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://polygonscan.com/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/9b7be685a38f661247e12c171aa7c6e605f7a547.svg) | ![after](/.assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg) | +| interestRate | ![before](/.assets/9b7be685a38f661247e12c171aa7c6e605f7a547.svg) | ![after](/.assets/249bca66f2e25caf04da3e3bc7e387fbf24599b2.svg) | #### EURA ([0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4](https://polygonscan.com/address/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4)) @@ -67,11 +61,9 @@ | description | value before | value after | | --- | --- | --- | | interestRateStrategy | [0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477](https://polygonscan.com/address/0xaDbdb3d6B51151e4CDF32e4050B6F03D2bfB6477) | [0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237](https://polygonscan.com/address/0x2402C25e7E45b1466c53Ef7766AAd878A4CbC237) | -| optimalUsageRatio | 90 % | 92 % | | variableRateSlope1 | 6 % | 12 % | | baseStableBorrowRate | 7 % | 13 % | -| maxExcessUsageRatio | 10 % | 8 % | -| interestRate | ![before](/.assets/9b7be685a38f661247e12c171aa7c6e605f7a547.svg) | ![after](/.assets/e92d58267609e07263b6342ae7c2e05fdc7e84b7.svg) | +| interestRate | ![before](/.assets/9b7be685a38f661247e12c171aa7c6e605f7a547.svg) | ![after](/.assets/249bca66f2e25caf04da3e3bc7e387fbf24599b2.svg) | ## Raw diff @@ -131,14 +123,6 @@ "from": "80000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "70000000000000000000000000", "to": "120000000000000000000000000" @@ -153,14 +137,6 @@ "from": "60000000000000000000000000", "to": "120000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -189,14 +165,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" @@ -239,14 +207,6 @@ "from": "70000000000000000000000000", "to": "130000000000000000000000000" }, - "maxExcessUsageRatio": { - "from": "100000000000000000000000000", - "to": "80000000000000000000000000" - }, - "optimalUsageRatio": { - "from": "900000000000000000000000000", - "to": "920000000000000000000000000" - }, "variableRateSlope1": { "from": "60000000000000000000000000", "to": "120000000000000000000000000" From 007685408ce701f1b967d119c4ec8fbb0883c0e1 Mon Sep 17 00:00:00 2001 From: marczeller Date: Wed, 3 Apr 2024 23:26:23 +0200 Subject: [PATCH 7/9] rm assets --- .assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg | 3 --- .assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg | 3 --- .assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg | 3 --- .assets/1a2d00464fd0707711f315bbce0579c505aef532.svg | 1 - .assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg | 1 - .assets/1b4c8cf52b3cfc10e92a52e04f08a3ec2809eb88.svg | 1 - .assets/1baf85e415bd720bc42ec928d822cffbd4236d90.svg | 1 - .assets/1d6c5171b782bed1b660027d0e32763551b52b0b.svg | 1 - .assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg | 3 --- .assets/2b34895d95baff287d2b0c64761d38faae833777.svg | 3 --- .assets/36c73faed5aa696962f84de663a53270b225721c.svg | 3 --- .assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg | 3 --- 12 files changed, 26 deletions(-) delete mode 100644 .assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg delete mode 100644 .assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg delete mode 100644 .assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg delete mode 100644 .assets/1a2d00464fd0707711f315bbce0579c505aef532.svg delete mode 100644 .assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg delete mode 100644 .assets/1b4c8cf52b3cfc10e92a52e04f08a3ec2809eb88.svg delete mode 100644 .assets/1baf85e415bd720bc42ec928d822cffbd4236d90.svg delete mode 100644 .assets/1d6c5171b782bed1b660027d0e32763551b52b0b.svg delete mode 100644 .assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg delete mode 100644 .assets/2b34895d95baff287d2b0c64761d38faae833777.svg delete mode 100644 .assets/36c73faed5aa696962f84de663a53270b225721c.svg delete mode 100644 .assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg diff --git a/.assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg b/.assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/0bc8f7175811834d25e2182574a0dfeb42e8738c.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND diff --git a/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg b/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/0d46815e8ed0eae8be98be6dac2c0a98c0d89e11.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND diff --git a/.assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg b/.assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/0ec2865085d427ed04e5a2f5d75e7885ac1517e2.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND diff --git a/.assets/1a2d00464fd0707711f315bbce0579c505aef532.svg b/.assets/1a2d00464fd0707711f315bbce0579c505aef532.svg deleted file mode 100644 index a64e70f4b..000000000 --- a/.assets/1a2d00464fd0707711f315bbce0579c505aef532.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/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg b/.assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg deleted file mode 100644 index 988e727ad..000000000 --- a/.assets/1aacc27adfcd690db39f0bb5d47ab2aca7da4b9f.svg +++ /dev/null @@ -1 +0,0 @@ - Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%uOptimal 80%uOptimal 80% \ No newline at end of file diff --git a/.assets/1b4c8cf52b3cfc10e92a52e04f08a3ec2809eb88.svg b/.assets/1b4c8cf52b3cfc10e92a52e04f08a3ec2809eb88.svg deleted file mode 100644 index 92d00d0ae..000000000 --- a/.assets/1b4c8cf52b3cfc10e92a52e04f08a3ec2809eb88.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/1baf85e415bd720bc42ec928d822cffbd4236d90.svg b/.assets/1baf85e415bd720bc42ec928d822cffbd4236d90.svg deleted file mode 100644 index abbc7c84e..000000000 --- a/.assets/1baf85e415bd720bc42ec928d822cffbd4236d90.svg +++ /dev/null @@ -1 +0,0 @@ - Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 90%Optimal 90% \ No newline at end of file diff --git a/.assets/1d6c5171b782bed1b660027d0e32763551b52b0b.svg b/.assets/1d6c5171b782bed1b660027d0e32763551b52b0b.svg deleted file mode 100644 index f9b4dae23..000000000 --- a/.assets/1d6c5171b782bed1b660027d0e32763551b52b0b.svg +++ /dev/null @@ -1 +0,0 @@ - Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%100%200%Optimal 40%Optimal 40% \ No newline at end of file diff --git a/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg b/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/20d38ed78826631a486f7b9b3a8fd114543fa710.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND diff --git a/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg b/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/2b34895d95baff287d2b0c64761d38faae833777.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND diff --git a/.assets/36c73faed5aa696962f84de663a53270b225721c.svg b/.assets/36c73faed5aa696962f84de663a53270b225721c.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/36c73faed5aa696962f84de663a53270b225721c.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND diff --git a/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg b/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/44d599c03feefc2020867d5fbb3089dcd86edb84.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND From 8fb990a116709d8bc00cf4225651feb9facbac91 Mon Sep 17 00:00:00 2001 From: Marc Zeller Date: Wed, 3 Apr 2024 23:30:29 +0200 Subject: [PATCH 8/9] Delete .assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg --- .assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg diff --git a/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg b/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/16c880792461d9bda0eb72ab837e4fddcecc96bc.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND From c0a1512c6e3f16c97c21d01dfd144d381f3667b3 Mon Sep 17 00:00:00 2001 From: Marc Zeller Date: Wed, 3 Apr 2024 23:31:02 +0200 Subject: [PATCH 9/9] Delete .assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg --- .assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg diff --git a/.assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg b/.assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg deleted file mode 100644 index dda81d20f..000000000 --- a/.assets/120b3346a2da5456c1e5eeb7876b093ce7188e35.svg +++ /dev/null @@ -1,3 +0,0 @@ -The deployment could not be found on Vercel. - -DEPLOYMENT_NOT_FOUND