From 733f63fedf86bc0018884f23e50058063e544a50 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 6 Feb 2024 18:01:13 +0100 Subject: [PATCH 01/19] initial proposal --- .../SetPriceCapPriceAdapters.md | 21 ++ .../SetPriceCapPriceAdapters_20240206.s.sol | 238 ++++++++++++++++++ .../config.ts | 14 ++ 3 files changed, 273 insertions(+) create mode 100644 src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md create mode 100644 src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol create mode 100644 src/20240206_Multi_SetPriceCapPriceAdapters/config.ts diff --git a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md b/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md new file mode 100644 index 000000000..cdc0aeba8 --- /dev/null +++ b/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md @@ -0,0 +1,21 @@ +--- +title: "Set Price Cap Price Adapters" +author: "BGD Labs (@bgdlabs)" +discussions: "https://governance.aave.com/t/bgd-correlated-asset-price-oracle/16133" +snapshot: "https://snapshot.org/#/aave.eth/proposal/0x387f779952a20e850f941111ccf7aa49022ee35274fd219b9759c0ea240b72e1" +--- + +## Simple Summary + +## Motivation + +## Specification + +## References + +- Implementation: +- Tests: + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol b/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol new file mode 100644 index 000000000..8d5125708 --- /dev/null +++ b/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol @@ -0,0 +1,238 @@ +// 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, BNBScript} from 'aave-helpers/ScriptUtils.sol'; + +library Payloads { + address public constant ETHEREUM = address(0); + address public constant POLYGON = address(1); + address public constant AVALANCHE = address(2); + address public constant OPTIMISM = address(3); + address public constant ARBITRUM = address(4); + address public constant METIS = address(5); + address public constant BASE = address(6); + address public constant GNOSIS = address(7); + address public constant BNB = address(8); +} + +/** + * @dev Deploy Ethereum + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployEthereum chain=mainnet + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/1/run-latest.json + */ +contract DeployEthereum is EthereumScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.ETHEREUM); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Polygon + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployPolygon chain=polygon + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/137/run-latest.json + */ +contract DeployPolygon is PolygonScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.POLYGON); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Avalanche + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployAvalanche chain=avalanche + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/43114/run-latest.json + */ +contract DeployAvalanche is AvalancheScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.AVALANCHE); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Optimism + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployOptimism chain=optimism + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/10/run-latest.json + */ +contract DeployOptimism is OptimismScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.OPTIMISM); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Arbitrum + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployArbitrum chain=arbitrum + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/42161/run-latest.json + */ +contract DeployArbitrum is ArbitrumScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.ARBITRUM); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Metis + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployMetis chain=metis + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/1088/run-latest.json + */ +contract DeployMetis is MetisScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.METIS); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Base + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployBase chain=base + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/8453/run-latest.json + */ +contract DeployBase is BaseScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.BASE); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Gnosis + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployGnosis chain=gnosis + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/100/run-latest.json + */ +contract DeployGnosis is GnosisScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.GNOSIS); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy BNB + * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployBNB chain=bnb + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/56/run-latest.json + */ +contract DeployBNB is BNBScript { + function run() external broadcast { + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(Payloads.BNB); + + // 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 + */ +contract CreateProposal is EthereumScript { + function run() external { + // create payloads + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](9); + + // compose actions for validation + IPayloadsControllerCore.ExecutionAction[] + memory actionsEthereum = new IPayloadsControllerCore.ExecutionAction[](1); + actionsEthereum[0] = GovV3Helpers.buildAction(Payloads.ETHEREUM); + payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsPolygon = new IPayloadsControllerCore.ExecutionAction[](1); + actionsPolygon[0] = GovV3Helpers.buildAction(Payloads.POLYGON); + payloads[1] = GovV3Helpers.buildPolygonPayload(vm, actionsPolygon); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsAvalanche = new IPayloadsControllerCore.ExecutionAction[](1); + actionsAvalanche[0] = GovV3Helpers.buildAction(Payloads.AVALANCHE); + payloads[2] = GovV3Helpers.buildAvalanchePayload(vm, actionsAvalanche); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsOptimism = new IPayloadsControllerCore.ExecutionAction[](1); + actionsOptimism[0] = GovV3Helpers.buildAction(Payloads.OPTIMISM); + payloads[3] = GovV3Helpers.buildOptimismPayload(vm, actionsOptimism); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsArbitrum = new IPayloadsControllerCore.ExecutionAction[](1); + actionsArbitrum[0] = GovV3Helpers.buildAction(Payloads.ARBITRUM); + payloads[4] = GovV3Helpers.buildArbitrumPayload(vm, actionsArbitrum); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsMetis = new IPayloadsControllerCore.ExecutionAction[](1); + actionsMetis[0] = GovV3Helpers.buildAction(Payloads.METIS); + payloads[5] = GovV3Helpers.buildMetisPayload(vm, actionsMetis); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsBase = new IPayloadsControllerCore.ExecutionAction[](1); + actionsBase[0] = GovV3Helpers.buildAction(Payloads.BASE); + payloads[6] = GovV3Helpers.buildBasePayload(vm, actionsBase); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsGnosis = new IPayloadsControllerCore.ExecutionAction[](1); + actionsGnosis[0] = GovV3Helpers.buildAction(Payloads.GNOSIS); + payloads[7] = GovV3Helpers.buildGnosisPayload(vm, actionsGnosis); + + IPayloadsControllerCore.ExecutionAction[] + memory actionsBNB = new IPayloadsControllerCore.ExecutionAction[](1); + actionsBNB[0] = GovV3Helpers.buildAction(Payloads.BNB); + payloads[8] = GovV3Helpers.buildBNBPayload(vm, actionsBNB); + + // create proposal + vm.startBroadcast(); + GovV3Helpers.createProposal( + vm, + payloads, + GovV3Helpers.ipfsHashFile( + vm, + 'src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md' + ) + ); + } +} diff --git a/src/20240206_Multi_SetPriceCapPriceAdapters/config.ts b/src/20240206_Multi_SetPriceCapPriceAdapters/config.ts new file mode 100644 index 000000000..a4fc4e0fa --- /dev/null +++ b/src/20240206_Multi_SetPriceCapPriceAdapters/config.ts @@ -0,0 +1,14 @@ +import {ConfigFile} from '../../generator/types'; +export const config: ConfigFile = { + rootOptions: { + pools: [], + title: 'Set Price Cap Price Adapters', + shortName: 'SetPriceCapPriceAdapters', + date: '20240206', + author: 'BGD Labs (@bgdlabs)', + discussion: 'https://governance.aave.com/t/bgd-correlated-asset-price-oracle/16133', + snapshot: + 'https://snapshot.org/#/aave.eth/proposal/0x387f779952a20e850f941111ccf7aa49022ee35274fd219b9759c0ea240b72e1', + }, + poolOptions: {}, +}; From 609f010423395756534883589232e344f1812875 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Wed, 7 Feb 2024 09:19:25 +0100 Subject: [PATCH 02/19] aip draft --- .../SetPriceCapPriceAdapters.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md b/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md index cdc0aeba8..18268b17e 100644 --- a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md +++ b/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md @@ -7,13 +7,21 @@ snapshot: "https://snapshot.org/#/aave.eth/proposal/0x387f779952a20e850f941111cc ## Simple Summary +This proposal aims to use correlated-assets price oracle (CAPO) for LSTs and USD-pegged stable coins. + ## Motivation +LSTs (Liquid Staking Tokens) are highly correlated to an underlying, with an additional growth component on top of it, and sometimes, slashing dynamics. CAPO for this use case adds an upper side protection. Every time the price adapter is queried, it will get the current ratio of the asset/underlying and compared it with a dynamically calculated upper value of that ratio, using the previously defined parameters. If the current ratio is above the ratio cap, the ratio cap is returned. If not, the current ratio is. + +In some cases, the relation between an underlying asset and its correlated is direct, without any type of continuous growth expected. For example, this is the case of USD-pegged stable coins, where USD is the underlying and let's say USDC is the correlated asset. For this type of assets we'll apply the price adapter with the fixed price cap. + ## Specification +- [Price adapters implementation](https://github.com/bgd-labs/aave-capo) + ## References -- Implementation: +- 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: ## Copyright From 2ffdc6b3fa3155d25248a59186008b22db82d2f8 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 27 Feb 2024 12:03:53 +0100 Subject: [PATCH 03/19] update aip --- .../SetPriceCapAdapters.md} | 24 +++++++++++++++++-- .../SetPriceCapAdapters_20240227.s.sol} | 5 +--- .../config.ts | 4 ++-- 3 files changed, 25 insertions(+), 8 deletions(-) rename src/{20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md => 20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md} (71%) rename src/{20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol => 20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol} (98%) rename src/{20240206_Multi_SetPriceCapPriceAdapters => 20240227_Multi_SetPriceCapAdapters}/config.ts (83%) diff --git a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md similarity index 71% rename from src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md rename to src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index 18268b17e..578d93434 100644 --- a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -1,5 +1,5 @@ --- -title: "Set Price Cap Price Adapters" +title: "Set Price Cap Adapters" author: "BGD Labs (@bgdlabs)" discussions: "https://governance.aave.com/t/bgd-correlated-asset-price-oracle/16133" snapshot: "https://snapshot.org/#/aave.eth/proposal/0x387f779952a20e850f941111ccf7aa49022ee35274fd219b9759c0ea240b72e1" @@ -17,7 +17,27 @@ In some cases, the relation between an underlying asset and its correlated is di ## Specification -- [Price adapters implementation](https://github.com/bgd-labs/aave-capo) +- [Capped price adapters implementation](https://github.com/bgd-labs/aave-capo) +- [Risk providers parameters recommendations](https://governance.aave.com/t/chaos-labs-correlated-asset-price-oracle-framework/16605) + +| Asset | Growth percent | Snapshot delay | +| ------- | -------------- | -------------- | +| 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 | +| sAVAX | 10.1% | 14 days | +| stEUR | 9.26% | | + +All stablecoins are capped at 4%. + +# Security + +- [Audit by Certora](TODO: pase link when available) +- A retrospective test was conducted for the last half year with the parameters provided, which showed that the price was not capped, which is expected +- Inner review at BGD ## References diff --git a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol similarity index 98% rename from src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol rename to src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol index 8d5125708..bbff47503 100644 --- a/src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol @@ -229,10 +229,7 @@ contract CreateProposal is EthereumScript { GovV3Helpers.createProposal( vm, payloads, - GovV3Helpers.ipfsHashFile( - vm, - 'src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters.md' - ) + GovV3Helpers.ipfsHashFile(vm, 'src/20240206_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md') ); } } diff --git a/src/20240206_Multi_SetPriceCapPriceAdapters/config.ts b/src/20240227_Multi_SetPriceCapAdapters/config.ts similarity index 83% rename from src/20240206_Multi_SetPriceCapPriceAdapters/config.ts rename to src/20240227_Multi_SetPriceCapAdapters/config.ts index a4fc4e0fa..7bfff7cfb 100644 --- a/src/20240206_Multi_SetPriceCapPriceAdapters/config.ts +++ b/src/20240227_Multi_SetPriceCapAdapters/config.ts @@ -2,8 +2,8 @@ import {ConfigFile} from '../../generator/types'; export const config: ConfigFile = { rootOptions: { pools: [], - title: 'Set Price Cap Price Adapters', - shortName: 'SetPriceCapPriceAdapters', + title: 'Set Price Cap Adapters', + shortName: 'SetPriceCapAdapters', date: '20240206', author: 'BGD Labs (@bgdlabs)', discussion: 'https://governance.aave.com/t/bgd-correlated-asset-price-oracle/16133', From 7ee37c624862af8a880710f84ce3f7d2da13bb17 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Fri, 1 Mar 2024 16:54:56 +0100 Subject: [PATCH 04/19] update aip --- .../SetPriceCapAdapters.md | 23 +++++++++--- .../SetPriceCapAdapters_20240227.s.sol | 35 ++++++++++++++----- 2 files changed, 44 insertions(+), 14 deletions(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index 578d93434..181bf2f48 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -7,7 +7,7 @@ snapshot: "https://snapshot.org/#/aave.eth/proposal/0x387f779952a20e850f941111cc ## Simple Summary -This proposal aims to use correlated-assets price oracle (CAPO) for LSTs and USD-pegged stable coins. +This proposal activates the correlated-assets price oracle (CAPO) system for LSTs and fiat-pegged stable coins. ## Motivation @@ -18,7 +18,7 @@ In some cases, the relation between an underlying asset and its correlated is di ## Specification - [Capped price adapters implementation](https://github.com/bgd-labs/aave-capo) -- [Risk providers parameters recommendations](https://governance.aave.com/t/chaos-labs-correlated-asset-price-oracle-framework/16605) +- [Risk providers parameters recommendations](https://governance.aave.com/t/chaos-labs-correlated-asset-price-oracle-framework/16605/4) | Asset | Growth percent | Snapshot delay | | ------- | -------------- | -------------- | @@ -33,16 +33,29 @@ In some cases, the relation between an underlying asset and its correlated is di All stablecoins are capped at 4%. +Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine on every network. Below is the list of assets per network to be updated: + +| Network | LSTs | Stables | +| --------- | ------------------------- | ----------------------------------- | +| Mainnet | wstETH, rETH, sDAI, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSd | +| 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 | +| Gnosis | wstETH, sDAI | USDC, xDAI | +| Base | wstETH, cbETH | USDC | +| Metis | | USDC, USDT, m.DAI | +| BNB | | USDC, USDT | + # Security -- [Audit by Certora](TODO: pase link when available) +- [Audit by Certora](https://github.com/bgd-labs/aave-capo/blob/main/certora/CAPO%20report.pdf) - A retrospective test was conducted for the last half year with the parameters provided, which showed that the price was not capped, which is expected -- Inner review at BGD ## 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: +- 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) ## Copyright diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol index bbff47503..2c05d5c82 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol @@ -5,15 +5,32 @@ import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aa import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, MetisScript, BaseScript, GnosisScript, BNBScript} from 'aave-helpers/ScriptUtils.sol'; library Payloads { - address public constant ETHEREUM = address(0); - address public constant POLYGON = address(1); - address public constant AVALANCHE = address(2); - address public constant OPTIMISM = address(3); - address public constant ARBITRUM = address(4); - address public constant METIS = address(5); - address public constant BASE = address(6); - address public constant GNOSIS = address(7); - address public constant BNB = address(8); + // https://etherscan.io/address/0xec4d7aef658aedea8107b8b3018aeb13684a0b54 + address public constant ETHEREUM = 0xeC4d7Aef658AeDea8107b8b3018aeB13684A0b54; + + // https://polygonscan.com/address/0xbde0efa2ce806a02b4f25bfd77303c7790f279e4 + address public constant POLYGON = 0xbdE0Efa2CE806a02B4f25bfD77303C7790f279e4; + + // https://snowtrace.io/address/0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0 + address public constant AVALANCHE = 0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0; + + // https://optimistic.etherscan.io/address/0x8740b38ff207cc0f8bf2621fe467e9cf1aacdb86 + address public constant OPTIMISM = 0x8740b38fF207CC0F8BF2621fe467e9cF1AACDB86; + + // https://arbiscan.io/address/0x8d12d8d7eb9cbeee29a64e31dbc352b7ebc17337 + address public constant ARBITRUM = 0x8D12D8D7Eb9CbeEe29a64E31DbC352B7ebC17337; + + // https://andromeda-explorer.metis.io/address/0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03/ + address public constant METIS = 0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03; + + // https://basescan.org/address/0x360ef8d31b90718f13b73d10f3f3c122d86577f1 + address public constant BASE = 0x360eF8D31B90718f13b73d10f3F3C122d86577f1; + + // https://gnosisscan.io/address/0x473e655bb3066326f7a5ffa5d3cccd6e0ef6f61e + address public constant GNOSIS = 0x473e655bb3066326F7a5FFA5D3cCcd6E0eF6F61e; + + // https://bscscan.com/address/0x7525a45f37197dcb7c9e9e7e3a354dee81b1224b + address public constant BNB = 0x7525A45F37197DcB7C9e9E7E3a354DeE81b1224B; } /** From 698cc2729e925e1a7ea32578b8bb35fdce17d89b Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Mon, 4 Mar 2024 17:48:31 +0100 Subject: [PATCH 05/19] default tests and diffs --- ...trum_SetPriceCapAdapters_20240227_after.md | 156 ++++++++++++ ...nche_SetPriceCapAdapters_20240227_after.md | 107 +++++++++ ...3BNB_SetPriceCapAdapters_20240227_after.md | 48 ++++ ...Base_SetPriceCapAdapters_20240227_after.md | 89 +++++++ ...reum_SetPriceCapAdapters_20240227_after.md | 225 ++++++++++++++++++ ...osis_SetPriceCapAdapters_20240227_after.md | 84 +++++++ ...etis_SetPriceCapAdapters_20240304_after.md | 66 +++++ ...mism_SetPriceCapAdapters_20240227_after.md | 156 ++++++++++++ ...ygon_SetPriceCapAdapters_20240227_after.md | 138 +++++++++++ ...rbitrum_SetPriceCapAdapters_20240227.t.sol | 29 +++ ...alanche_SetPriceCapAdapters_20240227.t.sol | 29 +++ ...veV3BNB_SetPriceCapAdapters_20240227.t.sol | 25 ++ ...eV3Base_SetPriceCapAdapters_20240227.t.sol | 25 ++ ...thereum_SetPriceCapAdapters_20240227.t.sol | 29 +++ ...3Gnosis_SetPriceCapAdapters_20240227.t.sol | 25 ++ ...V3Metis_SetPriceCapAdapters_20240227.t.sol | 25 ++ ...ptimism_SetPriceCapAdapters_20240227.t.sol | 29 +++ ...Polygon_SetPriceCapAdapters_20240227.t.sol | 25 ++ .../Payloads.sol | 31 +++ 19 files changed, 1341 insertions(+) create mode 100644 diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md create mode 100644 diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md create mode 100644 diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md create mode 100644 diffs/AaveV3Base_SetPriceCapAdapters_20240227_before_AaveV3Base_SetPriceCapAdapters_20240227_after.md create mode 100644 diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md create mode 100644 diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md create mode 100644 diffs/AaveV3Metis_SetPriceCapAdapters_20240304_before_AaveV3Metis_SetPriceCapAdapters_20240304_after.md create mode 100644 diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md create mode 100644 diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Arbitrum_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Base_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Metis_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol create mode 100644 src/20240227_Multi_SetPriceCapAdapters/Payloads.sol diff --git a/diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..c83896886 --- /dev/null +++ b/diffs/AaveV3Arbitrum_SetPriceCapAdapters_20240227_before_AaveV3Arbitrum_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,156 @@ +## Reserve changes + +### Reserve altered + +#### FRAX ([0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F](https://arbiscan.io/address/0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x0809E3d38d1B4214958faf06D8b1B1a2b73f2ab8](https://arbiscan.io/address/0x0809E3d38d1B4214958faf06D8b1B1a2b73f2ab8) | [0x06919EB75Bd6BA817D38CC70C1CA588ac7a01C10](https://arbiscan.io/address/0x06919EB75Bd6BA817D38CC70C1CA588ac7a01C10) | +| oracleDescription | FRAX / USD | Capped FRAX/USD | + + +#### wstETH ([0x5979D7b546E38E414F7E9822514be443A4800529](https://arbiscan.io/address/0x5979D7b546E38E414F7E9822514be443A4800529)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x945fD405773973d286De54E44649cc0d9e264F78](https://arbiscan.io/address/0x945fD405773973d286De54E44649cc0d9e264F78) | [0x87fE1503beFBF98C35c7526B0c488d950F822C0F](https://arbiscan.io/address/0x87fE1503beFBF98C35c7526B0c488d950F822C0F) | +| oracleDescription | wstETH/ETH/USD | Capped wstETH / stETH(ETH) / USD | + + +#### LUSD ([0x93b346b6BC2548dA6A1E7d98E9a421B42541425b](https://arbiscan.io/address/0x93b346b6BC2548dA6A1E7d98E9a421B42541425b)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x0411D28c94d85A36bC72Cb0f875dfA8371D8fFfF](https://arbiscan.io/address/0x0411D28c94d85A36bC72Cb0f875dfA8371D8fFfF) | [0x341B110bDF665A20F0D5f84A92FcAF5EbeEBC629](https://arbiscan.io/address/0x341B110bDF665A20F0D5f84A92FcAF5EbeEBC629) | +| oracleDescription | LUSD / USD | Capped LUSD/USD | + + +#### DAI ([0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1](https://arbiscan.io/address/0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xc5C8E77B397E531B8EC06BFb0048328B30E9eCfB](https://arbiscan.io/address/0xc5C8E77B397E531B8EC06BFb0048328B30E9eCfB) | [0x4a838a3Dac6633bB1fd932B6f356DecFCAf7803D](https://arbiscan.io/address/0x4a838a3Dac6633bB1fd932B6f356DecFCAf7803D) | +| oracleDescription | DAI / USD | Capped DAI/USD | + + +#### rETH ([0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8](https://arbiscan.io/address/0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x04c28D6fE897859153eA753f986cc249Bf064f71](https://arbiscan.io/address/0x04c28D6fE897859153eA753f986cc249Bf064f71) | [0x256f33FC0110B1297f78f48524631D30B752480D](https://arbiscan.io/address/0x256f33FC0110B1297f78f48524631D30B752480D) | +| oracleDescription | rETH/ETH/USD | Capped rETH / ETH / USD | + + +#### USDC ([0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8](https://arbiscan.io/address/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3](https://arbiscan.io/address/0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3) | [0xDe25a88F87FEd9F8999fAbF6729dCB121893623C](https://arbiscan.io/address/0xDe25a88F87FEd9F8999fAbF6729dCB121893623C) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### USDT ([0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9](https://arbiscan.io/address/0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x3f3f5dF88dC9F13eac63DF89EC16ef6e7E25DdE7](https://arbiscan.io/address/0x3f3f5dF88dC9F13eac63DF89EC16ef6e7E25DdE7) | [0x84dC1C52D7C340AA54B4e8799FBB31C3D28E67aD](https://arbiscan.io/address/0x84dC1C52D7C340AA54B4e8799FBB31C3D28E67aD) | +| oracleDescription | USDT / USD | Capped USDT/USD | + + +#### USDC ([0xaf88d065e77c8cC2239327C5EDb3A432268e5831](https://arbiscan.io/address/0xaf88d065e77c8cC2239327C5EDb3A432268e5831)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3](https://arbiscan.io/address/0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3) | [0xDe25a88F87FEd9F8999fAbF6729dCB121893623C](https://arbiscan.io/address/0xDe25a88F87FEd9F8999fAbF6729dCB121893623C) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F": { + "oracle": { + "from": "0x0809E3d38d1B4214958faf06D8b1B1a2b73f2ab8", + "to": "0x06919EB75Bd6BA817D38CC70C1CA588ac7a01C10" + }, + "oracleDescription": { + "from": "FRAX / USD", + "to": "Capped FRAX/USD" + } + }, + "0x5979D7b546E38E414F7E9822514be443A4800529": { + "oracle": { + "from": "0x945fD405773973d286De54E44649cc0d9e264F78", + "to": "0x87fE1503beFBF98C35c7526B0c488d950F822C0F" + }, + "oracleDescription": { + "from": "wstETH/ETH/USD", + "to": "Capped wstETH / stETH(ETH) / USD" + } + }, + "0x93b346b6BC2548dA6A1E7d98E9a421B42541425b": { + "oracle": { + "from": "0x0411D28c94d85A36bC72Cb0f875dfA8371D8fFfF", + "to": "0x341B110bDF665A20F0D5f84A92FcAF5EbeEBC629" + }, + "oracleDescription": { + "from": "LUSD / USD", + "to": "Capped LUSD/USD" + } + }, + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "oracle": { + "from": "0xc5C8E77B397E531B8EC06BFb0048328B30E9eCfB", + "to": "0x4a838a3Dac6633bB1fd932B6f356DecFCAf7803D" + }, + "oracleDescription": { + "from": "DAI / USD", + "to": "Capped DAI/USD" + } + }, + "0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8": { + "oracle": { + "from": "0x04c28D6fE897859153eA753f986cc249Bf064f71", + "to": "0x256f33FC0110B1297f78f48524631D30B752480D" + }, + "oracleDescription": { + "from": "rETH/ETH/USD", + "to": "Capped rETH / ETH / USD" + } + }, + "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8": { + "oracle": { + "from": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "to": "0xDe25a88F87FEd9F8999fAbF6729dCB121893623C" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": { + "oracle": { + "from": "0x3f3f5dF88dC9F13eac63DF89EC16ef6e7E25DdE7", + "to": "0x84dC1C52D7C340AA54B4e8799FBB31C3D28E67aD" + }, + "oracleDescription": { + "from": "USDT / USD", + "to": "Capped USDT/USD" + } + }, + "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": { + "oracle": { + "from": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "to": "0xDe25a88F87FEd9F8999fAbF6729dCB121893623C" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..bba765d38 --- /dev/null +++ b/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,107 @@ +## Reserve changes + +### Reserve altered + +#### sAVAX ([0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE](https://snowtrace.io/address/0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xc9245871D69BF4c36c6F2D15E0D68Ffa883FE1A7](https://snowtrace.io/address/0xc9245871D69BF4c36c6F2D15E0D68Ffa883FE1A7) | [0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9](https://snowtrace.io/address/0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9) | +| oracleDecimals | null | 8 | +| oracleDescription | null | Capped sAVAX / AVAX / USD | + + +#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowtrace.io/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a](https://snowtrace.io/address/0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a) | [0x39185f2236A6022b682e8BB93C040d125DA093CF](https://snowtrace.io/address/0x39185f2236A6022b682e8BB93C040d125DA093CF) | +| oracleDescription | USDT / USD | Capped USDt/USD | + + +#### USDC ([0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E](https://snowtrace.io/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xF096872672F44d6EBA71458D74fe67F9a77a23B9](https://snowtrace.io/address/0xF096872672F44d6EBA71458D74fe67F9a77a23B9) | [0xD8277249e871BE9A402fa286C2C5ec16046dC512](https://snowtrace.io/address/0xD8277249e871BE9A402fa286C2C5ec16046dC512) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### FRAX ([0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64](https://snowtrace.io/address/0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xbBa56eF1565354217a3353a466edB82E8F25b08e](https://snowtrace.io/address/0xbBa56eF1565354217a3353a466edB82E8F25b08e) | [0x6208576378D06ce69A27987b7A524A9B15d499a4](https://snowtrace.io/address/0x6208576378D06ce69A27987b7A524A9B15d499a4) | +| oracleDescription | FRAX / USD | Capped FRAX/USD | + + +#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowtrace.io/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300](https://snowtrace.io/address/0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300) | [0xf82da795727633aFA9BB0f1B08A87c0F6A38723f](https://snowtrace.io/address/0xf82da795727633aFA9BB0f1B08A87c0F6A38723f) | +| oracleDescription | DAI / USD | Capped DAI.e/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE": { + "oracle": { + "from": "0xc9245871D69BF4c36c6F2D15E0D68Ffa883FE1A7", + "to": "0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9" + }, + "oracleDecimals": { + "from": null, + "to": 8 + }, + "oracleDescription": { + "from": null, + "to": "Capped sAVAX / AVAX / USD" + } + }, + "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7": { + "oracle": { + "from": "0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a", + "to": "0x39185f2236A6022b682e8BB93C040d125DA093CF" + }, + "oracleDescription": { + "from": "USDT / USD", + "to": "Capped USDt/USD" + } + }, + "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E": { + "oracle": { + "from": "0xF096872672F44d6EBA71458D74fe67F9a77a23B9", + "to": "0xD8277249e871BE9A402fa286C2C5ec16046dC512" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64": { + "oracle": { + "from": "0xbBa56eF1565354217a3353a466edB82E8F25b08e", + "to": "0x6208576378D06ce69A27987b7A524A9B15d499a4" + }, + "oracleDescription": { + "from": "FRAX / USD", + "to": "Capped FRAX/USD" + } + }, + "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70": { + "oracle": { + "from": "0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300", + "to": "0xf82da795727633aFA9BB0f1B08A87c0F6A38723f" + }, + "oracleDescription": { + "from": "DAI / USD", + "to": "Capped DAI.e/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..6dd92c2b6 --- /dev/null +++ b/diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,48 @@ +## Reserve changes + +### Reserve altered + +#### USDT ([0x55d398326f99059fF775485246999027B3197955](https://bscscan.com/address/0x55d398326f99059fF775485246999027B3197955)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xB97Ad0E74fa7d920791E90258A6E2085088b4320](https://bscscan.com/address/0xB97Ad0E74fa7d920791E90258A6E2085088b4320) | [0x0F682319Ed4A240b7a2599A48C965049515D9bC3](https://bscscan.com/address/0x0F682319Ed4A240b7a2599A48C965049515D9bC3) | +| oracleDescription | USDT / USD | Capped USDT/USD | + + +#### USDC ([0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d](https://bscscan.com/address/0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x51597f405303C4377E36123cBc172b13269EA163](https://bscscan.com/address/0x51597f405303C4377E36123cBc172b13269EA163) | [0xaFcFF74AE956f4c23c27Db49659D4a7F350415C1](https://bscscan.com/address/0xaFcFF74AE956f4c23c27Db49659D4a7F350415C1) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x55d398326f99059fF775485246999027B3197955": { + "oracle": { + "from": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "to": "0x0F682319Ed4A240b7a2599A48C965049515D9bC3" + }, + "oracleDescription": { + "from": "USDT / USD", + "to": "Capped USDT/USD" + } + }, + "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d": { + "oracle": { + "from": "0x51597f405303C4377E36123cBc172b13269EA163", + "to": "0xaFcFF74AE956f4c23c27Db49659D4a7F350415C1" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Base_SetPriceCapAdapters_20240227_before_AaveV3Base_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Base_SetPriceCapAdapters_20240227_before_AaveV3Base_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..0afef352a --- /dev/null +++ b/diffs/AaveV3Base_SetPriceCapAdapters_20240227_before_AaveV3Base_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,89 @@ +## Reserve changes + +### Reserve altered + +#### cbETH ([0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22](https://basescan.org/address/0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x80f2c02224a2E548FC67c0bF705eBFA825dd5439](https://basescan.org/address/0x80f2c02224a2E548FC67c0bF705eBFA825dd5439) | [0x8e11Ad4531826ff47BD8157a2c705F5422Da6A61](https://basescan.org/address/0x8e11Ad4531826ff47BD8157a2c705F5422Da6A61) | +| oracleDescription | cbETH/ETH/USD | Capped cbETH / ETH / USD | +| oracleLatestAnswer | 3773.85227086 | 3794.50527887 | + + +#### USDC ([0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913](https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x7e860098F58bBFC8648a4311b374B1D669a2bc6B](https://basescan.org/address/0x7e860098F58bBFC8648a4311b374B1D669a2bc6B) | [0x978D8878b53Fbe40dab7D4AB47b97AB622FFeF9f](https://basescan.org/address/0x978D8878b53Fbe40dab7D4AB47b97AB622FFeF9f) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### wstETH ([0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452](https://basescan.org/address/0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x945fD405773973d286De54E44649cc0d9e264F78](https://basescan.org/address/0x945fD405773973d286De54E44649cc0d9e264F78) | [0x56038D3998C42db18ba3B821bD1EbaB9B678e657](https://basescan.org/address/0x56038D3998C42db18ba3B821bD1EbaB9B678e657) | +| oracleDescription | wstETH/ETH/USD | Capped wstETH / stETH(ETH) / USD | + + +#### USDbC ([0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA](https://basescan.org/address/0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x7e860098F58bBFC8648a4311b374B1D669a2bc6B](https://basescan.org/address/0x7e860098F58bBFC8648a4311b374B1D669a2bc6B) | [0x978D8878b53Fbe40dab7D4AB47b97AB622FFeF9f](https://basescan.org/address/0x978D8878b53Fbe40dab7D4AB47b97AB622FFeF9f) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22": { + "oracle": { + "from": "0x80f2c02224a2E548FC67c0bF705eBFA825dd5439", + "to": "0x8e11Ad4531826ff47BD8157a2c705F5422Da6A61" + }, + "oracleDescription": { + "from": "cbETH/ETH/USD", + "to": "Capped cbETH / ETH / USD" + }, + "oracleLatestAnswer": { + "from": 377385227086, + "to": 379450527887 + } + }, + "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "oracle": { + "from": "0x7e860098F58bBFC8648a4311b374B1D669a2bc6B", + "to": "0x978D8878b53Fbe40dab7D4AB47b97AB622FFeF9f" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452": { + "oracle": { + "from": "0x945fD405773973d286De54E44649cc0d9e264F78", + "to": "0x56038D3998C42db18ba3B821bD1EbaB9B678e657" + }, + "oracleDescription": { + "from": "wstETH/ETH/USD", + "to": "Capped wstETH / stETH(ETH) / USD" + } + }, + "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA": { + "oracle": { + "from": "0x7e860098F58bBFC8648a4311b374B1D669a2bc6B", + "to": "0x978D8878b53Fbe40dab7D4AB47b97AB622FFeF9f" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..a729e5146 --- /dev/null +++ b/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,225 @@ +## Reserve changes + +### Reserve altered + +#### LUSD ([0x5f98805A4E8be255a32880FDeC7F6728C6568bA0](https://etherscan.io/address/0x5f98805A4E8be255a32880FDeC7F6728C6568bA0)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x3D7aE7E594f2f2091Ad8798313450130d0Aba3a0](https://etherscan.io/address/0x3D7aE7E594f2f2091Ad8798313450130d0Aba3a0) | [0x9eCdfaCca946614cc32aF63F3DBe50959244F3af](https://etherscan.io/address/0x9eCdfaCca946614cc32aF63F3DBe50959244F3af) | +| oracleDescription | LUSD / USD | Capped LUSD/USD | + + +#### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9](https://etherscan.io/address/0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9) | [0xaEb897E1Dc6BbdceD3B9D551C71a8cf172F27AC4](https://etherscan.io/address/0xaEb897E1Dc6BbdceD3B9D551C71a8cf172F27AC4) | +| oracleDescription | DAI / USD | Capped DAI/USD | + + +#### PYUSD ([0x6c3ea9036406852006290770BEdFcAbA0e23A0e8](https://etherscan.io/address/0x6c3ea9036406852006290770BEdFcAbA0e23A0e8)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x8f1dF6D7F2db73eECE86a18b4381F4707b918FB1](https://etherscan.io/address/0x8f1dF6D7F2db73eECE86a18b4381F4707b918FB1) | [0x150bAe7Ce224555D39AfdBc6Cb4B8204E594E022](https://etherscan.io/address/0x150bAe7Ce224555D39AfdBc6Cb4B8204E594E022) | +| oracleDescription | PYUSD / USD | Capped pyUSD/USD | + + +#### wstETH ([0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0](https://etherscan.io/address/0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x8B6851156023f4f5A66F68BEA80851c3D905Ac93](https://etherscan.io/address/0x8B6851156023f4f5A66F68BEA80851c3D905Ac93) | [0xB4aB0c94159bc2d8C133946E7241368fc2F2a010](https://etherscan.io/address/0xB4aB0c94159bc2d8C133946E7241368fc2F2a010) | +| 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 | +| --- | --- | --- | +| oracle | [0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD](https://etherscan.io/address/0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD) | [0x45D270263BBee500CF8adcf2AbC0aC227097b036](https://etherscan.io/address/0x45D270263BBee500CF8adcf2AbC0aC227097b036) | +| oracleDescription | FRAX / USD | Capped FRAX/USD | + + +#### USDC ([0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6](https://etherscan.io/address/0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6) | [0x736bF902680e68989886e9807CD7Db4B3E015d3C](https://etherscan.io/address/0x736bF902680e68989886e9807CD7Db4B3E015d3C) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### cbETH ([0xBe9895146f7AF43049ca1c1AE358B0541Ea49704](https://etherscan.io/address/0xBe9895146f7AF43049ca1c1AE358B0541Ea49704)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731](https://etherscan.io/address/0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731) | [0x6243d2F41b4ec944F731f647589E28d9745a2674](https://etherscan.io/address/0x6243d2F41b4ec944F731f647589E28d9745a2674) | +| oracleDescription | null | Capped cbETH / ETH / USD | +| oracleLatestAnswer | 3772.63505463 | 3794.26459819 | + + +#### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x05225Cd708bCa9253789C1374e4337a019e99D56](https://etherscan.io/address/0x05225Cd708bCa9253789C1374e4337a019e99D56) | [0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE](https://etherscan.io/address/0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE) | +| oracleDecimals | null | 8 | +| oracleDescription | null | Capped rETH / ETH / USD | +| oracleLatestAnswer | 0.39168598007 | 0.391300340759 | + + +#### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x3E7d1eAB13ad0104d2750B8863b489D65364e32D](https://etherscan.io/address/0x3E7d1eAB13ad0104d2750B8863b489D65364e32D) | [0xC26D4a1c46d884cfF6dE9800B6aE7A8Cf48B4Ff8](https://etherscan.io/address/0xC26D4a1c46d884cfF6dE9800B6aE7A8Cf48B4Ff8) | +| oracleDescription | USDT / USD | Capped USDT/USD | + + +#### crvUSD ([0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E](https://etherscan.io/address/0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xEEf0C605546958c1f899b6fB336C20671f9cD49F](https://etherscan.io/address/0xEEf0C605546958c1f899b6fB336C20671f9cD49F) | [0x02AeE5b225366302339748951E1a924617b8814F](https://etherscan.io/address/0x02AeE5b225366302339748951E1a924617b8814F) | +| oracleDescription | CRVUSD / USD | Capped crvUSD/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { + "oracle": { + "from": "0x3D7aE7E594f2f2091Ad8798313450130d0Aba3a0", + "to": "0x9eCdfaCca946614cc32aF63F3DBe50959244F3af" + }, + "oracleDescription": { + "from": "LUSD / USD", + "to": "Capped LUSD/USD" + } + }, + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "oracle": { + "from": "0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9", + "to": "0xaEb897E1Dc6BbdceD3B9D551C71a8cf172F27AC4" + }, + "oracleDescription": { + "from": "DAI / USD", + "to": "Capped DAI/USD" + } + }, + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "oracle": { + "from": "0x8f1dF6D7F2db73eECE86a18b4381F4707b918FB1", + "to": "0x150bAe7Ce224555D39AfdBc6Cb4B8204E594E022" + }, + "oracleDescription": { + "from": "PYUSD / USD", + "to": "Capped pyUSD/USD" + } + }, + "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { + "oracle": { + "from": "0x8B6851156023f4f5A66F68BEA80851c3D905Ac93", + "to": "0xB4aB0c94159bc2d8C133946E7241368fc2F2a010" + }, + "oracleDescription": { + "from": "wstETH/ETH/USD", + "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", + "to": "0x45D270263BBee500CF8adcf2AbC0aC227097b036" + }, + "oracleDescription": { + "from": "FRAX / USD", + "to": "Capped FRAX/USD" + } + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "oracle": { + "from": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "to": "0x736bF902680e68989886e9807CD7Db4B3E015d3C" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704": { + "oracle": { + "from": "0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731", + "to": "0x6243d2F41b4ec944F731f647589E28d9745a2674" + }, + "oracleLatestAnswer": { + "from": 377263505463, + "to": 379426459819 + }, + "oracleDescription": { + "from": null, + "to": "Capped cbETH / ETH / USD" + } + }, + "0xae78736Cd615f374D3085123A210448E74Fc6393": { + "oracle": { + "from": "0x05225Cd708bCa9253789C1374e4337a019e99D56", + "to": "0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE" + }, + "oracleLatestAnswer": { + "from": 391685980070, + "to": 391300340759 + }, + "oracleDecimals": { + "from": null, + "to": 8 + }, + "oracleDescription": { + "from": null, + "to": "Capped rETH / ETH / USD" + } + }, + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "oracle": { + "from": "0x3E7d1eAB13ad0104d2750B8863b489D65364e32D", + "to": "0xC26D4a1c46d884cfF6dE9800B6aE7A8Cf48B4Ff8" + }, + "oracleDescription": { + "from": "USDT / USD", + "to": "Capped USDT/USD" + } + }, + "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { + "oracle": { + "from": "0xEEf0C605546958c1f899b6fB336C20671f9cD49F", + "to": "0x02AeE5b225366302339748951E1a924617b8814F" + }, + "oracleDescription": { + "from": "CRVUSD / USD", + "to": "Capped crvUSD/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..3bbddc38f --- /dev/null +++ b/diffs/AaveV3Gnosis_SetPriceCapAdapters_20240227_before_AaveV3Gnosis_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,84 @@ +## Reserve changes + +### Reserve altered + +#### wstETH ([0x6C76971f98945AE98dD7d4DFcA8711ebea946eA6](https://gnosisscan.io/address/0x6C76971f98945AE98dD7d4DFcA8711ebea946eA6)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xcb0670258e5961CCA85D8F71D29C1167Ef20De99](https://gnosisscan.io/address/0xcb0670258e5961CCA85D8F71D29C1167Ef20De99) | [0x8Ee42Ba520cA106294163fb8b1ffE9C6Fba35507](https://gnosisscan.io/address/0x8Ee42Ba520cA106294163fb8b1ffE9C6Fba35507) | +| oracleDescription | wstETH/ETH/USD | Capped wstETH / stETH(ETH) / USD | + + +#### USDC ([0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83](https://gnosisscan.io/address/0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x26C31ac71010aF62E6B486D1132E266D6298857D](https://gnosisscan.io/address/0x26C31ac71010aF62E6B486D1132E266D6298857D) | [0x0a2d05bc646C65A029e602c257DfA14adF8BfAd2](https://gnosisscan.io/address/0x0a2d05bc646C65A029e602c257DfA14adF8BfAd2) | +| 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 | +| --- | --- | --- | +| oracle | [0x678df3415fc31947dA4324eC63212874be5a82f8](https://gnosisscan.io/address/0x678df3415fc31947dA4324eC63212874be5a82f8) | [0xE5269eF0CE04E509E8134624c7BF043b21e10897](https://gnosisscan.io/address/0xE5269eF0CE04E509E8134624c7BF043b21e10897) | +| oracleDescription | DAI / USD | Capped wXDAI/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x6C76971f98945AE98dD7d4DFcA8711ebea946eA6": { + "oracle": { + "from": "0xcb0670258e5961CCA85D8F71D29C1167Ef20De99", + "to": "0x8Ee42Ba520cA106294163fb8b1ffE9C6Fba35507" + }, + "oracleDescription": { + "from": "wstETH/ETH/USD", + "to": "Capped wstETH / stETH(ETH) / USD" + } + }, + "0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83": { + "oracle": { + "from": "0x26C31ac71010aF62E6B486D1132E266D6298857D", + "to": "0x0a2d05bc646C65A029e602c257DfA14adF8BfAd2" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0xaf204776c7245bF4147c2612BF6e5972Ee483701": { + "oracle": { + "from": "0x1D0f881Ce1a646E2f27Dec3c57Fa056cB838BCC2", + "to": "0x808E873E85766fc889aa550018Fd2ad13Ad60f2D" + }, + "oracleDescription": { + "from": "sDAI/DAI/USD", + "to": "Capped sDAI / DAI / USD" + } + }, + "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d": { + "oracle": { + "from": "0x678df3415fc31947dA4324eC63212874be5a82f8", + "to": "0xE5269eF0CE04E509E8134624c7BF043b21e10897" + }, + "oracleDescription": { + "from": "DAI / USD", + "to": "Capped wXDAI/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Metis_SetPriceCapAdapters_20240304_before_AaveV3Metis_SetPriceCapAdapters_20240304_after.md b/diffs/AaveV3Metis_SetPriceCapAdapters_20240304_before_AaveV3Metis_SetPriceCapAdapters_20240304_after.md new file mode 100644 index 000000000..2b79e7444 --- /dev/null +++ b/diffs/AaveV3Metis_SetPriceCapAdapters_20240304_before_AaveV3Metis_SetPriceCapAdapters_20240304_after.md @@ -0,0 +1,66 @@ +## Reserve changes + +### Reserve altered + +#### m.DAI ([0x4c078361FC9BbB78DF910800A991C7c3DD2F6ce0](https://andromeda-explorer.metis.io/address/0x4c078361FC9BbB78DF910800A991C7c3DD2F6ce0)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xe0351cAAE70B5AdBD0107cD5331AD1D79c4c1CA1](https://andromeda-explorer.metis.io/address/0xe0351cAAE70B5AdBD0107cD5331AD1D79c4c1CA1) | [0xB3721282cd62Ba8F7bB02Cb843F3a34f9e109ef8](https://andromeda-explorer.metis.io/address/0xB3721282cd62Ba8F7bB02Cb843F3a34f9e109ef8) | +| oracleDescription | DAI / USD | Capped mDAI/USD | + + +#### m.USDC ([0xEA32A96608495e54156Ae48931A7c20f0dcc1a21](https://andromeda-explorer.metis.io/address/0xEA32A96608495e54156Ae48931A7c20f0dcc1a21)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x663855969c85F3BE415807250414Ca9129533a5f](https://andromeda-explorer.metis.io/address/0x663855969c85F3BE415807250414Ca9129533a5f) | [0xF2acD6aE4fcf662161eA354dA844f224bf91FF8c](https://andromeda-explorer.metis.io/address/0xF2acD6aE4fcf662161eA354dA844f224bf91FF8c) | +| oracleDescription | USDC / USD | Capped mUSDC/USD | + + +#### m.USDT ([0xbB06DCA3AE6887fAbF931640f67cab3e3a16F4dC](https://andromeda-explorer.metis.io/address/0xbB06DCA3AE6887fAbF931640f67cab3e3a16F4dC)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x51864b8948Aa5e35aace2BaDaF901D63418A3b9D](https://andromeda-explorer.metis.io/address/0x51864b8948Aa5e35aace2BaDaF901D63418A3b9D) | [0xD1D7DCBDE72916646A7F8AcE6Ad8C5179D8ddFbB](https://andromeda-explorer.metis.io/address/0xD1D7DCBDE72916646A7F8AcE6Ad8C5179D8ddFbB) | +| oracleDescription | USDT / USD | Capped mUSDT/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x4c078361FC9BbB78DF910800A991C7c3DD2F6ce0": { + "oracle": { + "from": "0xe0351cAAE70B5AdBD0107cD5331AD1D79c4c1CA1", + "to": "0xB3721282cd62Ba8F7bB02Cb843F3a34f9e109ef8" + }, + "oracleDescription": { + "from": "DAI / USD", + "to": "Capped mDAI/USD" + } + }, + "0xEA32A96608495e54156Ae48931A7c20f0dcc1a21": { + "oracle": { + "from": "0x663855969c85F3BE415807250414Ca9129533a5f", + "to": "0xF2acD6aE4fcf662161eA354dA844f224bf91FF8c" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped mUSDC/USD" + } + }, + "0xbB06DCA3AE6887fAbF931640f67cab3e3a16F4dC": { + "oracle": { + "from": "0x51864b8948Aa5e35aace2BaDaF901D63418A3b9D", + "to": "0xD1D7DCBDE72916646A7F8AcE6Ad8C5179D8ddFbB" + }, + "oracleDescription": { + "from": "USDT / USD", + "to": "Capped mUSDT/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..9be1e5650 --- /dev/null +++ b/diffs/AaveV3Optimism_SetPriceCapAdapters_20240227_before_AaveV3Optimism_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,156 @@ +## Reserve changes + +### Reserve altered + +#### USDC ([0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85](https://optimistic.etherscan.io/address/0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x16a9FA2FDa030272Ce99B29CF780dFA30361E0f3](https://optimistic.etherscan.io/address/0x16a9FA2FDa030272Ce99B29CF780dFA30361E0f3) | [0x2daA7078f78485A708003989cBc9a643e3b4B61f](https://optimistic.etherscan.io/address/0x2daA7078f78485A708003989cBc9a643e3b4B61f) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### wstETH ([0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb](https://optimistic.etherscan.io/address/0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x80f2c02224a2E548FC67c0bF705eBFA825dd5439](https://optimistic.etherscan.io/address/0x80f2c02224a2E548FC67c0bF705eBFA825dd5439) | [0x724E47194d97263ccb71FDad84b4fed18a8be387](https://optimistic.etherscan.io/address/0x724E47194d97263ccb71FDad84b4fed18a8be387) | +| oracleDescription | wstETH/ETH/USD | Capped wstETH / stETH(ETH) / USD | + + +#### USDC ([0x7F5c764cBc14f9669B88837ca1490cCa17c31607](https://optimistic.etherscan.io/address/0x7F5c764cBc14f9669B88837ca1490cCa17c31607)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x16a9FA2FDa030272Ce99B29CF780dFA30361E0f3](https://optimistic.etherscan.io/address/0x16a9FA2FDa030272Ce99B29CF780dFA30361E0f3) | [0x2daA7078f78485A708003989cBc9a643e3b4B61f](https://optimistic.etherscan.io/address/0x2daA7078f78485A708003989cBc9a643e3b4B61f) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### sUSD ([0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9](https://optimistic.etherscan.io/address/0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x7f99817d87baD03ea21E05112Ca799d715730efe](https://optimistic.etherscan.io/address/0x7f99817d87baD03ea21E05112Ca799d715730efe) | [0xC77E9CF9603F5ef5503213229ABB1Fec3001f312](https://optimistic.etherscan.io/address/0xC77E9CF9603F5ef5503213229ABB1Fec3001f312) | +| oracleDescription | SUSD / USD | Capped sUSD/USD | + + +#### USDT ([0x94b008aA00579c1307B0EF2c499aD98a8ce58e58](https://optimistic.etherscan.io/address/0x94b008aA00579c1307B0EF2c499aD98a8ce58e58)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xECef79E109e997bCA29c1c0897ec9d7b03647F5E](https://optimistic.etherscan.io/address/0xECef79E109e997bCA29c1c0897ec9d7b03647F5E) | [0x70E6DBBFFc9c3c6fB4a9c349E3101B7dCEE67f4D](https://optimistic.etherscan.io/address/0x70E6DBBFFc9c3c6fB4a9c349E3101B7dCEE67f4D) | +| oracleDescription | USDT / USD | Capped USDT/USD | + + +#### rETH ([0x9Bcef72be871e61ED4fBbc7630889beE758eb81D](https://optimistic.etherscan.io/address/0x9Bcef72be871e61ED4fBbc7630889beE758eb81D)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x52d5F9f884CA21C27E2100735d793C6771eAB793](https://optimistic.etherscan.io/address/0x52d5F9f884CA21C27E2100735d793C6771eAB793) | [0xF17e75D58D4Be71B8e674fA104B71a827e38F087](https://optimistic.etherscan.io/address/0xF17e75D58D4Be71B8e674fA104B71a827e38F087) | +| oracleDescription | rETH/ETH/USD | Capped rETH / ETH / USD | + + +#### DAI ([0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1](https://optimistic.etherscan.io/address/0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x8dBa75e83DA73cc766A7e5a0ee71F656BAb470d6](https://optimistic.etherscan.io/address/0x8dBa75e83DA73cc766A7e5a0ee71F656BAb470d6) | [0x1a96fe91278bcF6F19665F642FE7a88cD5c360bb](https://optimistic.etherscan.io/address/0x1a96fe91278bcF6F19665F642FE7a88cD5c360bb) | +| oracleDescription | DAI / USD | Capped DAI/USD | + + +#### LUSD ([0xc40F949F8a4e094D1b49a23ea9241D289B7b2819](https://optimistic.etherscan.io/address/0xc40F949F8a4e094D1b49a23ea9241D289B7b2819)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x9dfc79Aaeb5bb0f96C6e9402671981CdFc424052](https://optimistic.etherscan.io/address/0x9dfc79Aaeb5bb0f96C6e9402671981CdFc424052) | [0x8f4dAFb6Feb190e7846eb7665fD49FFb1177Ff8e](https://optimistic.etherscan.io/address/0x8f4dAFb6Feb190e7846eb7665fD49FFb1177Ff8e) | +| oracleDescription | LUSD / USD | Capped LUSD/USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85": { + "oracle": { + "from": "0x16a9FA2FDa030272Ce99B29CF780dFA30361E0f3", + "to": "0x2daA7078f78485A708003989cBc9a643e3b4B61f" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb": { + "oracle": { + "from": "0x80f2c02224a2E548FC67c0bF705eBFA825dd5439", + "to": "0x724E47194d97263ccb71FDad84b4fed18a8be387" + }, + "oracleDescription": { + "from": "wstETH/ETH/USD", + "to": "Capped wstETH / stETH(ETH) / USD" + } + }, + "0x7F5c764cBc14f9669B88837ca1490cCa17c31607": { + "oracle": { + "from": "0x16a9FA2FDa030272Ce99B29CF780dFA30361E0f3", + "to": "0x2daA7078f78485A708003989cBc9a643e3b4B61f" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9": { + "oracle": { + "from": "0x7f99817d87baD03ea21E05112Ca799d715730efe", + "to": "0xC77E9CF9603F5ef5503213229ABB1Fec3001f312" + }, + "oracleDescription": { + "from": "SUSD / USD", + "to": "Capped sUSD/USD" + } + }, + "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58": { + "oracle": { + "from": "0xECef79E109e997bCA29c1c0897ec9d7b03647F5E", + "to": "0x70E6DBBFFc9c3c6fB4a9c349E3101B7dCEE67f4D" + }, + "oracleDescription": { + "from": "USDT / USD", + "to": "Capped USDT/USD" + } + }, + "0x9Bcef72be871e61ED4fBbc7630889beE758eb81D": { + "oracle": { + "from": "0x52d5F9f884CA21C27E2100735d793C6771eAB793", + "to": "0xF17e75D58D4Be71B8e674fA104B71a827e38F087" + }, + "oracleDescription": { + "from": "rETH/ETH/USD", + "to": "Capped rETH / ETH / USD" + } + }, + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "oracle": { + "from": "0x8dBa75e83DA73cc766A7e5a0ee71F656BAb470d6", + "to": "0x1a96fe91278bcF6F19665F642FE7a88cD5c360bb" + }, + "oracleDescription": { + "from": "DAI / USD", + "to": "Capped DAI/USD" + } + }, + "0xc40F949F8a4e094D1b49a23ea9241D289B7b2819": { + "oracle": { + "from": "0x9dfc79Aaeb5bb0f96C6e9402671981CdFc424052", + "to": "0x8f4dAFb6Feb190e7846eb7665fD49FFb1177Ff8e" + }, + "oracleDescription": { + "from": "LUSD / USD", + "to": "Capped LUSD/USD" + } + } + } +} +``` \ No newline at end of file diff --git a/diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md new file mode 100644 index 000000000..c9cf471f2 --- /dev/null +++ b/diffs/AaveV3Polygon_SetPriceCapAdapters_20240227_before_AaveV3Polygon_SetPriceCapAdapters_20240227_after.md @@ -0,0 +1,138 @@ +## Reserve changes + +### Reserve altered + +#### wstETH ([0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD](https://polygonscan.com/address/0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xe34949A48cd2E6f5CD41753e449bd2d43993C9AC](https://polygonscan.com/address/0xe34949A48cd2E6f5CD41753e449bd2d43993C9AC) | [0xBD96b5ABBC6048c28184b462167E487533F2e35E](https://polygonscan.com/address/0xBD96b5ABBC6048c28184b462167E487533F2e35E) | +| oracleDescription | wstETH/ETH/USD | Capped wstETH / stETH(ETH) / USD | + + +#### USDC ([0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174](https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xfE4A8cc5b5B2366C1B58Bea3858e81843581b2F7](https://polygonscan.com/address/0xfE4A8cc5b5B2366C1B58Bea3858e81843581b2F7) | [0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb](https://polygonscan.com/address/0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### stMATIC ([0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4](https://polygonscan.com/address/0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xEe96b77129cF54581B5a8FECCcC50A6A067034a1](https://polygonscan.com/address/0xEe96b77129cF54581B5a8FECCcC50A6A067034a1) | [0x6D02E35031C4D99ee3A6A2BA47FaD0cFE355cA8f](https://polygonscan.com/address/0x6D02E35031C4D99ee3A6A2BA47FaD0cFE355cA8f) | +| oracleDescription | stMATIC/MATIC/USD | Capped stMATIC / MATIC / USD | + + +#### USDC ([0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359](https://polygonscan.com/address/0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0xfE4A8cc5b5B2366C1B58Bea3858e81843581b2F7](https://polygonscan.com/address/0xfE4A8cc5b5B2366C1B58Bea3858e81843581b2F7) | [0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb](https://polygonscan.com/address/0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb) | +| oracleDescription | USDC / USD | Capped USDC/USD | + + +#### DAI ([0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063](https://polygonscan.com/address/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x4746DeC9e833A82EC7C2C1356372CcF2cfcD2F3D](https://polygonscan.com/address/0x4746DeC9e833A82EC7C2C1356372CcF2cfcD2F3D) | [0xF86577E7d27Ed35b85A7645c58bAaA64453fe32B](https://polygonscan.com/address/0xF86577E7d27Ed35b85A7645c58bAaA64453fe32B) | +| oracleDescription | DAI / USD | Capped DAI/USD | + + +#### USDT ([0xc2132D05D31c914a87C6611C10748AEb04B58e8F](https://polygonscan.com/address/0xc2132D05D31c914a87C6611C10748AEb04B58e8F)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x0A6513e40db6EB1b165753AD52E80663aeA50545](https://polygonscan.com/address/0x0A6513e40db6EB1b165753AD52E80663aeA50545) | [0xaA574f4f6E124E77a7a1B5Ed91c8b407000A7730](https://polygonscan.com/address/0xaA574f4f6E124E77a7a1B5Ed91c8b407000A7730) | +| oracleDescription | USDT / USD | Capped USDT/USD | + + +#### MaticX ([0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6](https://polygonscan.com/address/0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x0e1120524e14Bd7aD96Ea76A1b1dD699913e2a45](https://polygonscan.com/address/0x0e1120524e14Bd7aD96Ea76A1b1dD699913e2a45) | [0xB0A72A5e454890e9715e059e8df8582a6B383DE3](https://polygonscan.com/address/0xB0A72A5e454890e9715e059e8df8582a6B383DE3) | +| oracleDescription | MATICX/MATIC/USD | Capped MaticX / MATIC / USD | + + +## Raw diff + +```json +{ + "reserves": { + "0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD": { + "oracle": { + "from": "0xe34949A48cd2E6f5CD41753e449bd2d43993C9AC", + "to": "0xBD96b5ABBC6048c28184b462167E487533F2e35E" + }, + "oracleDescription": { + "from": "wstETH/ETH/USD", + "to": "Capped wstETH / stETH(ETH) / USD" + } + }, + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "oracle": { + "from": "0xfE4A8cc5b5B2366C1B58Bea3858e81843581b2F7", + "to": "0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4": { + "oracle": { + "from": "0xEe96b77129cF54581B5a8FECCcC50A6A067034a1", + "to": "0x6D02E35031C4D99ee3A6A2BA47FaD0cFE355cA8f" + }, + "oracleDescription": { + "from": "stMATIC/MATIC/USD", + "to": "Capped stMATIC / MATIC / USD" + } + }, + "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359": { + "oracle": { + "from": "0xfE4A8cc5b5B2366C1B58Bea3858e81843581b2F7", + "to": "0x17E33D122FC34c7ad8FBd4a1995Dff9c8aE675eb" + }, + "oracleDescription": { + "from": "USDC / USD", + "to": "Capped USDC/USD" + } + }, + "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063": { + "oracle": { + "from": "0x4746DeC9e833A82EC7C2C1356372CcF2cfcD2F3D", + "to": "0xF86577E7d27Ed35b85A7645c58bAaA64453fe32B" + }, + "oracleDescription": { + "from": "DAI / USD", + "to": "Capped DAI/USD" + } + }, + "0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "oracle": { + "from": "0x0A6513e40db6EB1b165753AD52E80663aeA50545", + "to": "0xaA574f4f6E124E77a7a1B5Ed91c8b407000A7730" + }, + "oracleDescription": { + "from": "USDT / USD", + "to": "Capped USDT/USD" + } + }, + "0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6": { + "oracle": { + "from": "0x0e1120524e14Bd7aD96Ea76A1b1dD699913e2a45", + "to": "0xB0A72A5e454890e9715e059e8df8582a6B383DE3" + }, + "oracleDescription": { + "from": "MATICX/MATIC/USD", + "to": "Capped MaticX / MATIC / 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 new file mode 100644 index 000000000..f5f7652f0 --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Arbitrum_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,29 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Arbitrum payload + * command: make test-contract filter=AaveV3Arbitrum_SetPriceCapAdapters_20240227 + */ +contract AaveV3Arbitrum_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('arbitrum'), 187055996); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Arbitrum_SetPriceCapAdapters_20240227', + AaveV3Arbitrum.POOL, + Payloads.ARBITRUM + ); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..91a7abe33 --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Avalanche_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,29 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Avalanche payload + * command: make test-contract filter=AaveV3Avalanche_SetPriceCapAdapters_20240227 + */ +contract AaveV3Avalanche_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('avalanche'), 42471369); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Avalanche_SetPriceCapAdapters_20240227', + AaveV3Avalanche.POOL, + Payloads.AVALANCHE + ); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..2cf460277 --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,25 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for BNB payload + * command: make test-contract filter=AaveV3BNB_SetPriceCapAdapters_20240227 + */ +contract AaveV3BNB_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('bnb'), 36678658); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3BNB_SetPriceCapAdapters_20240227', AaveV3BNB.POOL, Payloads.BNB); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Base_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Base_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..e4788be8f --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Base_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,25 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Base payload + * command: make test-contract filter=AaveV3Base_SetPriceCapAdapters_20240227 + */ +contract AaveV3Base_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('base'), 11389477); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Base_SetPriceCapAdapters_20240227', AaveV3Base.POOL, Payloads.BASE); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..2bcae9566 --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,29 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Ethereum payload + * command: make test-contract filter=AaveV3Ethereum_SetPriceCapAdapters_20240227 + */ +contract AaveV3Ethereum_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('mainnet'), 19362871); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Ethereum_SetPriceCapAdapters_20240227', + AaveV3Ethereum.POOL, + Payloads.ETHEREUM + ); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..3d86fc119 --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Gnosis_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,25 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Gnosis payload + * command: make test-contract filter=AaveV3Gnosis_SetPriceCapAdapters_20240227 + */ +contract AaveV3Gnosis_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('gnosis'), 32762592); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Gnosis_SetPriceCapAdapters_20240227', AaveV3Gnosis.POOL, Payloads.GNOSIS); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Metis_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Metis_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..b673550f2 --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Metis_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,25 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Metis payload + * command: make test-contract filter=AaveV3Metis_SetPriceCapAdapters_20240304 + */ +contract AaveV3Metis_SetPriceCapAdapters_20240304_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('metis'), 14600549); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Metis_SetPriceCapAdapters_20240304', AaveV3Metis.POOL, Payloads.METIS); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..a49fae21b --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Optimism_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,29 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Optimism payload + * command: make test-contract filter=AaveV3Optimism_SetPriceCapAdapters_20240227 + */ +contract AaveV3Optimism_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('optimism'), 116984758); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Optimism_SetPriceCapAdapters_20240227', + AaveV3Optimism.POOL, + Payloads.OPTIMISM + ); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol new file mode 100644 index 000000000..c588fc305 --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Polygon_SetPriceCapAdapters_20240227.t.sol @@ -0,0 +1,25 @@ +// 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 {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; + +/** + * @dev Test for Polygon payload + * command: make test-contract filter=AaveV3Polygon_SetPriceCapAdapters_20240227 + */ +contract AaveV3Polygon_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { + function setUp() public { + vm.createSelectFork(vm.rpcUrl('polygon'), 54261515); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV3Polygon_SetPriceCapAdapters_20240227', AaveV3Polygon.POOL, Payloads.POLYGON); + } +} diff --git a/src/20240227_Multi_SetPriceCapAdapters/Payloads.sol b/src/20240227_Multi_SetPriceCapAdapters/Payloads.sol new file mode 100644 index 000000000..e7e9a07bf --- /dev/null +++ b/src/20240227_Multi_SetPriceCapAdapters/Payloads.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +library Payloads { + // https://etherscan.io/address/0xec4d7aef658aedea8107b8b3018aeb13684a0b54 + address public constant ETHEREUM = 0xeC4d7Aef658AeDea8107b8b3018aeB13684A0b54; + + // https://polygonscan.com/address/0xbde0efa2ce806a02b4f25bfd77303c7790f279e4 + address public constant POLYGON = 0xbdE0Efa2CE806a02B4f25bfD77303C7790f279e4; + + // https://snowtrace.io/address/0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0 + address public constant AVALANCHE = 0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0; + + // https://optimistic.etherscan.io/address/0x8740b38ff207cc0f8bf2621fe467e9cf1aacdb86 + address public constant OPTIMISM = 0x8740b38fF207CC0F8BF2621fe467e9cF1AACDB86; + + // https://arbiscan.io/address/0x8d12d8d7eb9cbeee29a64e31dbc352b7ebc17337 + address public constant ARBITRUM = 0x8D12D8D7Eb9CbeEe29a64E31DbC352B7ebC17337; + + // https://andromeda-explorer.metis.io/address/0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03/ + address public constant METIS = 0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03; + + // https://basescan.org/address/0x360ef8d31b90718f13b73d10f3f3c122d86577f1 + address public constant BASE = 0x360eF8D31B90718f13b73d10f3F3C122d86577f1; + + // https://gnosisscan.io/address/0x473e655bb3066326f7a5ffa5d3cccd6e0ef6f61e + address public constant GNOSIS = 0x473e655bb3066326F7a5FFA5D3cCcd6E0eF6F61e; + + // https://bscscan.com/address/0x7525a45f37197dcb7c9e9e7e3a354dee81b1224b + address public constant BNB = 0x7525A45F37197DcB7C9e9E7E3a354DeE81b1224B; +} From 6fbc9fed8685042cd12a724f4e8a93c6c38df48f Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 5 Mar 2024 11:16:24 +0100 Subject: [PATCH 06/19] update diff with the new cli version --- ..._before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 a729e5146..d4c903774 100644 --- a/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md +++ b/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md @@ -74,7 +74,7 @@ | oracle | [0x05225Cd708bCa9253789C1374e4337a019e99D56](https://etherscan.io/address/0x05225Cd708bCa9253789C1374e4337a019e99D56) | [0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE](https://etherscan.io/address/0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE) | | oracleDecimals | null | 8 | | oracleDescription | null | Capped rETH / ETH / USD | -| oracleLatestAnswer | 0.39168598007 | 0.391300340759 | +| oracleLatestAnswer | 391,685,980,070 | 3913.00340759 | #### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) From bc4c136bb6d5bf00612f560ac49c17a0ac9f2725 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 5 Mar 2024 14:08:51 +0100 Subject: [PATCH 07/19] update mainnet payload --- ...reum_SetPriceCapAdapters_20240227_after.md | 15 +++------ ...thereum_SetPriceCapAdapters_20240227.t.sol | 2 +- .../Payloads.sol | 31 ------------------- .../SetPriceCapAdapters_20240227.s.sol | 4 +-- 4 files changed, 8 insertions(+), 44 deletions(-) delete mode 100644 src/20240227_Multi_SetPriceCapAdapters/Payloads.sol 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 d4c903774..a3d245384 100644 --- a/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md +++ b/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md @@ -64,17 +64,16 @@ | --- | --- | --- | | oracle | [0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731](https://etherscan.io/address/0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731) | [0x6243d2F41b4ec944F731f647589E28d9745a2674](https://etherscan.io/address/0x6243d2F41b4ec944F731f647589E28d9745a2674) | | oracleDescription | null | Capped cbETH / ETH / USD | -| oracleLatestAnswer | 3772.63505463 | 3794.26459819 | +| oracleLatestAnswer | 3983.38166794 | 4003.57195902 | #### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393)) | description | value before | value after | | --- | --- | --- | -| oracle | [0x05225Cd708bCa9253789C1374e4337a019e99D56](https://etherscan.io/address/0x05225Cd708bCa9253789C1374e4337a019e99D56) | [0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE](https://etherscan.io/address/0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE) | +| oracle | [0x05225Cd708bCa9253789C1374e4337a019e99D56](https://etherscan.io/address/0x05225Cd708bCa9253789C1374e4337a019e99D56) | [0x5AE8365D0a30D67145f0c55A08760C250559dB64](https://etherscan.io/address/0x5AE8365D0a30D67145f0c55A08760C250559dB64) | | oracleDecimals | null | 8 | | oracleDescription | null | Capped rETH / ETH / USD | -| oracleLatestAnswer | 391,685,980,070 | 3913.00340759 | #### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) @@ -174,8 +173,8 @@ "to": "0x6243d2F41b4ec944F731f647589E28d9745a2674" }, "oracleLatestAnswer": { - "from": 377263505463, - "to": 379426459819 + "from": 398338166794, + "to": 400357195902 }, "oracleDescription": { "from": null, @@ -185,11 +184,7 @@ "0xae78736Cd615f374D3085123A210448E74Fc6393": { "oracle": { "from": "0x05225Cd708bCa9253789C1374e4337a019e99D56", - "to": "0x21aB2dEE5ee29E28816a89d7d905d8296fa1C3cE" - }, - "oracleLatestAnswer": { - "from": 391685980070, - "to": 391300340759 + "to": "0x5AE8365D0a30D67145f0c55A08760C250559dB64" }, "oracleDecimals": { "from": null, diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3Ethereum_SetPriceCapAdapters_20240227.t.sol index 2bcae9566..d3274394c 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'), 19362871); + vm.createSelectFork(vm.rpcUrl('mainnet'), 19369127); } /** diff --git a/src/20240227_Multi_SetPriceCapAdapters/Payloads.sol b/src/20240227_Multi_SetPriceCapAdapters/Payloads.sol deleted file mode 100644 index e7e9a07bf..000000000 --- a/src/20240227_Multi_SetPriceCapAdapters/Payloads.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -library Payloads { - // https://etherscan.io/address/0xec4d7aef658aedea8107b8b3018aeb13684a0b54 - address public constant ETHEREUM = 0xeC4d7Aef658AeDea8107b8b3018aeB13684A0b54; - - // https://polygonscan.com/address/0xbde0efa2ce806a02b4f25bfd77303c7790f279e4 - address public constant POLYGON = 0xbdE0Efa2CE806a02B4f25bfD77303C7790f279e4; - - // https://snowtrace.io/address/0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0 - address public constant AVALANCHE = 0x7a74E967Ba0663F7fC174D7Fc50D818e2fe877b0; - - // https://optimistic.etherscan.io/address/0x8740b38ff207cc0f8bf2621fe467e9cf1aacdb86 - address public constant OPTIMISM = 0x8740b38fF207CC0F8BF2621fe467e9cF1AACDB86; - - // https://arbiscan.io/address/0x8d12d8d7eb9cbeee29a64e31dbc352b7ebc17337 - address public constant ARBITRUM = 0x8D12D8D7Eb9CbeEe29a64E31DbC352B7ebC17337; - - // https://andromeda-explorer.metis.io/address/0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03/ - address public constant METIS = 0xAE04aDeC3Ce3140d34377FB38C71C882E948AA03; - - // https://basescan.org/address/0x360ef8d31b90718f13b73d10f3f3c122d86577f1 - address public constant BASE = 0x360eF8D31B90718f13b73d10f3F3C122d86577f1; - - // https://gnosisscan.io/address/0x473e655bb3066326f7a5ffa5d3cccd6e0ef6f61e - address public constant GNOSIS = 0x473e655bb3066326F7a5FFA5D3cCcd6E0eF6F61e; - - // https://bscscan.com/address/0x7525a45f37197dcb7c9e9e7e3a354dee81b1224b - address public constant BNB = 0x7525A45F37197DcB7C9e9E7E3a354DeE81b1224B; -} diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol index 2c05d5c82..4525da690 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol @@ -5,8 +5,8 @@ import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aa import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, MetisScript, BaseScript, GnosisScript, BNBScript} from 'aave-helpers/ScriptUtils.sol'; library Payloads { - // https://etherscan.io/address/0xec4d7aef658aedea8107b8b3018aeb13684a0b54 - address public constant ETHEREUM = 0xeC4d7Aef658AeDea8107b8b3018aeB13684A0b54; + // https://etherscan.io/address/0x3611300f745f1e60aa1ce1d205517cdaa3b10b83 + address public constant ETHEREUM = 0x3611300f745F1e60AA1cE1d205517cDAA3b10B83; // https://polygonscan.com/address/0xbde0efa2ce806a02b4f25bfd77303c7790f279e4 address public constant POLYGON = 0xbdE0Efa2CE806a02B4f25bfD77303C7790f279e4; From 06515918882ec5a3d80a203a1204af3513f8861b Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Wed, 6 Mar 2024 09:37:19 +0100 Subject: [PATCH 08/19] add pyUSD to the aip --- .../SetPriceCapAdapters.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index 181bf2f48..461e6c795 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -35,17 +35,17 @@ All stablecoins are capped at 4%. Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine on every network. Below is the list of assets per network to be updated: -| Network | LSTs | Stables | -| --------- | ------------------------- | ----------------------------------- | -| Mainnet | wstETH, rETH, sDAI, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSd | -| 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 | -| Gnosis | wstETH, sDAI | USDC, xDAI | -| Base | wstETH, cbETH | USDC | -| Metis | | USDC, USDT, m.DAI | -| BNB | | USDC, USDT | +| 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 | +| Gnosis | wstETH, sDAI | USDC, xDAI | +| Base | wstETH, cbETH | USDC | +| Metis | | USDC, USDT, m.DAI | +| BNB | | USDC, USDT | # Security From 40d9eb51708a5e67ebc1a4e7f348bfcc861acf05 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Wed, 6 Mar 2024 13:22:53 +0100 Subject: [PATCH 09/19] update bnb paylad --- src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md | 4 ++-- .../SetPriceCapAdapters_20240227.s.sol | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index 461e6c795..18f159f11 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -31,7 +31,7 @@ In some cases, the relation between an underlying asset and its correlated is di | sAVAX | 10.1% | 14 days | | stEUR | 9.26% | | -All stablecoins are capped at 4%. +All stablecoins are capped at 4%, except LUSD, which is capped at 10%. Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine on every network. Below is the list of assets per network to be updated: @@ -45,7 +45,7 @@ Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine | Gnosis | wstETH, sDAI | USDC, xDAI | | Base | wstETH, cbETH | USDC | | Metis | | USDC, USDT, m.DAI | -| BNB | | USDC, USDT | +| BNB | | USDC, USDT, fdUSD | # Security diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol index 4525da690..7e2d7c71f 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol @@ -29,8 +29,8 @@ library Payloads { // https://gnosisscan.io/address/0x473e655bb3066326f7a5ffa5d3cccd6e0ef6f61e address public constant GNOSIS = 0x473e655bb3066326F7a5FFA5D3cCcd6E0eF6F61e; - // https://bscscan.com/address/0x7525a45f37197dcb7c9e9e7e3a354dee81b1224b - address public constant BNB = 0x7525A45F37197DcB7C9e9E7E3a354DeE81b1224B; + // https://bscscan.com/address/0x2683f613a899694a8d8669243321541cbdc6a95b + address public constant BNB = 0x2683F613a899694a8d8669243321541CBdc6a95b; } /** From ff2bdc62ae7899becc19012ae599a7f8295e6e7f Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Wed, 6 Mar 2024 13:25:29 +0100 Subject: [PATCH 10/19] add bnb diff --- ...V3BNB_SetPriceCapAdapters_20240227_after.md | 18 ++++++++++++++++++ ...aveV3BNB_SetPriceCapAdapters_20240227.t.sol | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md b/diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md index 6dd92c2b6..344a282bb 100644 --- a/diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md +++ b/diffs/AaveV3BNB_SetPriceCapAdapters_20240227_before_AaveV3BNB_SetPriceCapAdapters_20240227_after.md @@ -18,6 +18,14 @@ | oracleDescription | USDC / USD | Capped USDC/USD | +#### FDUSD ([0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409](https://bscscan.com/address/0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409)) + +| description | value before | value after | +| --- | --- | --- | +| oracle | [0x390180e80058A8499930F0c13963AD3E0d86Bfc9](https://bscscan.com/address/0x390180e80058A8499930F0c13963AD3E0d86Bfc9) | [0x60a117Fa5bAbee4d645884fB11E413Da4F893b6D](https://bscscan.com/address/0x60a117Fa5bAbee4d645884fB11E413Da4F893b6D) | +| oracleDescription | FDUSD / USD | Capped fdUSD/USD | + + ## Raw diff ```json @@ -42,6 +50,16 @@ "from": "USDC / USD", "to": "Capped USDC/USD" } + }, + "0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409": { + "oracle": { + "from": "0x390180e80058A8499930F0c13963AD3E0d86Bfc9", + "to": "0x60a117Fa5bAbee4d645884fB11E413Da4F893b6D" + }, + "oracleDescription": { + "from": "FDUSD / USD", + "to": "Capped fdUSD/USD" + } } } } diff --git a/src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol b/src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol index 2cf460277..8256ac72e 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol +++ b/src/20240227_Multi_SetPriceCapAdapters/AaveV3BNB_SetPriceCapAdapters_20240227.t.sol @@ -13,7 +13,7 @@ import {Payloads} from './SetPriceCapAdapters_20240227.s.sol'; */ contract AaveV3BNB_SetPriceCapAdapters_20240227_Test is ProtocolV3TestBase { function setUp() public { - vm.createSelectFork(vm.rpcUrl('bnb'), 36678658); + vm.createSelectFork(vm.rpcUrl('bnb'), 36731733); } /** From 8712fa0833e11e722cec73fd50fdf329774e675e Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 12:49:29 +0100 Subject: [PATCH 11/19] 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( From 4a1d6593a1cafce36b4753204f9115f277f6f44a Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 14:16:42 +0100 Subject: [PATCH 12/19] remove stEUR --- src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index d6e19827f..fb1e2700e 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -28,7 +28,6 @@ In some cases, the relation between an underlying asset and its correlated is di | MaticX | 10.2% | 14 days | | stMATIC | 10.45% | 14 days | | sAVAX | 10.1% | 14 days | -| stEUR | 9.26% | | All stablecoins are capped at 4%, except LUSD, which is capped at 10%. From 1a231c1f476c4dfd811334a1ee68a76d70f5f89e Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 14:21:40 +0100 Subject: [PATCH 13/19] remove sDAI --- .../SetPriceCapAdapters.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index fb1e2700e..d4d8c2369 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -33,18 +33,18 @@ All stablecoins are capped at 4%, except LUSD, which is capped at 10%. Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine on every network. Below is the list of assets per network to be updated: -| Network | LSTs | Stables | -| --------- | ------------------------- | ------------------------------------------ | -| Mainnet | wstETH, rETH, sDAI, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSd, pyUSD | -| 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 | +| Network | LSTs | Stables | +| --------- | ----------------------- | ------------------------------------------ | +| Mainnet | wstETH, rETH, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSd, pyUSD | +| 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 | USDC, xDAI | +| Base | wstETH, cbETH | USDC | +| Metis | | USDC, USDT, m.DAI | +| BNB | | USDC, USDT, fdUSD | +| Scroll | wstETH | USDC | # Security From 1382a6c073ddf631b5a91945accfd72395bc30e6 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 15:41:53 +0100 Subject: [PATCH 14/19] update recommendations link --- src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index d4d8c2369..ecb1f7cf8 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -18,7 +18,7 @@ In some cases, the relation between an underlying asset and its correlated is di ## Specification - [Capped price adapters implementation](https://github.com/bgd-labs/aave-capo) -- [Risk providers parameters recommendations](https://governance.aave.com/t/chaos-labs-correlated-asset-price-oracle-framework/16605/4) +- [Risk providers parameters recommendations](https://governance.aave.com/t/chaos-labs-correlated-asset-price-oracle-framework/16605/5) | Asset | Growth percent | Snapshot delay | | ------- | -------------- | -------------- | From 49b927cce6f735eba6893e3660d14aa8c6803418 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 16:22:55 +0100 Subject: [PATCH 15/19] update assets table --- src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index ecb1f7cf8..7fdcfac5a 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -36,8 +36,8 @@ Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine | Network | LSTs | Stables | | --------- | ----------------------- | ------------------------------------------ | | Mainnet | wstETH, rETH, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSd, pyUSD | -| Arbitrum | wstETH, rETH | USDC, USDC.e USDT, FRAX, LUSD, MAI | -| Avalanche | sAvax | USDC, DAI.e, FRAX, MAI | +| Arbitrum | wstETH, rETH | USDC, USDC.e, USDT, FRAX, LUSD, MAI | +| Avalanche | sAvax | USDC, USDT, 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 | USDC, xDAI | From 54d361ddaebef51e6d6a79fc1696ce57e75c7e59 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 16:35:21 +0100 Subject: [PATCH 16/19] fix typo --- src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index 7fdcfac5a..a2035c639 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -35,7 +35,7 @@ Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine | Network | LSTs | Stables | | --------- | ----------------------- | ------------------------------------------ | -| Mainnet | wstETH, rETH, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSd, pyUSD | +| Mainnet | wstETH, rETH, cbETH | USDC, USDT, DAI, FRAX, LUSD, crvUSD, pyUSD | | Arbitrum | wstETH, rETH | USDC, USDC.e, USDT, FRAX, LUSD, MAI | | Avalanche | sAvax | USDC, USDT, DAI.e, FRAX, MAI | | Optimism | wstETH, rETH | USDC, USDC.e, USDT, DAI, LUSD, sUSD, MAI | From 2a569a4c807ee013eb82fce1ffdb01486adbb7d8 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 16:41:14 +0100 Subject: [PATCH 17/19] fix typo --- src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index a2035c639..5ed1f9e8f 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -31,7 +31,7 @@ In some cases, the relation between an underlying asset and its correlated is di All stablecoins are capped at 4%, except LUSD, which is capped at 10%. -Oracles will be updated using 'priceFeedsUpdates()' method of the Config Engine on every network. Below is the list of assets per network to be updated: +Oracles will be updated using `priceFeedsUpdates()` method of the Config Engine on every network. Below is the list of assets per network to be updated: | Network | LSTs | Stables | | --------- | ----------------------- | ------------------------------------------ | From 7ad4d71ffc2e451f4df52f88656ac8793fe2ccc7 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 17:17:00 +0100 Subject: [PATCH 18/19] update deploy commands --- .../SetPriceCapAdapters_20240227.s.sol | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol index 746197c5c..c234b3e42 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol @@ -38,8 +38,8 @@ library Payloads { /** * @dev Deploy Ethereum - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployEthereum chain=mainnet - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/1/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployEthereum chain=mainnet + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/1/run-latest.json */ contract DeployEthereum is EthereumScript { function run() external broadcast { @@ -55,8 +55,8 @@ contract DeployEthereum is EthereumScript { /** * @dev Deploy Polygon - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployPolygon chain=polygon - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/137/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployPolygon chain=polygon + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/137/run-latest.json */ contract DeployPolygon is PolygonScript { function run() external broadcast { @@ -72,8 +72,8 @@ contract DeployPolygon is PolygonScript { /** * @dev Deploy Avalanche - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployAvalanche chain=avalanche - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/43114/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployAvalanche chain=avalanche + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/43114/run-latest.json */ contract DeployAvalanche is AvalancheScript { function run() external broadcast { @@ -89,8 +89,8 @@ contract DeployAvalanche is AvalancheScript { /** * @dev Deploy Optimism - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployOptimism chain=optimism - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/10/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployOptimism chain=optimism + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/10/run-latest.json */ contract DeployOptimism is OptimismScript { function run() external broadcast { @@ -106,8 +106,8 @@ contract DeployOptimism is OptimismScript { /** * @dev Deploy Arbitrum - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployArbitrum chain=arbitrum - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/42161/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployArbitrum chain=arbitrum + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/42161/run-latest.json */ contract DeployArbitrum is ArbitrumScript { function run() external broadcast { @@ -123,8 +123,8 @@ contract DeployArbitrum is ArbitrumScript { /** * @dev Deploy Metis - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployMetis chain=metis - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/1088/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployMetis chain=metis + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/1088/run-latest.json */ contract DeployMetis is MetisScript { function run() external broadcast { @@ -140,8 +140,8 @@ contract DeployMetis is MetisScript { /** * @dev Deploy Base - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployBase chain=base - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/8453/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployBase chain=base + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/8453/run-latest.json */ contract DeployBase is BaseScript { function run() external broadcast { @@ -157,8 +157,8 @@ contract DeployBase is BaseScript { /** * @dev Deploy Gnosis - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployGnosis chain=gnosis - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/100/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployGnosis chain=gnosis + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/100/run-latest.json */ contract DeployGnosis is GnosisScript { function run() external broadcast { @@ -174,8 +174,8 @@ contract DeployGnosis is GnosisScript { /** * @dev Deploy BNB - * deploy-command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:DeployBNB chain=bnb - * verify-command: npx catapulta-verify -b broadcast/SetPriceCapPriceAdapters_20240206.s.sol/56/run-latest.json + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployBNB chain=bnb + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/56/run-latest.json */ contract DeployBNB is BNBScript { function run() external broadcast { @@ -191,8 +191,8 @@ 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 + * deploy-command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:DeployScroll chain=scroll + * verify-command: npx catapulta-verify -b broadcast/SetPriceCapAdapters_20240227.s.sol/534351/run-latest.json */ contract DeployScroll is ScrollScript { function run() external broadcast { @@ -208,7 +208,7 @@ contract DeployScroll is ScrollScript { /** * @dev Create Proposal - * command: make deploy-ledger contract=src/20240206_Multi_SetPriceCapPriceAdapters/SetPriceCapPriceAdapters_20240206.s.sol:CreateProposal chain=mainnet + * command: make deploy-ledger contract=src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters_20240227.s.sol:CreateProposal chain=mainnet */ contract CreateProposal is EthereumScript { function run() external { From 4c3d53cd7aa7f384aa611f1f9097e21b431c6161 Mon Sep 17 00:00:00 2001 From: Rustem Kurmaev Date: Tue, 12 Mar 2024 19:36:11 +0100 Subject: [PATCH 19/19] Update src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md Co-authored-by: Ernesto Boado --- src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md index 5ed1f9e8f..b50a0f7aa 100644 --- a/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md +++ b/src/20240227_Multi_SetPriceCapAdapters/SetPriceCapAdapters.md @@ -31,6 +31,8 @@ In some cases, the relation between an underlying asset and its correlated is di All stablecoins are capped at 4%, except LUSD, which is capped at 10%. +sDAI is not included at the moment, given the recent un-stability on its growth rate. + Oracles will be updated using `priceFeedsUpdates()` method of the Config Engine on every network. Below is the list of assets per network to be updated: | Network | LSTs | Stables |