From 8712fa0833e11e722cec73fd50fdf329774e675e Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 12:49:29 +0100 Subject: [PATCH] payloads updated --- ...86872b45a9cd8b31a38113050f5481468cb333.svg | 1 + ...95ddfd1ad1b620d55be691c73b3c69ffb3f3f0.svg | 1 + ...trum_SetPriceCapAdapters_20240227_after.md | 18 +++++++ ...nche_SetPriceCapAdapters_20240227_after.md | 18 +++++++ ...reum_SetPriceCapAdapters_20240227_after.md | 24 ++------- ...osis_SetPriceCapAdapters_20240227_after.md | 18 ------- ...mism_SetPriceCapAdapters_20240227_after.md | 18 +++++++ ...ygon_SetPriceCapAdapters_20240227_after.md | 18 +++++++ ...roll_SetPriceCapAdapters_20240227_after.md | 48 +++++++++++++++++ ...rbitrum_SetPriceCapAdapters_20240227.t.sol | 2 +- ...alanche_SetPriceCapAdapters_20240227.t.sol | 2 +- ...thereum_SetPriceCapAdapters_20240227.t.sol | 2 +- ...3Gnosis_SetPriceCapAdapters_20240227.t.sol | 2 +- ...ptimism_SetPriceCapAdapters_20240227.t.sol | 2 +- ...Polygon_SetPriceCapAdapters_20240227.t.sol | 2 +- ...3Scroll_SetPriceCapAdapters_20240227.t.sol | 25 +++++++++ .../SetPriceCapAdapters.md | 16 +++--- .../SetPriceCapAdapters_20240227.s.sol | 53 ++++++++++++++----- 18 files changed, 203 insertions(+), 67 deletions(-) create mode 100644 .assets/4986872b45a9cd8b31a38113050f5481468cb333.svg create mode 100644 .assets/ca95ddfd1ad1b620d55be691c73b3c69ffb3f3f0.svg create mode 100644 diffs/AaveV3Scroll_SetPriceCapAdapters_20240227_before_AaveV3Scroll_SetPriceCapAdapters_20240227_after.md create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Scroll_SetPriceCapAdapters_20240227.t.sol 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 @@ + Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%0%5%Optimal 0%Optimal 0% \ 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(