diff --git a/.assets/4986872b45a9cd8b31a38113050f5481468cb333.svg b/.assets/4986872b45a9cd8b31a38113050f5481468cb333.svg
new file mode 100644
index 000000000..85a982918
--- /dev/null
+++ b/.assets/4986872b45a9cd8b31a38113050f5481468cb333.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.assets/ca95ddfd1ad1b620d55be691c73b3c69ffb3f3f0.svg b/.assets/ca95ddfd1ad1b620d55be691c73b3c69ffb3f3f0.svg
new file mode 100644
index 000000000..e66de2390
--- /dev/null
+++ b/.assets/ca95ddfd1ad1b620d55be691c73b3c69ffb3f3f0.svg
@@ -0,0 +1 @@
+ Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%50%100%Optimal 80%Optimal 80%
\ No newline at end of file
diff --git a/diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md
index c83896886..739feda9a 100644
--- a/diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md
+++ b/diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md
@@ -10,6 +10,14 @@
| oracleDescription | FRAX / USD | Capped FRAX/USD |
+#### MAI ([0x3F56e0c36d275367b8C502090EDF38289b3dEa0d](https://arbiscan.io/address/0x3F56e0c36d275367b8C502090EDF38289b3dEa0d))
+
+| description | value before | value after |
+| --- | --- | --- |
+| oracle | [0x59644ec622243878d1464A9504F9e9a31294128a](https://arbiscan.io/address/0x59644ec622243878d1464A9504F9e9a31294128a) | [0x7a7cE08a1057723CCEDeA2462407427Ae33FFEb2](https://arbiscan.io/address/0x7a7cE08a1057723CCEDeA2462407427Ae33FFEb2) |
+| oracleDescription | MIMATIC / USD | Capped MAI/USD |
+
+
#### wstETH ([0x5979D7b546E38E414F7E9822514be443A4800529](https://arbiscan.io/address/0x5979D7b546E38E414F7E9822514be443A4800529))
| description | value before | value after |
@@ -81,6 +89,16 @@
"to": "Capped FRAX/USD"
}
},
+ "0x3F56e0c36d275367b8C502090EDF38289b3dEa0d": {
+ "oracle": {
+ "from": "0x59644ec622243878d1464A9504F9e9a31294128a",
+ "to": "0x7a7cE08a1057723CCEDeA2462407427Ae33FFEb2"
+ },
+ "oracleDescription": {
+ "from": "MIMATIC / USD",
+ "to": "Capped MAI/USD"
+ }
+ },
"0x5979D7b546E38E414F7E9822514be443A4800529": {
"oracle": {
"from": "0x945fD405773973d286De54E44649cc0d9e264F78",
diff --git a/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md
index bba765d38..170e7c9ab 100644
--- a/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md
+++ b/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md
@@ -11,6 +11,14 @@
| oracleDescription | null | Capped sAVAX / AVAX / USD |
+#### MAI ([0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b](https://snowtrace.io/address/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b))
+
+| description | value before | value after |
+| --- | --- | --- |
+| oracle | [0x5D1F504211c17365CA66353442a74D4435A8b778](https://snowtrace.io/address/0x5D1F504211c17365CA66353442a74D4435A8b778) | [0xCcC55Db26B78a19Dba1beE0066F9c1665575439A](https://snowtrace.io/address/0xCcC55Db26B78a19Dba1beE0066F9c1665575439A) |
+| oracleDescription | MIMATIC / USD | Capped MAI/USD |
+
+
#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowtrace.io/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7))
| description | value before | value after |
@@ -62,6 +70,16 @@
"to": "Capped sAVAX / AVAX / USD"
}
},
+ "0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b": {
+ "oracle": {
+ "from": "0x5D1F504211c17365CA66353442a74D4435A8b778",
+ "to": "0xCcC55Db26B78a19Dba1beE0066F9c1665575439A"
+ },
+ "oracleDescription": {
+ "from": "MIMATIC / USD",
+ "to": "Capped MAI/USD"
+ }
+ },
"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7": {
"oracle": {
"from": "0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a",
diff --git a/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md
index a3d245384..6154e3877 100644
--- a/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md
+++ b/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md
@@ -34,14 +34,6 @@
| oracleDescription | wstETH/ETH/USD | Capped wstETH / stETH(ETH) / USD |
-#### sDAI ([0x83F20F44975D03b1b09e64809B757c47f942BEeA](https://etherscan.io/address/0x83F20F44975D03b1b09e64809B757c47f942BEeA))
-
-| description | value before | value after |
-| --- | --- | --- |
-| oracle | [0x29081f7aB5a644716EfcDC10D5c926c5fEe9F72B](https://etherscan.io/address/0x29081f7aB5a644716EfcDC10D5c926c5fEe9F72B) | [0x325f676C393410c4044E6566e782C8ED96E49474](https://etherscan.io/address/0x325f676C393410c4044E6566e782C8ED96E49474) |
-| oracleDescription | sDAI/DAI/USD | Capped sDAI / DAI / USD |
-
-
#### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e))
| description | value before | value after |
@@ -64,7 +56,7 @@
| --- | --- | --- |
| oracle | [0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731](https://etherscan.io/address/0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731) | [0x6243d2F41b4ec944F731f647589E28d9745a2674](https://etherscan.io/address/0x6243d2F41b4ec944F731f647589E28d9745a2674) |
| oracleDescription | null | Capped cbETH / ETH / USD |
-| oracleLatestAnswer | 3983.38166794 | 4003.57195902 |
+| oracleLatestAnswer | 4250.44712602 | 4272.48373554 |
#### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393))
@@ -137,16 +129,6 @@
"to": "Capped wstETH / stETH(ETH) / USD"
}
},
- "0x83F20F44975D03b1b09e64809B757c47f942BEeA": {
- "oracle": {
- "from": "0x29081f7aB5a644716EfcDC10D5c926c5fEe9F72B",
- "to": "0x325f676C393410c4044E6566e782C8ED96E49474"
- },
- "oracleDescription": {
- "from": "sDAI/DAI/USD",
- "to": "Capped sDAI / DAI / USD"
- }
- },
"0x853d955aCEf822Db058eb8505911ED77F175b99e": {
"oracle": {
"from": "0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD",
@@ -173,8 +155,8 @@
"to": "0x6243d2F41b4ec944F731f647589E28d9745a2674"
},
"oracleLatestAnswer": {
- "from": 398338166794,
- "to": 400357195902
+ "from": 425044712602,
+ "to": 427248373554
},
"oracleDescription": {
"from": null,
diff --git a/diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md
index 3bbddc38f..d3cb8d305 100644
--- a/diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md
+++ b/diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md
@@ -18,14 +18,6 @@
| oracleDescription | USDC / USD | Capped USDC/USD |
-#### sDAI ([0xaf204776c7245bF4147c2612BF6e5972Ee483701](https://gnosisscan.io/address/0xaf204776c7245bF4147c2612BF6e5972Ee483701))
-
-| description | value before | value after |
-| --- | --- | --- |
-| oracle | [0x1D0f881Ce1a646E2f27Dec3c57Fa056cB838BCC2](https://gnosisscan.io/address/0x1D0f881Ce1a646E2f27Dec3c57Fa056cB838BCC2) | [0x808E873E85766fc889aa550018Fd2ad13Ad60f2D](https://gnosisscan.io/address/0x808E873E85766fc889aa550018Fd2ad13Ad60f2D) |
-| oracleDescription | sDAI/DAI/USD | Capped sDAI / DAI / USD |
-
-
#### WXDAI ([0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d](https://gnosisscan.io/address/0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d))
| description | value before | value after |
@@ -59,16 +51,6 @@
"to": "Capped USDC/USD"
}
},
- "0xaf204776c7245bF4147c2612BF6e5972Ee483701": {
- "oracle": {
- "from": "0x1D0f881Ce1a646E2f27Dec3c57Fa056cB838BCC2",
- "to": "0x808E873E85766fc889aa550018Fd2ad13Ad60f2D"
- },
- "oracleDescription": {
- "from": "sDAI/DAI/USD",
- "to": "Capped sDAI / DAI / USD"
- }
- },
"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d": {
"oracle": {
"from": "0x678df3415fc31947dA4324eC63212874be5a82f8",
diff --git a/diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md
index 9be1e5650..012a19d8c 100644
--- a/diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md
+++ b/diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md
@@ -66,6 +66,14 @@
| oracleDescription | LUSD / USD | Capped LUSD/USD |
+#### MAI ([0xdFA46478F9e5EA86d57387849598dbFB2e964b02](https://optimistic.etherscan.io/address/0xdFA46478F9e5EA86d57387849598dbFB2e964b02))
+
+| description | value before | value after |
+| --- | --- | --- |
+| oracle | [0x73A3919a69eFCd5b19df8348c6740bB1446F5ed0](https://optimistic.etherscan.io/address/0x73A3919a69eFCd5b19df8348c6740bB1446F5ed0) | [0xc6ac65E8f4F50a6655Efd78A92b6c503B5B625C8](https://optimistic.etherscan.io/address/0xc6ac65E8f4F50a6655Efd78A92b6c503B5B625C8) |
+| oracleDescription | MIMATIC / USD | Capped MAI/USD |
+
+
## Raw diff
```json
@@ -150,6 +158,16 @@
"from": "LUSD / USD",
"to": "Capped LUSD/USD"
}
+ },
+ "0xdFA46478F9e5EA86d57387849598dbFB2e964b02": {
+ "oracle": {
+ "from": "0x73A3919a69eFCd5b19df8348c6740bB1446F5ed0",
+ "to": "0xc6ac65E8f4F50a6655Efd78A92b6c503B5B625C8"
+ },
+ "oracleDescription": {
+ "from": "MIMATIC / USD",
+ "to": "Capped MAI/USD"
+ }
}
}
}
diff --git a/diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md
index c9cf471f2..5eddcf094 100644
--- a/diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md
+++ b/diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md
@@ -42,6 +42,14 @@
| oracleDescription | DAI / USD | Capped DAI/USD |
+#### miMATIC ([0xa3Fa99A148fA48D14Ed51d610c367C61876997F1](https://polygonscan.com/address/0xa3Fa99A148fA48D14Ed51d610c367C61876997F1))
+
+| description | value before | value after |
+| --- | --- | --- |
+| oracle | [0xd8d483d813547CfB624b8Dc33a00F2fcbCd2D428](https://polygonscan.com/address/0xd8d483d813547CfB624b8Dc33a00F2fcbCd2D428) | [0x4ae2Ab1af7e3b0092dbF3A4B20ec3de8fC834873](https://polygonscan.com/address/0x4ae2Ab1af7e3b0092dbF3A4B20ec3de8fC834873) |
+| oracleDescription | MIMATIC / USD | Capped MAI/USD |
+
+
#### USDT ([0xc2132D05D31c914a87C6611C10748AEb04B58e8F](https://polygonscan.com/address/0xc2132D05D31c914a87C6611C10748AEb04B58e8F))
| description | value before | value after |
@@ -113,6 +121,16 @@
"to": "Capped DAI/USD"
}
},
+ "0xa3Fa99A148fA48D14Ed51d610c367C61876997F1": {
+ "oracle": {
+ "from": "0xd8d483d813547CfB624b8Dc33a00F2fcbCd2D428",
+ "to": "0x4ae2Ab1af7e3b0092dbF3A4B20ec3de8fC834873"
+ },
+ "oracleDescription": {
+ "from": "MIMATIC / USD",
+ "to": "Capped MAI/USD"
+ }
+ },
"0xc2132D05D31c914a87C6611C10748AEb04B58e8F": {
"oracle": {
"from": "0x0A6513e40db6EB1b165753AD52E80663aeA50545",
diff --git a/diffs/AaveV3Scroll_SetPriceCapAdapters_20240227_before_AaveV3Scroll_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Scroll_SetPriceCapAdapters_20240227_before_AaveV3Scroll_SetPriceCapAdapters_20240227_after.md
new file mode 100644
index 000000000..d6cd20979
--- /dev/null
+++ b/diffs/AaveV3Scroll_SetPriceCapAdapters_20240227_before_AaveV3Scroll_SetPriceCapAdapters_20240227_after.md
@@ -0,0 +1,48 @@
+## Reserve changes
+
+### Reserve altered
+
+#### USDC ([0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4](https://scrollscan.com/address/0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4))
+
+| description | value before | value after |
+| --- | --- | --- |
+| oracle | [0x43d12Fb3AfCAd5347fA764EeAB105478337b7200](https://scrollscan.com/address/0x43d12Fb3AfCAd5347fA764EeAB105478337b7200) | [0x427Fd98dbD1DbC2D4e792350caBe7c9665F35bee](https://scrollscan.com/address/0x427Fd98dbD1DbC2D4e792350caBe7c9665F35bee) |
+| oracleDescription | USDC / USD | Capped USDC/USD |
+
+
+#### wstETH ([0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32](https://scrollscan.com/address/0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32))
+
+| description | value before | value after |
+| --- | --- | --- |
+| oracle | [0xdb93e2712a8B36835078f8D28c70fCC95FD6d37c](https://scrollscan.com/address/0xdb93e2712a8B36835078f8D28c70fCC95FD6d37c) | [0x4EdAbf45e78363b8Dcd763bBbd05665c6e24975C](https://scrollscan.com/address/0x4EdAbf45e78363b8Dcd763bBbd05665c6e24975C) |
+| oracleDescription | wstETH/ETH/USD | Capped wstETH / stETH(ETH) / USD |
+
+
+## Raw diff
+
+```json
+{
+ "reserves": {
+ "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4": {
+ "oracle": {
+ "from": "0x43d12Fb3AfCAd5347fA764EeAB105478337b7200",
+ "to": "0x427Fd98dbD1DbC2D4e792350caBe7c9665F35bee"
+ },
+ "oracleDescription": {
+ "from": "USDC / USD",
+ "to": "Capped USDC/USD"
+ }
+ },
+ "0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32": {
+ "oracle": {
+ "from": "0xdb93e2712a8B36835078f8D28c70fCC95FD6d37c",
+ "to": "0x4EdAbf45e78363b8Dcd763bBbd05665c6e24975C"
+ },
+ "oracleDescription": {
+ "from": "wstETH/ETH/USD",
+ "to": "Capped wstETH / stETH(ETH) / USD"
+ }
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Arbitrum_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Arbitrum_SetPriceCapAdapters_20240227.t.sol
index f5f7652f0..17b33f2d0 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Arbitrum_SetPriceCapAdapters_20240227.t.sol
+++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Arbitrum_SetPriceCapAdapters_20240227.t.sol
@@ -13,7 +13,7 @@ import {Payloads} from './SetPriceCapAdapters_20240227.s.sol';
*/
contract AaveV3Arbitrum_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase {
function setUp() public {
- vm.createSelectFork(vm.rpcUrl('arbitrum'), 187055996);
+ vm.createSelectFork(vm.rpcUrl('arbitrum'), 189601578);
}
/**
diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol
index 91a7abe33..dc8d1be79 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol
+++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol
@@ -13,7 +13,7 @@ import {Payloads} from './SetPriceCapAdapters_20240227.s.sol';
*/
contract AaveV3Avalanche_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase {
function setUp() public {
- vm.createSelectFork(vm.rpcUrl('avalanche'), 42471369);
+ vm.createSelectFork(vm.rpcUrl('avalanche'), 42802464);
}
/**
diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol
index d3274394c..f00023c94 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol
+++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol
@@ -13,7 +13,7 @@ import {Payloads} from './SetPriceCapAdapters_20240227.s.sol';
*/
contract AaveV3Ethereum_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase {
function setUp() public {
- vm.createSelectFork(vm.rpcUrl('mainnet'), 19369127);
+ vm.createSelectFork(vm.rpcUrl('mainnet'), 19418661);
}
/**
diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol
index 3d86fc119..625725294 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol
+++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol
@@ -13,7 +13,7 @@ import {Payloads} from './SetPriceCapAdapters_20240227.s.sol';
*/
contract AaveV3Gnosis_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase {
function setUp() public {
- vm.createSelectFork(vm.rpcUrl('gnosis'), 32762592);
+ vm.createSelectFork(vm.rpcUrl('gnosis'), 32892417);
}
/**
diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol
index a49fae21b..c444d8c8c 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol
+++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol
@@ -13,7 +13,7 @@ import {Payloads} from './SetPriceCapAdapters_20240227.s.sol';
*/
contract AaveV3Optimism_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase {
function setUp() public {
- vm.createSelectFork(vm.rpcUrl('optimism'), 116984758);
+ vm.createSelectFork(vm.rpcUrl('optimism'), 117321856);
}
/**
diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol
index c588fc305..777ad2ff6 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol
+++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol
@@ -13,7 +13,7 @@ import {Payloads} from './SetPriceCapAdapters_20240227.s.sol';
*/
contract AaveV3Polygon_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase {
function setUp() public {
- vm.createSelectFork(vm.rpcUrl('polygon'), 54261515);
+ vm.createSelectFork(vm.rpcUrl('polygon'), 54567456);
}
/**
diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Scroll_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Scroll_SetPriceCapAdapters_20240227.t.sol
new file mode 100644
index 000000000..603aab93d
--- /dev/null
+++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Scroll_SetPriceCapAdapters_20240227.t.sol
@@ -0,0 +1,25 @@
+// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol';
+
+/**
+ * @dev Test for Scroll payload
+ * command: make test-contract filter=AaveV3Scroll_SetPriceCapAdapters_20240227
+ */
+contract AaveV3Scroll_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase {
+ function setUp() public {
+ vm.createSelectFork(vm.rpcUrl('scroll'), 4064118);
+ }
+
+ /**
+ * @dev executes the generic test suite including e2e and config snapshots
+ */
+ function test_defaultProposalExecution() public {
+ defaultTest('AaveV3Scroll_SetPriceCapAdapters_20240227', AaveV3Scroll.POOL, Payloads.SCROLL);
+ }
+}
diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md
index 18f159f11..d6e19827f 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md
+++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md
@@ -1,5 +1,5 @@
---
-title: "Set Price Cap Adapters"
+title: "Set Price Cap Adapters (CAPO)"
author: "BGD Labs (@bgdlabs)"
discussions: "https://governance.aave.com/t/bgd-correlated-asset-price-oracle/16133"
snapshot: "https://snapshot.org/#/aave.eth/proposal/0x387f779952a20e850f941111ccf7aa49022ee35274fd219b9759c0ea240b72e1"
@@ -24,7 +24,6 @@ In some cases, the relation between an underlying asset and its correlated is di
| ------- | -------------- | -------------- |
| wstETH | 9.68% | 7 days |
| rETH | 9.3% | 7 days |
-| sDAI | 10.15% | 7 days |
| cbETH | 8.12% | 7 days |
| MaticX | 10.2% | 14 days |
| stMATIC | 10.45% | 14 days |
@@ -38,14 +37,15 @@ Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine
| Network | LSTs | Stables |
| --------- | ------------------------- | ------------------------------------------ |
| Mainnet | wstETH, rETH, sDAI, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSd, pyUSD |
-| Arbitrum | wstETH, rETH | USDC, USDC.e USDT, FRAX, LUSD |
-| Avalanche | sAvax | USDC, DAI.e, FRAX |
-| Optimism | wstETH, rETH | USDC, USDC.e, USDT, DAI, LUSD, sUSD |
-| Polygon | wstETH, stMatic, MaticX | USDC, USDC.e, USDT, DAI |
+| Arbitrum | wstETH, rETH | USDC, USDC.e USDT, FRAX, LUSD, MAI |
+| Avalanche | sAvax | USDC, DAI.e, FRAX, MAI |
+| Optimism | wstETH, rETH | USDC, USDC.e, USDT, DAI, LUSD, sUSD, MAI |
+| Polygon | wstETH, stMatic, MaticX | USDC, USDC.e, USDT, DAI, MAI |
| Gnosis | wstETH, sDAI | USDC, xDAI |
| Base | wstETH, cbETH | USDC |
| Metis | | USDC, USDT, m.DAI |
| BNB | | USDC, USDT, fdUSD |
+| Scroll | wstETH | USDC |
# Security
@@ -54,8 +54,8 @@ Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine
## References
-- Payloads: [AaveV3Ethereum](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3EthereumPayload.sol), [AaveV3Polygon](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3PolygonPayload.sol), [AaveV3Avalanche](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3AvalanchePayload.sol), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3ArbitrumPayload.sol), [AaveV3Optimism](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3OptimismPayload.sol), [AaveV3Metis](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3MetisPayload.sol), [AaveV3Base](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3BasePayload.sol), [AaveV3Gnosis](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3GnosisPayload.sol), [AaveV3BNB](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3BNBPayload.sol)
-- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-capo/tree/main/tests/ethereum), [AaveV3Polygon](https://github.com/bgd-labs/aave-capo/tree/main/tests/polygon), [AaveV3Avalanche](https://github.com/bgd-labs/aave-capo/tree/main/tests/avalanche), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-capo/tree/main/tests/arbitrum), [AaveV3Optimism](https://github.com/bgd-labs/aave-capo/tree/main/tests/optimism), [AaveV3Base](https://github.com/bgd-labs/aave-capo/tree/main/tests/base), [AaveV3Gnosis](https://github.com/bgd-labs/aave-capo/tree/main/tests/gnosis)
+- Payloads: [AaveV3Ethereum](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3EthereumPayload.sol), [AaveV3Polygon](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3PolygonPayload.sol), [AaveV3Avalanche](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3AvalanchePayload.sol), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3ArbitrumPayload.sol), [AaveV3Optimism](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3OptimismPayload.sol), [AaveV3Metis](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3MetisPayload.sol), [AaveV3Base](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3BasePayload.sol), [AaveV3Gnosis](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3GnosisPayload.sol), [AaveV3BNB](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3BNBPayload.sol), [AaveV3Scroll](https://github.com/bgd-labs/aave-capo/blob/main/src/contracts/payloads/AaveV3ScrollPayload.sol)
+- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-capo/tree/main/tests/ethereum), [AaveV3Polygon](https://github.com/bgd-labs/aave-capo/tree/main/tests/polygon), [AaveV3Avalanche](https://github.com/bgd-labs/aave-capo/tree/main/tests/avalanche), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-capo/tree/main/tests/arbitrum), [AaveV3Optimism](https://github.com/bgd-labs/aave-capo/tree/main/tests/optimism), [AaveV3Base](https://github.com/bgd-labs/aave-capo/tree/main/tests/base), [AaveV3Gnosis](https://github.com/bgd-labs/aave-capo/tree/main/tests/gnosis), [AaveV3Scroll](https://github.com/bgd-labs/aave-capo/tree/main/tests/scroll)
## Copyright
diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol
index 7e2d7c71f..746197c5c 100644
--- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol
+++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol
@@ -2,23 +2,23 @@
pragma solidity ^0.8.0;
import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol';
-import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, MetisScript, BaseScript, GnosisScript, BNBScript} from 'aave-helpers/ScriptUtils.sol';
+import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, MetisScript, BaseScript, GnosisScript, BNBScript, ScrollScript} from 'aave-helpers/ScriptUtils.sol';
library Payloads {
- // https://etherscan.io/address/0x3611300f745f1e60aa1ce1d205517cdaa3b10b83
- address public constant ETHEREUM = 0x3611300f745F1e60AA1cE1d205517cDAA3b10B83;
+ // https://etherscan.io/address/0xb20935059e3f49cbfa35bed0780fb8887d7d0d67
+ address public constant ETHEREUM = 0xb20935059e3F49Cbfa35bED0780Fb8887D7D0D67;
- // https://polygonscan.com/address/0xbde0efa2ce806a02b4f25bfd77303c7790f279e4
- address public constant POLYGON = 0xbdE0Efa2CE806a02B4f25bfD77303C7790f279e4;
+ // https://polygonscan.com/address/0x2d976a898522e6bca5bf1464931283d24d2a2698
+ address public constant POLYGON = 0x2d976a898522e6Bca5bf1464931283d24D2A2698;
- // https://snowtrace.io/address/0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0
- address public constant AVALANCHE = 0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0;
+ // https://snowtrace.io/address/0x882cCd8087bC44105E962Bc01280A335b210d738
+ address public constant AVALANCHE = 0x882cCd8087bC44105E962Bc01280A335b210d738;
- // https://optimistic.etherscan.io/address/0x8740b38ff207cc0f8bf2621fe467e9cf1aacdb86
- address public constant OPTIMISM = 0x8740b38fF207CC0F8BF2621fe467e9cF1AACDB86;
+ // https://optimistic.etherscan.io/address/0xe2fad8c2e3aefbb3e8fea1e0b84463c7c06350a3
+ address public constant OPTIMISM = 0xE2FaD8c2e3AefBB3e8FEa1E0B84463C7C06350A3;
- // https://arbiscan.io/address/0x8d12d8d7eb9cbeee29a64e31dbc352b7ebc17337
- address public constant ARBITRUM = 0x8D12D8D7Eb9CbeEe29a64E31DbC352B7ebC17337;
+ // https://arbiscan.io/address/0x296c266263bdc0b4ef32f75a7769ab925772f6cb
+ address public constant ARBITRUM = 0x296C266263bDc0b4eF32F75a7769aB925772F6Cb;
// https://andromeda-explorer.metis.io/address/0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03/
address public constant METIS = 0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03;
@@ -26,11 +26,14 @@ library Payloads {
// https://basescan.org/address/0x360ef8d31b90718f13b73d10f3f3c122d86577f1
address public constant BASE = 0x360eF8D31B90718f13b73d10f3F3C122d86577f1;
- // https://gnosisscan.io/address/0x473e655bb3066326f7a5ffa5d3cccd6e0ef6f61e
- address public constant GNOSIS = 0x473e655bb3066326F7a5FFA5D3cCcd6E0eF6F61e;
+ // https://gnosisscan.io/address/0xac603d82de4fed4c28175f707bc4d15d79e63303
+ address public constant GNOSIS = 0xaC603d82de4Fed4c28175f707BC4d15d79E63303;
// https://bscscan.com/address/0x2683f613a899694a8d8669243321541cbdc6a95b
address public constant BNB = 0x2683F613a899694a8d8669243321541CBdc6a95b;
+
+ // https://scrollscan.com/address/0xd11f81a205b2ae847cb46c58e12b4c82a30e1809
+ address public constant SCROLL = 0xD11f81a205b2ae847cB46c58e12b4c82A30e1809;
}
/**
@@ -186,6 +189,23 @@ contract DeployBNB is BNBScript {
}
}
+/**
+ * @dev Deploy Scroll
+ * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployScroll chain=scroll
+ * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/534351/run-latest.json
+ */
+contract DeployScroll is ScrollScript {
+ function run() external broadcast {
+ // compose action
+ IPayloadsControllerCore.ExecutionAction[]
+ memory actions = new IPayloadsControllerCore.ExecutionAction[](1);
+ actions[0] = GovV3Helpers.buildAction(Payloads.SCROLL);
+
+ // register action at payloadsController
+ GovV3Helpers.createPayload(actions);
+ }
+}
+
/**
* @dev Create Proposal
* command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:CreateProposal chain=mainnet
@@ -193,7 +213,7 @@ contract DeployBNB is BNBScript {
contract CreateProposal is EthereumScript {
function run() external {
// create payloads
- PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](9);
+ PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](10);
// compose actions for validation
IPayloadsControllerCore.ExecutionAction[]
@@ -241,6 +261,11 @@ contract CreateProposal is EthereumScript {
actionsBNB[0] = GovV3Helpers.buildAction(Payloads.BNB);
payloads[8] = GovV3Helpers.buildBNBPayload(vm, actionsBNB);
+ IPayloadsControllerCore.ExecutionAction[]
+ memory actionsScroll = new IPayloadsControllerCore.ExecutionAction[](1);
+ actionsScroll[0] = GovV3Helpers.buildAction(Payloads.SCROLL);
+ payloads[9] = GovV3Helpers.buildScrollPayload(vm, actionsScroll);
+
// create proposal
vm.startBroadcast();
GovV3Helpers.createProposal(