From d035402f92148177dfd276b56467201baf5cc75f Mon Sep 17 00:00:00 2001 From: Harsh Pandey Date: Thu, 14 Mar 2024 22:52:12 +0530 Subject: [PATCH 1/6] feat: activate price oracle sentinel on scroll --- ...72cc5e1b223dec2a704662f09ffadd187f3094.svg | 1 + ...leSentinelOnAaveV3Scroll_20240314_after.md | 12 ++++ ...eOracleSentinelOnAaveV3Scroll_20240314.sol | 20 +++++++ ...racleSentinelOnAaveV3Scroll_20240314.t.sol | 41 +++++++++++++ ...tivatePriceOracleSentinelOnAaveV3Scroll.md | 21 +++++++ ...racleSentinelOnAaveV3Scroll_20240314.s.sol | 59 +++++++++++++++++++ .../config.ts | 13 ++++ 7 files changed, 167 insertions(+) create mode 100644 .assets/a572cc5e1b223dec2a704662f09ffadd187f3094.svg create mode 100644 diffs/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_before_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_after.md create mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol create mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol create mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll.md create mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol create mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/config.ts diff --git a/.assets/a572cc5e1b223dec2a704662f09ffadd187f3094.svg b/.assets/a572cc5e1b223dec2a704662f09ffadd187f3094.svg new file mode 100644 index 000000000..a64e70f4b --- /dev/null +++ b/.assets/a572cc5e1b223dec2a704662f09ffadd187f3094.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/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_before_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_after.md b/diffs/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_before_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_after.md new file mode 100644 index 000000000..d470752ad --- /dev/null +++ b/diffs/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_before_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_after.md @@ -0,0 +1,12 @@ +## Raw diff + +```json +{ + "poolConfig": { + "priceOracleSentinel": { + "from": "0x0000000000000000000000000000000000000000", + "to": "0xfD0Ba55775C1e53f50736FA5528d8aa45FBcA391" + } + } +} +``` \ No newline at end of file diff --git a/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol new file mode 100644 index 000000000..9df53f39b --- /dev/null +++ b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol'; +import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol'; + +/** + * @title Activate Price Oracle Sentinel On Aave V3 Scroll + * @author BGD Labs + * - Discussion: https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274 + */ +contract AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314 is + IProposalGenericExecutor +{ + address public constant PRICE_ORACLE_SENTINEL = 0xfD0Ba55775C1e53f50736FA5528d8aa45FBcA391; + + function execute() external { + AaveV3Scroll.POOL_ADDRESSES_PROVIDER.setPriceOracleSentinel(PRICE_ORACLE_SENTINEL); + } +} diff --git a/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol new file mode 100644 index 000000000..0f778a863 --- /dev/null +++ b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {ProtocolV3TestBase} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314} from './AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol'; +import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol'; +import {IPriceOracleSentinel} from 'aave-v3-core/contracts/interfaces/IPriceOracleSentinel.sol'; + +/** + * @dev Test for AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314 + * command: make test-contract filter=AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314 + */ +contract AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_Test is + ProtocolV3TestBase +{ + AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('scroll'), 4126179); + proposal = new AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314', + AaveV3Scroll.POOL, + address(proposal) + ); + + assertEq( + AaveV3Scroll.POOL_ADDRESSES_PROVIDER.getPriceOracleSentinel(), + proposal.PRICE_ORACLE_SENTINEL() + ); + + assertTrue(IPriceOracleSentinel(proposal.PRICE_ORACLE_SENTINEL()).isLiquidationAllowed()); + assertTrue(IPriceOracleSentinel(proposal.PRICE_ORACLE_SENTINEL()).isBorrowAllowed()); + } +} diff --git a/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll.md b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll.md new file mode 100644 index 000000000..01f4382a3 --- /dev/null +++ b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll.md @@ -0,0 +1,21 @@ +--- +title: "Activate Price Oracle Sentinel On Aave V3 Scroll" +author: "BGD Labs" +discussions: "https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274" +--- + +## Simple Summary + +## Motivation + +## Specification + +## References + +- Implementation: [AaveV3Scroll](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol) +- Tests: [AaveV3Scroll](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol) +- [Discussion](https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274) // TODO + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol new file mode 100644 index 000000000..bf6754685 --- /dev/null +++ b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol'; +import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol'; +import {EthereumScript, ScrollScript} from 'aave-helpers/ScriptUtils.sol'; +import {AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314} from './AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol'; + +/** + * @dev Deploy Scroll + * deploy-command: make deploy-ledger contract=src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol:DeployScroll chain=scroll + * verify-command: npx catapulta-verify -b broadcast/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol/534352/run-latest.json + */ +contract DeployScroll is ScrollScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Create Proposal + * command: make deploy-ledger contract=src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol:CreateProposal chain=mainnet + */ +contract CreateProposal is EthereumScript { + function run() external { + // create payloads + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](1); + + // compose actions for validation + IPayloadsControllerCore.ExecutionAction[] + memory actionsScroll = new IPayloadsControllerCore.ExecutionAction[](1); + actionsScroll[0] = GovV3Helpers.buildAction( + type(AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314).creationCode + ); + payloads[0] = GovV3Helpers.buildScrollPayload(vm, actionsScroll); + + // create proposal + vm.startBroadcast(); + GovV3Helpers.createProposal( + vm, + payloads, + GovV3Helpers.ipfsHashFile( + vm, + 'src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll.md' + ) + ); + } +} diff --git a/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/config.ts b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/config.ts new file mode 100644 index 000000000..aa02173ff --- /dev/null +++ b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/config.ts @@ -0,0 +1,13 @@ +import {ConfigFile} from '../../generator/types'; +export const config: ConfigFile = { + rootOptions: { + pools: ['AaveV3Scroll'], + title: 'Activate Price Oracle Sentinel On Aave V3 Scroll', + shortName: 'ActivatePriceOracleSentinelOnAaveV3Scroll', + date: '20240314', + author: 'BGD Labs', + discussion: 'https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274', + snapshot: '', + }, + poolOptions: {AaveV3Scroll: {configs: {OTHERS: {}}, cache: {blockNumber: 4126179}}}, +}; From c3aa4ab38669692959cf272e883cf7d03cde951d Mon Sep 17 00:00:00 2001 From: Harsh Pandey Date: Mon, 18 Mar 2024 13:55:38 +0530 Subject: [PATCH 2/6] chore: update test block --- ...oll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol index 0f778a863..cd348baee 100644 --- a/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol +++ b/src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol @@ -16,7 +16,7 @@ contract AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314_Test is AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314 internal proposal; function setUp() public { - vm.createSelectFork(vm.rpcUrl('scroll'), 4126179); + vm.createSelectFork(vm.rpcUrl('scroll'), 4227173); proposal = new AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314(); } From a1c4fa8ac4be50345945d7c8f62e41868138bec2 Mon Sep 17 00:00:00 2001 From: sakulstra Date: Mon, 18 Mar 2024 12:57:53 +0100 Subject: [PATCH 3/6] fix: rename proposal --- .../__snapshots__/rateUpdates.spec.ts.snap | 2 + generator/utils/importsResolver.spec.ts | 4 + generator/utils/importsResolver.ts | 2 +- ...racleSentinelOnAaveV3Scroll_20240314.t.sol | 41 --- ...tivatePriceOracleSentinelOnAaveV3Scroll.md | 21 -- ...racleSentinelOnAaveV3Scroll_20240314.s.sol | 59 ---- .../config.ts | 13 - ...croll_V3PeripheryMaintenance_20240314.sol} | 9 +- ...roll_V3PeripheryMaintenance_20240314.t.sol | 41 +++ .../V3PeripheryMaintenance.md | 44 +++ .../V3PeripheryMaintenance_20240314.s.sol | 317 ++++++++++++++++++ .../config.ts | 36 ++ 12 files changed, 449 insertions(+), 140 deletions(-) delete mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.t.sol delete mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll.md delete mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.s.sol delete mode 100644 src/20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/config.ts rename src/{20240314_AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll/AaveV3Scroll_ActivatePriceOracleSentinelOnAaveV3Scroll_20240314.sol => 20240314_Multi_V3PeripheryMaintenance/AaveV3Scroll_V3PeripheryMaintenance_20240314.sol} (77%) create mode 100644 src/20240314_Multi_V3PeripheryMaintenance/AaveV3Scroll_V3PeripheryMaintenance_20240314.t.sol create mode 100644 src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance.md create mode 100644 src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol create mode 100644 src/20240314_Multi_V3PeripheryMaintenance/config.ts diff --git a/generator/features/__snapshots__/rateUpdates.spec.ts.snap b/generator/features/__snapshots__/rateUpdates.spec.ts.snap index 4d3129dc9..7715108c5 100644 --- a/generator/features/__snapshots__/rateUpdates.spec.ts.snap +++ b/generator/features/__snapshots__/rateUpdates.spec.ts.snap @@ -193,6 +193,8 @@ contract AaveV2EthereumAMM_Test_20231023 is AaveV2PayloadEthereumAMM { "test": "// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; +import {AaveV2EthereumAMM} from 'aave-address-book/AaveV2EthereumAMM.sol'; + import 'forge-std/Test.sol'; import {ProtocolV2TestBase, ReserveConfig} from 'aave-helpers/ProtocolV2TestBase.sol'; import {AaveV2EthereumAMM_Test_20231023} from './AaveV2EthereumAMM_Test_20231023.sol'; diff --git a/generator/utils/importsResolver.spec.ts b/generator/utils/importsResolver.spec.ts index bb30d2658..e1072c3dd 100644 --- a/generator/utils/importsResolver.spec.ts +++ b/generator/utils/importsResolver.spec.ts @@ -36,5 +36,9 @@ describe('prefixWithImports', () => { expect(prefixWithImports('AaveV2Ethereum.POOL AaveV2EthereumAssets.DAI')).toContain( `import {AaveV2Ethereum,AaveV2EthereumAssets} from 'aave-address-book/AaveV2Ethereum.sol';` ); + + expect(prefixWithImports('AaveV3Avalanche.POOL')).toContain( + `import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';` + ); }); }); diff --git a/generator/utils/importsResolver.ts b/generator/utils/importsResolver.ts index d74616c79..21ce911da 100644 --- a/generator/utils/importsResolver.ts +++ b/generator/utils/importsResolver.ts @@ -18,7 +18,7 @@ function generateAddressBookImports(code: string) { const imports: string[] = []; let root = ''; // lookbehind for I to not match interfaces like IAaveV3ConfigEngine - const addressBookMatch = code.match(/(? Date: Mon, 18 Mar 2024 23:18:45 +0100 Subject: [PATCH 4/6] fix: update tests --- ...1c6249674188eb7c7b4dc65d0841e8424af694.svg | 1 + ...sWBTCEOnV2AndV3Avalanche_20231221_after.md | 2 +- ...tablecoinIRCurvesUpdates_20231221_after.md | 12 +- ...sWBTCEOnV2AndV3Avalanche_20231221_after.md | 2 +- ...arametersOnAaveV3Markets_20240115_after.md | 2 +- ...nche_SetPriceCapAdapters_20240227_after.md | 24 +-- ...tablecoinIRCurvesUpdates_20231221_after.md | 20 +-- ...ationOfACPrimeFoundation_20240308_after.md | 5 + ...um_GHOBorrowRateIncrease_20240308_after.md | 8 +- ...reum_SetPriceCapAdapters_20240227_after.md | 10 ++ ...l_V3PeripheryMaintenance_20240314_after.md | 12 ++ ...roll_V3PeripheryMaintenance_20240314.t.sol | 2 +- .../StaticATokenUpgradeTest.t.sol | 160 ++++++++++++++++++ 13 files changed, 224 insertions(+), 36 deletions(-) create mode 100644 .assets/f81c6249674188eb7c7b4dc65d0841e8424af694.svg create mode 100644 diffs/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_before_AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_after.md create mode 100644 diffs/AaveV3Scroll_V3PeripheryMaintenance_20240314_before_AaveV3Scroll_V3PeripheryMaintenance_20240314_after.md create mode 100644 src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol diff --git a/.assets/f81c6249674188eb7c7b4dc65d0841e8424af694.svg b/.assets/f81c6249674188eb7c7b4dc65d0841e8424af694.svg new file mode 100644 index 000000000..679c73113 --- /dev/null +++ b/.assets/f81c6249674188eb7c7b4dc65d0841e8424af694.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stableUtilization Rate0%25%50%75%100%Optimal 0%Optimal 0% \ No newline at end of file diff --git a/diffs/AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md b/diffs/AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md index f4fdc54a4..53f43f18d 100644 --- a/diffs/AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md +++ b/diffs/AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md @@ -2,7 +2,7 @@ ### Reserves altered -#### WBTC.e ([0x50b7545627a5162F82A992c33b87aDc75187B218](https://snowtrace.io/address/0x50b7545627a5162F82A992c33b87aDc75187B218)) +#### WBTC.e ([0x50b7545627a5162F82A992c33b87aDc75187B218](https://snowscan.xyz/address/0x50b7545627a5162F82A992c33b87aDc75187B218)) | description | value before | value after | | --- | --- | --- | diff --git a/diffs/AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_after.md b/diffs/AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_after.md index 608c12f0c..9b43be849 100644 --- a/diffs/AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_after.md +++ b/diffs/AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221_after.md @@ -2,27 +2,27 @@ ### Reserve altered -#### USDC.e ([0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664](https://snowtrace.io/address/0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664)) +#### USDC.e ([0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664](https://snowscan.xyz/address/0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2](https://snowtrace.io/address/0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2) | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowtrace.io/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | +| interestRateStrategy | [0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2](https://snowscan.xyz/address/0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2) | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | | variableRateSlope1 | 5 % | 6 % | | interestRate | ![before](/.assets/5781644c11b53524a5fd5b616bf70812c97303d9.svg) | ![after](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | -#### USDT.e ([0xc7198437980c041c805A1EDcbA50c1Ce5db95118](https://snowtrace.io/address/0xc7198437980c041c805A1EDcbA50c1Ce5db95118)) +#### USDT.e ([0xc7198437980c041c805A1EDcbA50c1Ce5db95118](https://snowscan.xyz/address/0xc7198437980c041c805A1EDcbA50c1Ce5db95118)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2](https://snowtrace.io/address/0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2) | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowtrace.io/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | +| interestRateStrategy | [0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2](https://snowscan.xyz/address/0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2) | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | | variableRateSlope1 | 5 % | 6 % | | interestRate | ![before](/.assets/5781644c11b53524a5fd5b616bf70812c97303d9.svg) | ![after](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | -#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowtrace.io/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) +#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowscan.xyz/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2](https://snowtrace.io/address/0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2) | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowtrace.io/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | +| interestRateStrategy | [0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2](https://snowscan.xyz/address/0x116EFD5652A9993A5984055B2da7eb9acfB48Fd2) | [0xa7C0f85c626761eDD0875549aD09E8d3f5446695](https://snowscan.xyz/address/0xa7C0f85c626761eDD0875549aD09E8d3f5446695) | | variableRateSlope1 | 5 % | 6 % | | interestRate | ![before](/.assets/5781644c11b53524a5fd5b616bf70812c97303d9.svg) | ![after](/.assets/ae7612ca9dd768ff3aee2f745910dc0a19e5fa71.svg) | diff --git a/diffs/AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md b/diffs/AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md index 406dc7b4b..abb3e226c 100644 --- a/diffs/AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md +++ b/diffs/AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_before_AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221_after.md @@ -2,7 +2,7 @@ ### Reserves altered -#### WBTC.e ([0x50b7545627a5162F82A992c33b87aDc75187B218](https://snowtrace.io/address/0x50b7545627a5162F82A992c33b87aDc75187B218)) +#### WBTC.e ([0x50b7545627a5162F82A992c33b87aDc75187B218](https://snowscan.xyz/address/0x50b7545627a5162F82A992c33b87aDc75187B218)) | description | value before | value after | | --- | --- | --- | diff --git a/diffs/AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_before_AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_after.md b/diffs/AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_before_AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_after.md index 141c0b1fe..ba78fac18 100644 --- a/diffs/AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_before_AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_after.md +++ b/diffs/AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_before_AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115_after.md @@ -2,7 +2,7 @@ ### Reserves altered -#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowtrace.io/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) +#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowscan.xyz/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) | description | value before | value after | | --- | --- | --- | 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 170e7c9ab..a5bb16c29 100644 --- a/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md +++ b/diffs/AaveV3Avalanche_SetPriceCapAdapters_20240227_before_AaveV3Avalanche_SetPriceCapAdapters_20240227_after.md @@ -2,52 +2,52 @@ ### Reserve altered -#### sAVAX ([0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE](https://snowtrace.io/address/0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE)) +#### sAVAX ([0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE](https://snowscan.xyz/address/0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE)) | description | value before | value after | | --- | --- | --- | -| oracle | [0xc9245871D69BF4c36c6F2D15E0D68Ffa883FE1A7](https://snowtrace.io/address/0xc9245871D69BF4c36c6F2D15E0D68Ffa883FE1A7) | [0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9](https://snowtrace.io/address/0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9) | +| oracle | [0xc9245871D69BF4c36c6F2D15E0D68Ffa883FE1A7](https://snowscan.xyz/address/0xc9245871D69BF4c36c6F2D15E0D68Ffa883FE1A7) | [0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9](https://snowscan.xyz/address/0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9) | | oracleDecimals | null | 8 | | oracleDescription | null | Capped sAVAX / AVAX / USD | -#### MAI ([0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b](https://snowtrace.io/address/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b)) +#### MAI ([0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b](https://snowscan.xyz/address/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b)) | description | value before | value after | | --- | --- | --- | -| oracle | [0x5D1F504211c17365CA66353442a74D4435A8b778](https://snowtrace.io/address/0x5D1F504211c17365CA66353442a74D4435A8b778) | [0xCcC55Db26B78a19Dba1beE0066F9c1665575439A](https://snowtrace.io/address/0xCcC55Db26B78a19Dba1beE0066F9c1665575439A) | +| oracle | [0x5D1F504211c17365CA66353442a74D4435A8b778](https://snowscan.xyz/address/0x5D1F504211c17365CA66353442a74D4435A8b778) | [0xCcC55Db26B78a19Dba1beE0066F9c1665575439A](https://snowscan.xyz/address/0xCcC55Db26B78a19Dba1beE0066F9c1665575439A) | | oracleDescription | MIMATIC / USD | Capped MAI/USD | -#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowtrace.io/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) +#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowscan.xyz/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) | description | value before | value after | | --- | --- | --- | -| oracle | [0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a](https://snowtrace.io/address/0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a) | [0x39185f2236A6022b682e8BB93C040d125DA093CF](https://snowtrace.io/address/0x39185f2236A6022b682e8BB93C040d125DA093CF) | +| oracle | [0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a](https://snowscan.xyz/address/0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a) | [0x39185f2236A6022b682e8BB93C040d125DA093CF](https://snowscan.xyz/address/0x39185f2236A6022b682e8BB93C040d125DA093CF) | | oracleDescription | USDT / USD | Capped USDt/USD | -#### USDC ([0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E](https://snowtrace.io/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E)) +#### USDC ([0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E](https://snowscan.xyz/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E)) | description | value before | value after | | --- | --- | --- | -| oracle | [0xF096872672F44d6EBA71458D74fe67F9a77a23B9](https://snowtrace.io/address/0xF096872672F44d6EBA71458D74fe67F9a77a23B9) | [0xD8277249e871BE9A402fa286C2C5ec16046dC512](https://snowtrace.io/address/0xD8277249e871BE9A402fa286C2C5ec16046dC512) | +| oracle | [0xF096872672F44d6EBA71458D74fe67F9a77a23B9](https://snowscan.xyz/address/0xF096872672F44d6EBA71458D74fe67F9a77a23B9) | [0xD8277249e871BE9A402fa286C2C5ec16046dC512](https://snowscan.xyz/address/0xD8277249e871BE9A402fa286C2C5ec16046dC512) | | oracleDescription | USDC / USD | Capped USDC/USD | -#### FRAX ([0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64](https://snowtrace.io/address/0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64)) +#### FRAX ([0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64](https://snowscan.xyz/address/0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64)) | description | value before | value after | | --- | --- | --- | -| oracle | [0xbBa56eF1565354217a3353a466edB82E8F25b08e](https://snowtrace.io/address/0xbBa56eF1565354217a3353a466edB82E8F25b08e) | [0x6208576378D06ce69A27987b7A524A9B15d499a4](https://snowtrace.io/address/0x6208576378D06ce69A27987b7A524A9B15d499a4) | +| oracle | [0xbBa56eF1565354217a3353a466edB82E8F25b08e](https://snowscan.xyz/address/0xbBa56eF1565354217a3353a466edB82E8F25b08e) | [0x6208576378D06ce69A27987b7A524A9B15d499a4](https://snowscan.xyz/address/0x6208576378D06ce69A27987b7A524A9B15d499a4) | | oracleDescription | FRAX / USD | Capped FRAX/USD | -#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowtrace.io/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) +#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowscan.xyz/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) | description | value before | value after | | --- | --- | --- | -| oracle | [0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300](https://snowtrace.io/address/0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300) | [0xf82da795727633aFA9BB0f1B08A87c0F6A38723f](https://snowtrace.io/address/0xf82da795727633aFA9BB0f1B08A87c0F6A38723f) | +| oracle | [0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300](https://snowscan.xyz/address/0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300) | [0xf82da795727633aFA9BB0f1B08A87c0F6A38723f](https://snowscan.xyz/address/0xf82da795727633aFA9BB0f1B08A87c0F6A38723f) | | oracleDescription | DAI / USD | Capped DAI.e/USD | diff --git a/diffs/AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_after.md b/diffs/AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_after.md index 5b0c56ca1..97d68e6e5 100644 --- a/diffs/AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_after.md +++ b/diffs/AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_before_AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221_after.md @@ -2,47 +2,47 @@ ### Reserve altered -#### MAI ([0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b](https://snowtrace.io/address/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b)) +#### MAI ([0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b](https://snowscan.xyz/address/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x5f58C25D17C09c9e1892F45DE6dA45ed973A5326](https://snowtrace.io/address/0x5f58C25D17C09c9e1892F45DE6dA45ed973A5326) | [0xD61ca03Eac0352090f45bE50403F7B17d20E11F2](https://snowtrace.io/address/0xD61ca03Eac0352090f45bE50403F7B17d20E11F2) | +| interestRateStrategy | [0x5f58C25D17C09c9e1892F45DE6dA45ed973A5326](https://snowscan.xyz/address/0x5f58C25D17C09c9e1892F45DE6dA45ed973A5326) | [0xD61ca03Eac0352090f45bE50403F7B17d20E11F2](https://snowscan.xyz/address/0xD61ca03Eac0352090f45bE50403F7B17d20E11F2) | | variableRateSlope1 | 5 % | 6 % | | baseStableBorrowRate | 6 % | 7 % | | interestRate | ![before](/.assets/ad65621e946b4e1b18cdb7b25c9fa0ae9d9fbb18.svg) | ![after](/.assets/f47524384ab6225b87778689e3c6d8287a38de2b.svg) | -#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowtrace.io/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) +#### USDt ([0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7](https://snowscan.xyz/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17](https://snowtrace.io/address/0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17) | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowtrace.io/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | +| interestRateStrategy | [0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17](https://snowscan.xyz/address/0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17) | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | | variableRateSlope1 | 5 % | 6 % | | baseStableBorrowRate | 6 % | 7 % | | interestRate | ![before](/.assets/ac29cf5e78bd5b80d4714477c4e7ab7e688a317d.svg) | ![after](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | -#### USDC ([0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E](https://snowtrace.io/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E)) +#### USDC ([0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E](https://snowscan.xyz/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x3B57B081dA6Af5e2759A57bD3211932Cb6176997](https://snowtrace.io/address/0x3B57B081dA6Af5e2759A57bD3211932Cb6176997) | [0x3832311560d3B457E9cC35e5b8e06EB167D8c17D](https://snowtrace.io/address/0x3832311560d3B457E9cC35e5b8e06EB167D8c17D) | +| interestRateStrategy | [0x3B57B081dA6Af5e2759A57bD3211932Cb6176997](https://snowscan.xyz/address/0x3B57B081dA6Af5e2759A57bD3211932Cb6176997) | [0x3832311560d3B457E9cC35e5b8e06EB167D8c17D](https://snowscan.xyz/address/0x3832311560d3B457E9cC35e5b8e06EB167D8c17D) | | variableRateSlope1 | 5 % | 6 % | | baseStableBorrowRate | 6 % | 7 % | | interestRate | ![before](/.assets/364f4918c1329126a6e79d9f99545d38a4c19966.svg) | ![after](/.assets/5982fe691bdce75fb16101b23ef8815d0953520a.svg) | -#### FRAX ([0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64](https://snowtrace.io/address/0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64)) +#### FRAX ([0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64](https://snowscan.xyz/address/0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17](https://snowtrace.io/address/0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17) | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowtrace.io/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | +| interestRateStrategy | [0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17](https://snowscan.xyz/address/0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17) | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | | variableRateSlope1 | 5 % | 6 % | | baseStableBorrowRate | 6 % | 7 % | | interestRate | ![before](/.assets/ac29cf5e78bd5b80d4714477c4e7ab7e688a317d.svg) | ![after](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | -#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowtrace.io/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) +#### DAI.e ([0xd586E7F844cEa2F87f50152665BCbc2C279D8d70](https://snowscan.xyz/address/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70)) | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17](https://snowtrace.io/address/0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17) | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowtrace.io/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | +| interestRateStrategy | [0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17](https://snowscan.xyz/address/0x04daBC3C1c052AB94AA2ca80140f2b978d2F6E17) | [0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e](https://snowscan.xyz/address/0x6D6D3b7FC50999bf20dE5CC8e0F63AFD18B95f0e) | | variableRateSlope1 | 5 % | 6 % | | baseStableBorrowRate | 6 % | 7 % | | interestRate | ![before](/.assets/ac29cf5e78bd5b80d4714477c4e7ab7e688a317d.svg) | ![after](/.assets/ef89d610edf6a8e63ac63c8bc807752accdabb0c.svg) | diff --git a/diffs/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_before_AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_after.md b/diffs/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_before_AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_after.md new file mode 100644 index 000000000..c15d3e2bc --- /dev/null +++ b/diffs/AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_before_AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308_after.md @@ -0,0 +1,5 @@ +## Raw diff + +```json +{} +``` \ No newline at end of file diff --git a/diffs/AaveV3Ethereum_GHOBorrowRateIncrease_20240308_before_AaveV3Ethereum_GHOBorrowRateIncrease_20240308_after.md b/diffs/AaveV3Ethereum_GHOBorrowRateIncrease_20240308_before_AaveV3Ethereum_GHOBorrowRateIncrease_20240308_after.md index ac7399bd7..697c71c1a 100644 --- a/diffs/AaveV3Ethereum_GHOBorrowRateIncrease_20240308_before_AaveV3Ethereum_GHOBorrowRateIncrease_20240308_after.md +++ b/diffs/AaveV3Ethereum_GHOBorrowRateIncrease_20240308_before_AaveV3Ethereum_GHOBorrowRateIncrease_20240308_after.md @@ -6,9 +6,9 @@ | description | value before | value after | | --- | --- | --- | -| interestRateStrategy | [0x3a4D5316ec79622686a19f69CE546997cC8e8514](https://etherscan.io/address/0x3a4D5316ec79622686a19f69CE546997cC8e8514) | [0x2f6390Ef66B8564C715aF6834361621dda38d816](https://etherscan.io/address/0x2f6390Ef66B8564C715aF6834361621dda38d816) | +| interestRateStrategy | [0x3a4D5316ec79622686a19f69CE546997cC8e8514](https://etherscan.io/address/0x3a4D5316ec79622686a19f69CE546997cC8e8514) | [0x3E49cfe26aaAB501b093AF72A7e5F0152D9D2e76](https://etherscan.io/address/0x3E49cfe26aaAB501b093AF72A7e5F0152D9D2e76) | | baseVariableBorrowRate | 7.22 % | 7.92 % | -| interestRate | ![before](/.assets/078d4fa16841aad11aa6c8fee811f71297d1fecd.svg) | ![after](/.assets/8f4bd9d9c75dc060033b9ce1f2681ecb81e1b33f.svg) | +| interestRate | ![before](/.assets/078d4fa16841aad11aa6c8fee811f71297d1fecd.svg) | ![after](/.assets/f81c6249674188eb7c7b4dc65d0841e8424af694.svg) | ## Raw diff @@ -18,7 +18,7 @@ "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { "interestRateStrategy": { "from": "0x3a4D5316ec79622686a19f69CE546997cC8e8514", - "to": "0x2f6390Ef66B8564C715aF6834361621dda38d816" + "to": "0x3E49cfe26aaAB501b093AF72A7e5F0152D9D2e76" } } }, @@ -26,7 +26,7 @@ "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { "address": { "from": "0x3a4D5316ec79622686a19f69CE546997cC8e8514", - "to": "0x2f6390Ef66B8564C715aF6834361621dda38d816" + "to": "0x3E49cfe26aaAB501b093AF72A7e5F0152D9D2e76" }, "baseVariableBorrowRate": { "from": "72200000000000000000000000", 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 6154e3877..c7405565c 100644 --- a/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md +++ b/diffs/AaveV3Ethereum_SetPriceCapAdapters_20240227_before_AaveV3Ethereum_SetPriceCapAdapters_20240227_after.md @@ -56,6 +56,7 @@ | --- | --- | --- | | oracle | [0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731](https://etherscan.io/address/0x5f4d15d761528c57a5C30c43c1DAb26Fc5452731) | [0x6243d2F41b4ec944F731f647589E28d9745a2674](https://etherscan.io/address/0x6243d2F41b4ec944F731f647589E28d9745a2674) | | oracleDescription | null | Capped cbETH / ETH / USD | +| oracleName | cbETH/ETH/USD | null | | oracleLatestAnswer | 4250.44712602 | 4272.48373554 | @@ -66,6 +67,7 @@ | oracle | [0x05225Cd708bCa9253789C1374e4337a019e99D56](https://etherscan.io/address/0x05225Cd708bCa9253789C1374e4337a019e99D56) | [0x5AE8365D0a30D67145f0c55A08760C250559dB64](https://etherscan.io/address/0x5AE8365D0a30D67145f0c55A08760C250559dB64) | | oracleDecimals | null | 8 | | oracleDescription | null | Capped rETH / ETH / USD | +| oracleName | rETH/ETH/USD | null | #### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) @@ -158,6 +160,10 @@ "from": 425044712602, "to": 427248373554 }, + "oracleName": { + "from": "cbETH/ETH/USD", + "to": null + }, "oracleDescription": { "from": null, "to": "Capped cbETH / ETH / USD" @@ -168,6 +174,10 @@ "from": "0x05225Cd708bCa9253789C1374e4337a019e99D56", "to": "0x5AE8365D0a30D67145f0c55A08760C250559dB64" }, + "oracleName": { + "from": "rETH/ETH/USD", + "to": null + }, "oracleDecimals": { "from": null, "to": 8 diff --git a/diffs/AaveV3Scroll_V3PeripheryMaintenance_20240314_before_AaveV3Scroll_V3PeripheryMaintenance_20240314_after.md b/diffs/AaveV3Scroll_V3PeripheryMaintenance_20240314_before_AaveV3Scroll_V3PeripheryMaintenance_20240314_after.md new file mode 100644 index 000000000..d470752ad --- /dev/null +++ b/diffs/AaveV3Scroll_V3PeripheryMaintenance_20240314_before_AaveV3Scroll_V3PeripheryMaintenance_20240314_after.md @@ -0,0 +1,12 @@ +## Raw diff + +```json +{ + "poolConfig": { + "priceOracleSentinel": { + "from": "0x0000000000000000000000000000000000000000", + "to": "0xfD0Ba55775C1e53f50736FA5528d8aa45FBcA391" + } + } +} +``` \ No newline at end of file diff --git a/src/20240314_Multi_V3PeripheryMaintenance/AaveV3Scroll_V3PeripheryMaintenance_20240314.t.sol b/src/20240314_Multi_V3PeripheryMaintenance/AaveV3Scroll_V3PeripheryMaintenance_20240314.t.sol index a07c80dc6..12d68aaf6 100644 --- a/src/20240314_Multi_V3PeripheryMaintenance/AaveV3Scroll_V3PeripheryMaintenance_20240314.t.sol +++ b/src/20240314_Multi_V3PeripheryMaintenance/AaveV3Scroll_V3PeripheryMaintenance_20240314.t.sol @@ -16,7 +16,7 @@ contract AaveV3Scroll_V3PeripheryMaintenance_20240314_Test is ProtocolV3TestBase AaveV3Scroll_V3PeripheryMaintenance_20240314 internal proposal; function setUp() public { - vm.createSelectFork(vm.rpcUrl('scroll'), 4126179); + vm.createSelectFork(vm.rpcUrl('scroll'), 4240928); proposal = new AaveV3Scroll_V3PeripheryMaintenance_20240314(); } diff --git a/src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol b/src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol new file mode 100644 index 000000000..cb2271a13 --- /dev/null +++ b/src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol @@ -0,0 +1,160 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import 'forge-std/Test.sol'; +import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol'; +import {ProtocolV3TestBase, ReserveConfig, IERC20} from 'aave-helpers/ProtocolV3TestBase.sol'; +import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol'; +import {StataPayloads} from './V3PeripheryMaintenance_20240314.s.sol'; + +interface IFactory { + function STATIC_A_TOKEN_IMPL() external returns (address); + + function getStaticATokens() external returns (address[] memory); +} + +interface IStaticATokenLM { + function asset() external returns (address); + + function decimals() external returns (uint256); + + function maxDeposit(address) external returns (uint256); + + function balanceOf(address) external returns (uint256); + + function convertToAssets(uint256) external returns (uint256); + + function deposit(uint256, address) external returns (uint256); +} + +interface IUpgradePayload { + function FACTORY() external returns (IFactory); + + function NEW_TOKEN_IMPLEMENTATION() external returns (address); + + function ADMIN() external returns (address); +} + +interface ITransparentUpgradeableProxy { + function implementation() external returns (address); +} + +abstract contract UpgradePayloadTest is ProtocolV3TestBase { + using SafeERC20 for IERC20; + + string public NETWORK; + uint256 public immutable BLOCK_NUMBER; + IUpgradePayload internal payload; + + constructor(string memory network, uint256 blocknumber) { + NETWORK = network; + BLOCK_NUMBER = blocknumber; + } + + function setUp() public virtual { + vm.createSelectFork(vm.rpcUrl(NETWORK), BLOCK_NUMBER); + payload = IUpgradePayload(_getPayload()); + GovV3Helpers.executePayload(vm, address(payload)); + } + + function _getPayload() internal virtual returns (address); + + function _getFactory() internal returns (IFactory) { + return payload.FACTORY(); + } + + function test_upgrade() external { + address newImpl = _getFactory().STATIC_A_TOKEN_IMPL(); + + // check factory is updated + assertEq(newImpl, payload.NEW_TOKEN_IMPLEMENTATION()); + // check all tokens are updated + address[] memory tokens = _getFactory().getStaticATokens(); + vm.startPrank(address(payload.ADMIN())); + for (uint256 i = 0; i < tokens.length; i++) { + assertEq( + ITransparentUpgradeableProxy(payable(tokens[i])).implementation(), + payload.NEW_TOKEN_IMPLEMENTATION() + ); + } + } + + function test_deposit() public { + address[] memory tokens = _getFactory().getStaticATokens(); + for (uint256 i = 0; i < tokens.length; i++) { + uint256 maxDeposit = IStaticATokenLM(tokens[i]).maxDeposit(address(this)); + if (maxDeposit == 0) continue; + address underlying = address(IStaticATokenLM(tokens[i]).asset()); + uint256 testAmount = 10 ** IStaticATokenLM(tokens[i]).decimals(); + uint256 amount = maxDeposit < testAmount ? (maxDeposit * 99) / 100 : testAmount; + deal2(address(underlying), address(this), amount); + IERC20(underlying).forceApprove(address(tokens[i]), amount); + IStaticATokenLM(tokens[i]).deposit(amount, address(this)); + uint256 shares = IStaticATokenLM(tokens[i]).balanceOf(address(this)); + assertApproxEqAbs(IStaticATokenLM(tokens[i]).convertToAssets(shares), amount, 10); + } + } +} + +/** + * command: make test-contract filter=UpgradeMainnetTest + */ +contract UpgradeMainnetTest is UpgradePayloadTest('mainnet', 19464108) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.MAINNET; + } +} + +contract UpgradePolygonTest is UpgradePayloadTest('polygon', 54815511) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.POLYGON; + } +} + +contract UpgradeAvalancheTest is UpgradePayloadTest('avalanche', 43073899) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.AVALANCHE; + } +} + +contract UpgradeArbitrumTest is UpgradePayloadTest('arbitrum', 191763863) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.ARBITRUM; + } +} + +contract UpgradeOptimismTest is UpgradePayloadTest('optimism', 117597816) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.OPTIMISM; + } +} + +contract UpgradeMetisTest is UpgradePayloadTest('metis', 15387067) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.METIS; + } +} + +contract UpgradeBNBTest is UpgradePayloadTest('bnb', 37086352) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.BNB; + } +} + +contract UpgradeScrollTest is UpgradePayloadTest('scroll', 4240928) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.SCROLL; + } +} + +contract UpgradeBaseTest is UpgradePayloadTest('base', 12002533) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.BASE; + } +} + +contract UpgradeGnosisTest is UpgradePayloadTest('gnosis', 32998007) { + function _getPayload() internal virtual override returns (address) { + return StataPayloads.GNOSIS; + } +} From 10323428881d6e41ab25b3f3fdf64fd30d45ce98 Mon Sep 17 00:00:00 2001 From: sakulstra Date: Wed, 20 Mar 2024 08:26:48 +0100 Subject: [PATCH 5/6] fix: add metis payload --- .../StaticATokenUpgradeTest.t.sol | 2 +- .../V3PeripheryMaintenance_20240314.s.sol | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol b/src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol index cb2271a13..7bf18a7f2 100644 --- a/src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol +++ b/src/20240314_Multi_V3PeripheryMaintenance/StaticATokenUpgradeTest.t.sol @@ -129,7 +129,7 @@ contract UpgradeOptimismTest is UpgradePayloadTest('optimism', 117597816) { } } -contract UpgradeMetisTest is UpgradePayloadTest('metis', 15387067) { +contract UpgradeMetisTest is UpgradePayloadTest('metis', 15472572) { function _getPayload() internal virtual override returns (address) { return StataPayloads.METIS; } diff --git a/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol b/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol index f2cf74790..29f132ae4 100644 --- a/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol +++ b/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol @@ -28,7 +28,7 @@ library StataPayloads { address internal constant SCROLL = 0x70Bf6EC6Fca41a7d08dCBB9909985AC0A4510B5E; // - address internal constant METIS = address(0); + address internal constant METIS = 0xe427FCbD54169136391cfEDf68E96abB13dA87A0; // https://basescan.org/address/0x31a239f3e39c5d8ba6b201ba81ed584492ae960f#code address internal constant BASE = 0x31A239f3e39c5D8BA6B201bA81ed584492Ae960F; From 16b42fb4cd8546e4977cdf50a72c4c7c5f55011c Mon Sep 17 00:00:00 2001 From: sakulstra Date: Wed, 20 Mar 2024 09:47:35 +0100 Subject: [PATCH 6/6] fix: add metis explorer link --- .../V3PeripheryMaintenance_20240314.s.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol b/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol index 29f132ae4..7a5d21d4d 100644 --- a/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol +++ b/src/20240314_Multi_V3PeripheryMaintenance/V3PeripheryMaintenance_20240314.s.sol @@ -27,7 +27,7 @@ library StataPayloads { // https://scrollscan.com/address/0x70bf6ec6fca41a7d08dcbb9909985ac0a4510b5e#code address internal constant SCROLL = 0x70Bf6EC6Fca41a7d08dCBB9909985AC0A4510B5E; - // + // https://explorer.metis.io/address/0xe427FCbD54169136391cfEDf68E96abB13dA87A0/contract/1088/code address internal constant METIS = 0xe427FCbD54169136391cfEDf68E96abB13dA87A0; // https://basescan.org/address/0x31a239f3e39c5d8ba6b201ba81ed584492ae960f#code