From 867037b3520bb40bb288922e773137fc1338649b Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Fri, 10 Apr 2026 18:51:32 +0200 Subject: [PATCH 01/23] deactivate chaos agents --- ...boardingPlanForChaosLabs_20260410_after.md | 45 +++ ...boardingPlanForChaosLabs_20260410_after.md | 45 +++ ...boardingPlanForChaosLabs_20260410_after.md | 43 +++ ...boardingPlanForChaosLabs_20260410_after.md | 45 +++ ...boardingPlanForChaosLabs_20260410_after.md | 49 +++ ...boardingPlanForChaosLabs_20260410_after.md | 43 +++ ...boardingPlanForChaosLabs_20260410_after.md | 41 ++ ...boardingPlanForChaosLabs_20260410_after.md | 43 +++ ...boardingPlanForChaosLabs_20260410_after.md | 43 +++ ...boardingPlanForChaosLabs_20260410_after.md | 43 +++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 23 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 23 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ++ ...ransitionAndOffboardingPlanForChaosLabs.md | 23 ++ ...OffboardingPlanForChaosLabs_20260410.s.sol | 351 ++++++++++++++++++ .../config.ts | 37 ++ 33 files changed, 1429 insertions(+) create mode 100644 diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/config.ts diff --git a/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..1f2ef9f55 --- /dev/null +++ b/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,45 @@ +## Event logs + +#### 0xf4F2bc657abe96863dC1Ae17C9e9fFfc2B420e7B (MiscArbitrum.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 2, enable: false) | + +#### 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327 (AaveV3Arbitrum.ACL_ADMIN, GovernanceV3Arbitrum.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 3 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833672, withDelegatecall: true, resultData: 0x) | + +#### 0x89644CA1bB8064760312AE4F03ea41b05dA3637C (GovernanceV3Arbitrum.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 4 | PayloadExecuted(payloadId: 118) | + +## Raw storage changes + +### 0x89644ca1bb8064760312ae4f03ea41b05da3637c (GovernanceV3Arbitrum.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xbaba906220955b09fec23b575e20afa7d08161b8520bb9d5ec850371b93edf98 | 0x0069d91247000000000002000000000000000000000000000000000000000000 | 0x0069d91247000000000003000000000000000000000000000000000000000000 | +| 0xbaba906220955b09fec23b575e20afa7d08161b8520bb9d5ec850371b93edf99 | 0x000000000000000000093a800000000000006a0736c800000000000000000000 | 0x000000000000000000093a800000000000006a0736c800000000000069d91248 | + +### 0xf4f2bc657abe96863dc1ae17c9e9fffc2b420e7b (MiscArbitrum.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x60b0da6b08ce0785d28a00df35f82788b00e12ed74fbd751b7f17e2061d651cf | 0x000000000000000000000001861eeadb55e41f161f31acb1bfd4c70e3a964aed | 0x000000000000000000000000861eeadb55e41f161f31acb1bfd4c70e3a964aed | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001861eeadb55e41f161f31acb1bfd4c70e3a964aed | 0x000000000000000000000000861eeadb55e41f161f31acb1bfd4c70e3a964aed | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x000000000000000000000001861eeadb55e41f161f31acb1bfd4c70e3a964aed | 0x000000000000000000000000861eeadb55e41f161f31acb1bfd4c70e3a964aed | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..7760ba6c3 --- /dev/null +++ b/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,45 @@ +## Event logs + +#### 0x556bBE96f04b4610E48EE003DAcEE1C74de7AC6a (MiscAvalanche.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 2, enable: false) | + +#### 0x3C06dce358add17aAf230f2234bCCC4afd50d090 (AaveV2Avalanche.POOL_ADMIN, AaveV3Avalanche.ACL_ADMIN, GovernanceV3Avalanche.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 3 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833666, withDelegatecall: true, resultData: 0x) | + +#### 0x1140CB7CAfAcC745771C2Ea31e7B5C653c5d0B80 (GovernanceV3Avalanche.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 4 | PayloadExecuted(payloadId: 112) | + +## Raw storage changes + +### 0x1140cb7cafacc745771c2ea31e7b5c653c5d0b80 (GovernanceV3Avalanche.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x9ff053d1d05d615e9da14e487ea593a41d5f35a8cc975b547dec50b34f0a1fc3 | 0x0069d91241000000000002000000000000000000000000000000000000000000 | 0x0069d91241000000000003000000000000000000000000000000000000000000 | +| 0x9ff053d1d05d615e9da14e487ea593a41d5f35a8cc975b547dec50b34f0a1fc4 | 0x000000000000000000093a800000000000006a0736c200000000000000000000 | 0x000000000000000000093a800000000000006a0736c200000000000069d91242 | + +### 0x556bbe96f04b4610e48ee003dacee1c74de7ac6a (MiscAvalanche.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x60b0da6b08ce0785d28a00df35f82788b00e12ed74fbd751b7f17e2061d651cf | 0x0000000000000000000000011273f29204fc102bd4620485b13cfe27a794ff32 | 0x0000000000000000000000001273f29204fc102bd4620485b13cfe27a794ff32 | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000011273f29204fc102bd4620485b13cfe27a794ff32 | 0x0000000000000000000000001273f29204fc102bd4620485b13cfe27a794ff32 | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000011273f29204fc102bd4620485b13cfe27a794ff32 | 0x0000000000000000000000001273f29204fc102bd4620485b13cfe27a794ff32 | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..8a667be96 --- /dev/null +++ b/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,43 @@ +## Event logs + +#### 0x115E662Fa3f0b83014eB3f6F86F3D94BeC5eB411 (MiscBNB.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0x9390B1735def18560c509E2d0bc090E9d6BA257a (AaveV3BNB.ACL_ADMIN, GovernanceV3BNB.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833678, withDelegatecall: true, resultData: 0x) | + +#### 0xE5EF2Dd06755A97e975f7E282f828224F2C3e627 (GovernanceV3BNB.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 3 | PayloadExecuted(payloadId: 57) | + +## Raw storage changes + +### 0x115e662fa3f0b83014eb3f6f86f3d94bec5eb411 (MiscBNB.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001239d3bc5fa247337287cb03f53b8bc63dbbc332d | 0x000000000000000000000000239d3bc5fa247337287cb03f53b8bc63dbbc332d | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x000000000000000000000001239d3bc5fa247337287cb03f53b8bc63dbbc332d | 0x000000000000000000000000239d3bc5fa247337287cb03f53b8bc63dbbc332d | + +### 0xe5ef2dd06755a97e975f7e282f828224f2c3e627 (GovernanceV3BNB.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x7328c223b526ac18a2ca34e3cc928d22c174fde8c81d65ae5d17c01763d134b1 | 0x0069d9124d000000000002000000000000000000000000000000000000000000 | 0x0069d9124d000000000003000000000000000000000000000000000000000000 | +| 0x7328c223b526ac18a2ca34e3cc928d22c174fde8c81d65ae5d17c01763d134b2 | 0x000000000000000000093a800000000000006a0736ce00000000000000000000 | 0x000000000000000000093a800000000000006a0736ce00000000000069d9124e | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..6aca6178d --- /dev/null +++ b/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,45 @@ +## Event logs + +#### 0x115E662Fa3f0b83014eB3f6F86F3D94BeC5eB411 (MiscBase.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 2, enable: false) | + +#### 0x9390B1735def18560c509E2d0bc090E9d6BA257a (AaveV3Base.ACL_ADMIN, GovernanceV3Base.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 3 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833673, withDelegatecall: true, resultData: 0x) | + +#### 0x2DC219E716793fb4b21548C0f009Ba3Af753ab01 (GovernanceV3Base.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 4 | PayloadExecuted(payloadId: 105) | + +## Raw storage changes + +### 0x115e662fa3f0b83014eb3f6f86f3d94bec5eb411 (MiscBase.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x60b0da6b08ce0785d28a00df35f82788b00e12ed74fbd751b7f17e2061d651cf | 0x000000000000000000000001239d3bc5fa247337287cb03f53b8bc63dbbc332d | 0x000000000000000000000000239d3bc5fa247337287cb03f53b8bc63dbbc332d | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001239d3bc5fa247337287cb03f53b8bc63dbbc332d | 0x000000000000000000000000239d3bc5fa247337287cb03f53b8bc63dbbc332d | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x000000000000000000000001239d3bc5fa247337287cb03f53b8bc63dbbc332d | 0x000000000000000000000000239d3bc5fa247337287cb03f53b8bc63dbbc332d | + +### 0x2dc219e716793fb4b21548c0f009ba3af753ab01 (GovernanceV3Base.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x8bd72d705e704e96ab1fa5baf1ac8053f4ec008dca8cf0376ca60a5648fa9532 | 0x0069d91248000000000002000000000000000000000000000000000000000000 | 0x0069d91248000000000003000000000000000000000000000000000000000000 | +| 0x8bd72d705e704e96ab1fa5baf1ac8053f4ec008dca8cf0376ca60a5648fa9533 | 0x000000000000000000093a800000000000006a0736c900000000000000000000 | 0x000000000000000000093a800000000000006a0736c900000000000069d91249 | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..00463e58c --- /dev/null +++ b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,49 @@ +## Event logs + +#### 0x95E3015c67EF62B866cC28ca5A9AB5017A55e336 (MiscEthereum.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 2, enable: false) | +| 3 | AgentEnabledSet(agentId: 3, enable: false) | +| 4 | AgentEnabledSet(agentId: 4, enable: false) | + +#### 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A (AaveV2Ethereum.POOL_ADMIN, AaveV2EthereumAMM.POOL_ADMIN, AaveV3Ethereum.ACL_ADMIN, AaveV3EthereumEtherFi.ACL_ADMIN, AaveV3EthereumHorizon.ACL_ADMIN, AaveV3EthereumLido.ACL_ADMIN, GovernanceV3Ethereum.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 5 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833655, withDelegatecall: true, resultData: 0x) | + +#### 0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 6 | PayloadExecuted(payloadId: 427) | + +## Raw storage changes + +### 0x95e3015c67ef62b866cc28ca5a9ab5017a55e336 (MiscEthereum.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x370d9d444cd7d5b7a3eb0c597ab8f2decc97e15e15edea4a1a5e19d018dca02f | 0x0000000000000000000000017abb46c690c52e919687d19ebf89c81a6136c1f2 | 0x0000000000000000000000007abb46c690c52e919687d19ebf89c81a6136c1f2 | +| 0x60b0da6b08ce0785d28a00df35f82788b00e12ed74fbd751b7f17e2061d651cf | 0x0000000000000000000000017abb46c690c52e919687d19ebf89c81a6136c1f2 | 0x0000000000000000000000007abb46c690c52e919687d19ebf89c81a6136c1f2 | +| 0xae0580332fc949d1ce8178489a4add556d3c049f1a99565886ec1eac6de338a7 | 0x0000000000000000000000017abb46c690c52e919687d19ebf89c81a6136c1f2 | 0x0000000000000000000000007abb46c690c52e919687d19ebf89c81a6136c1f2 | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000017abb46c690c52e919687d19ebf89c81a6136c1f2 | 0x0000000000000000000000007abb46c690c52e919687d19ebf89c81a6136c1f2 | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000017abb46c690c52e919687d19ebf89c81a6136c1f2 | 0x0000000000000000000000007abb46c690c52e919687d19ebf89c81a6136c1f2 | + +### 0xdabad81af85554e9ae636395611c58f7ec1aaec5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x99334b505fe371b927d043d4d49ba0173d80ed1acda424ff8a00a9a17fc2bbbd | 0x0069d91236000000000002000000000000000000000000000000000000000000 | 0x0069d91236000000000003000000000000000000000000000000000000000000 | +| 0x99334b505fe371b927d043d4d49ba0173d80ed1acda424ff8a00a9a17fc2bbbe | 0x000000000000000000093a800000000000006a0736b700000000000000000000 | 0x000000000000000000093a800000000000006a0736b700000000000069d91237 | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..7a44b6894 --- /dev/null +++ b/diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,43 @@ +## Event logs + +#### 0x7520bb9c237c864957e9a9881821bF882491bc5C (MiscGnosis.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0x1dF462e2712496373A347f8ad10802a5E95f053D (AaveV3Gnosis.ACL_ADMIN, GovernanceV3Gnosis.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833675, withDelegatecall: true, resultData: 0x) | + +#### 0x9A1F491B86D09fC1484b5fab10041B189B60756b (GovernanceV3Gnosis.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 3 | PayloadExecuted(payloadId: 74) | + +## Raw storage changes + +### 0x7520bb9c237c864957e9a9881821bf882491bc5c (MiscGnosis.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000017bd97dd6c199532d11cf5f55e13a120db6dd0f4f | 0x0000000000000000000000007bd97dd6c199532d11cf5f55e13a120db6dd0f4f | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000017bd97dd6c199532d11cf5f55e13a120db6dd0f4f | 0x0000000000000000000000007bd97dd6c199532d11cf5f55e13a120db6dd0f4f | + +### 0x9a1f491b86d09fc1484b5fab10041b189b60756b (GovernanceV3Gnosis.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x4527180e78e4a6462bf9deb3d847e2025103f904bac3cb89e4a58cffdf5fa004 | 0x0069d9124a000000000002000000000000000000000000000000000000000000 | 0x0069d9124a000000000003000000000000000000000000000000000000000000 | +| 0x4527180e78e4a6462bf9deb3d847e2025103f904bac3cb89e4a58cffdf5fa005 | 0x000000000000000000093a800000000000006a0736cb00000000000000000000 | 0x000000000000000000093a800000000000006a0736cb00000000000069d9124b | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..88bb6995d --- /dev/null +++ b/diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,41 @@ +## Event logs + +#### 0xa1e306dfB12270b02960d5a612539fc587108eD7 (MiscLinea.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | + +#### 0x8c2d95FE7aeB57b86961F3abB296A54f0ADb7F88 (AaveV3Linea.ACL_ADMIN, GovernanceV3Linea.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 1 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833676, withDelegatecall: true, resultData: 0x) | + +#### 0x3BcE23a1363728091bc57A58a226CF2940C2e074 (GovernanceV3Linea.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 2 | PayloadExecuted(payloadId: 24) | + +## Raw storage changes + +### 0x3bce23a1363728091bc57a58a226cf2940c2e074 (GovernanceV3Linea.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xa3ddc4e8d053be09ec661eb04964a206cbd921c2c11fc03088857923bed1485a | 0x0069d9124b000000000002000000000000000000000000000000000000000000 | 0x0069d9124b000000000003000000000000000000000000000000000000000000 | +| 0xa3ddc4e8d053be09ec661eb04964a206cbd921c2c11fc03088857923bed1485b | 0x000000000000000000093a800000000000006a0736cc00000000000000000000 | 0x000000000000000000093a800000000000006a0736cc00000000000069d9124c | + +### 0xa1e306dfb12270b02960d5a612539fc587108ed7 (MiscLinea.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001a6c229d3a1d4d31708b16c0ad2f14337ae4e7893 | 0x000000000000000000000000a6c229d3a1d4d31708b16c0ad2f14337ae4e7893 | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..cba045173 --- /dev/null +++ b/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,43 @@ +## Event logs + +#### 0x1aCEC7abbcFE6dD10EA4bB50894908406FfE8719 (MiscOptimism.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0x746c675dAB49Bcd5BB9Dc85161f2d7Eb435009bf (AaveV3Optimism.ACL_ADMIN, GovernanceV3Optimism.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | + +#### 0x0E1a3Af1f9cC76A62eD31eDedca291E63632e7c4 (GovernanceV3Optimism.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 3 | PayloadExecuted(payloadId: 94) | + +## Raw storage changes + +### 0x0e1a3af1f9cc76a62ed31ededca291e63632e7c4 (GovernanceV3Optimism.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x2023c3bd05b942cf6cbd5cd645de4d3fea19926fd4838b16303d2ed627508472 | 0x0069d91244000000000002000000000000000000000000000000000000000000 | 0x0069d91244000000000003000000000000000000000000000000000000000000 | +| 0x2023c3bd05b942cf6cbd5cd645de4d3fea19926fd4838b16303d2ed627508473 | 0x000000000000000000093a800000000000006a0736c500000000000000000000 | 0x000000000000000000093a800000000000006a0736c500000000000069d91245 | + +### 0x1acec7abbcfe6dd10ea4bb50894908406ffe8719 (MiscOptimism.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..7e0128a81 --- /dev/null +++ b/diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,43 @@ +## Event logs + +#### 0x5F29ACbFB6de4282bB4DD2017930cDA730eD864D (MiscPlasma.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0x47aAdaAE1F05C978E6aBb7568d11B7F6e0FC4d6A (AaveV3Plasma.ACL_ADMIN, GovernanceV3Plasma.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833682, withDelegatecall: true, resultData: 0x) | + +#### 0xe76EB348E65eF163d85ce282125FF5a7F5712A1d (GovernanceV3Plasma.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 3 | PayloadExecuted(payloadId: 23) | + +## Raw storage changes + +### 0x5f29acbfb6de4282bb4dd2017930cda730ed864d (MiscPlasma.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001ae48f22903d43f13f66cc650f57bd4654ac222cb | 0x000000000000000000000000ae48f22903d43f13f66cc650f57bd4654ac222cb | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x000000000000000000000001ae48f22903d43f13f66cc650f57bd4654ac222cb | 0x000000000000000000000000ae48f22903d43f13f66cc650f57bd4654ac222cb | + +### 0xe76eb348e65ef163d85ce282125ff5a7f5712a1d (GovernanceV3Plasma.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0f0519a40093d7edad68f12e2ec868fdf92a03df1cbec3e035c987d6b218f2f4 | 0x0069d91251000000000002000000000000000000000000000000000000000000 | 0x0069d91251000000000003000000000000000000000000000000000000000000 | +| 0x0f0519a40093d7edad68f12e2ec868fdf92a03df1cbec3e035c987d6b218f2f5 | 0x000000000000000000093a800000000000006a0736d200000000000000000000 | 0x000000000000000000093a800000000000006a0736d200000000000069d91252 | + + +## Raw diff + +```json +{} +``` diff --git a/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md new file mode 100644 index 000000000..eaf95f2b5 --- /dev/null +++ b/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -0,0 +1,43 @@ +## Event logs + +#### 0xd44342b1aC132353d3148Ea6ed330d1Ae6F0c664 (MiscPolygon.AGENT_HUB) + +| index | event | +| --- | --- | +| 0 | AgentEnabledSet(agentId: 0, enable: false) | +| 1 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0xDf7d0e6454DB638881302729F5ba99936EaAB233 (AaveV2Polygon.POOL_ADMIN, AaveV3Polygon.ACL_ADMIN, GovernanceV3Polygon.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | + +#### 0x401B5D0294E23637c18fcc38b1Bca814CDa2637C (GovernanceV3Polygon.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 3 | PayloadExecuted(payloadId: 142) | + +## Raw storage changes + +### 0x401b5d0294e23637c18fcc38b1bca814cda2637c (GovernanceV3Polygon.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xe20d6cec910e4e2dd7ac9f6fe69eb0209ee2e78a233f210927c28bf602584ae6 | 0x0069d91244000000000002000000000000000000000000000000000000000000 | 0x0069d91244000000000003000000000000000000000000000000000000000000 | +| 0xe20d6cec910e4e2dd7ac9f6fe69eb0209ee2e78a233f210927c28bf602584ae7 | 0x000000000000000000093a800000000000006a0736c500000000000000000000 | 0x000000000000000000093a800000000000006a0736c500000000000069d91245 | + +### 0xd44342b1ac132353d3148ea6ed330d1ae6f0c664 (MiscPolygon.AGENT_HUB) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | +| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | + + +## Raw diff + +```json +{} +``` diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..5cac40b6e --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscArbitrum} from 'aave-address-book/MiscArbitrum.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscArbitrum.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscArbitrum.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..4a43ad410 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('arbitrum'), 451063652); + proposal = new AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Arbitrum.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..35407dfa0 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscAvalanche} from 'aave-address-book/MiscAvalanche.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscAvalanche.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscAvalanche.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..805b77202 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('avalanche'), 82595973); + proposal = new AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Avalanche.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..315a763d0 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscBNB} from 'aave-address-book/MiscBNB.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscBNB.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscBNB.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..c93a82e3d --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('bnb'), 91740832); + proposal = new AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3BNB.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..88757e2de --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscBase} from 'aave-address-book/MiscBase.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscBase.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscBase.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..c10a8fde4 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('base'), 44522163); + proposal = new AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Base.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..a4b758663 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscEthereum.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscEthereum.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..648526d71 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('mainnet'), 24850119); + proposal = new AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Ethereum.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..69b2ca5f0 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscGnosis} from 'aave-address-book/MiscGnosis.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscGnosis.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscGnosis.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..51fa8e5d9 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('gnosis'), 45604158); + proposal = new AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Gnosis.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..8c6fcf5a5 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscLinea} from 'aave-address-book/MiscLinea.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + uint256 agentCount = IAgentHub(MiscLinea.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscLinea.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..299d93a12 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Linea} from 'aave-address-book/AaveV3Linea.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; +import {AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('linea'), 30151483); + proposal = new AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Linea.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..a8ce1938e --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscOptimism} from 'aave-address-book/MiscOptimism.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscOptimism.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscOptimism.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..3f6871ddd --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('optimism'), 150117446); + proposal = new AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Optimism.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..722d4c799 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscPlasma} from 'aave-address-book/MiscPlasma.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscPlasma.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscPlasma.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..bbfe6dae3 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AaveV3Plasma} from 'aave-address-book/AaveV3Plasma.sol'; + +import 'forge-std/Test.sol'; +import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; +import {AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('plasma'), 18901819); + proposal = new AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Plasma.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol new file mode 100644 index 000000000..f30f1fbb7 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {MiscPolygon} from 'aave-address-book/MiscPolygon.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 + */ +contract AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is + IProposalGenericExecutor +{ + function execute() external { + // custom code goes here + uint256 agentCount = IAgentHub(MiscPolygon.AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(MiscPolygon.AGENT_HUB).setAgentEnabled(i, false); + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol new file mode 100644 index 000000000..2781838b1 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -0,0 +1,34 @@ +// 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/src/ProtocolV3TestBase.sol'; +import {AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Test for AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv + */ +contract AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is + ProtocolV3TestBase +{ + AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('polygon'), 85356816); + proposal = new AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + */ + function test_defaultProposalExecution() public { + defaultTest( + 'AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', + AaveV3Polygon.POOL, + address(proposal) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md new file mode 100644 index 000000000..6a3b37317 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -0,0 +1,23 @@ +--- +title: "Orderly Transition and Offboarding Plan for Chaos Labs" +author: "ChaosLabs (implemented by Aavechan Initiative @aci via Skyward)" +discussions: "https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399" +snapshot: TODO +--- + +## Simple Summary + +## Motivation + +## Specification + +## References + +- Implementation: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol) +- Tests: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol) + [Snapshot](TODO) +- [Discussion](https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399) + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol new file mode 100644 index 000000000..03d863041 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol @@ -0,0 +1,351 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/src/GovV3Helpers.sol'; +import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol'; + +import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, BaseScript, GnosisScript, BNBScript, LineaScript, PlasmaScript} from 'solidity-utils/contracts/utils/ScriptUtils.sol'; +import {AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; + +/** + * @dev Deploy Ethereum + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployEthereum chain=mainnet + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/1/run-latest.json + */ +contract DeployEthereum is EthereumScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Polygon + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployPolygon chain=polygon + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/137/run-latest.json + */ +contract DeployPolygon is PolygonScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Avalanche + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployAvalanche chain=avalanche + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/43114/run-latest.json + */ +contract DeployAvalanche is AvalancheScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Optimism + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployOptimism chain=optimism + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/10/run-latest.json + */ +contract DeployOptimism is OptimismScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Arbitrum + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployArbitrum chain=arbitrum + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/42161/run-latest.json + */ +contract DeployArbitrum is ArbitrumScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Base + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployBase chain=base + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/8453/run-latest.json + */ +contract DeployBase is BaseScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Gnosis + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployGnosis chain=gnosis + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/100/run-latest.json + */ +contract DeployGnosis is GnosisScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy BNB + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployBNB chain=bnb + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/56/run-latest.json + */ +contract DeployBNB is BNBScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Linea + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployLinea chain=linea + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/59144/run-latest.json + */ +contract DeployLinea is LineaScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Plasma + * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployPlasma chain=plasma + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/9745/run-latest.json + */ +contract DeployPlasma is PlasmaScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).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/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:CreateProposal chain=mainnet + */ +contract CreateProposal is EthereumScript { + function run() external { + // create payloads + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](10); + + // compose actions for validation + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsEthereum = new IPayloadsControllerCore.ExecutionAction[](1); + actionsEthereum[0] = GovV3Helpers.buildAction( + type(AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsPolygon = new IPayloadsControllerCore.ExecutionAction[](1); + actionsPolygon[0] = GovV3Helpers.buildAction( + type(AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[1] = GovV3Helpers.buildPolygonPayload(vm, actionsPolygon); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsAvalanche = new IPayloadsControllerCore.ExecutionAction[](1); + actionsAvalanche[0] = GovV3Helpers.buildAction( + type(AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[2] = GovV3Helpers.buildAvalanchePayload(vm, actionsAvalanche); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsOptimism = new IPayloadsControllerCore.ExecutionAction[](1); + actionsOptimism[0] = GovV3Helpers.buildAction( + type(AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[3] = GovV3Helpers.buildOptimismPayload(vm, actionsOptimism); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsArbitrum = new IPayloadsControllerCore.ExecutionAction[](1); + actionsArbitrum[0] = GovV3Helpers.buildAction( + type(AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[4] = GovV3Helpers.buildArbitrumPayload(vm, actionsArbitrum); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsBase = new IPayloadsControllerCore.ExecutionAction[](1); + actionsBase[0] = GovV3Helpers.buildAction( + type(AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[5] = GovV3Helpers.buildBasePayload(vm, actionsBase); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsGnosis = new IPayloadsControllerCore.ExecutionAction[](1); + actionsGnosis[0] = GovV3Helpers.buildAction( + type(AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[6] = GovV3Helpers.buildGnosisPayload(vm, actionsGnosis); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsBNB = new IPayloadsControllerCore.ExecutionAction[](1); + actionsBNB[0] = GovV3Helpers.buildAction( + type(AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[7] = GovV3Helpers.buildBNBPayload(vm, actionsBNB); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsLinea = new IPayloadsControllerCore.ExecutionAction[](1); + actionsLinea[0] = GovV3Helpers.buildAction( + type(AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[8] = GovV3Helpers.buildLineaPayload(vm, actionsLinea); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsPlasma = new IPayloadsControllerCore.ExecutionAction[](1); + actionsPlasma[0] = GovV3Helpers.buildAction( + type(AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode + ); + payloads[9] = GovV3Helpers.buildPlasmaPayload(vm, actionsPlasma); + } + + // create proposal + vm.startBroadcast(); + GovV3Helpers.createProposal( + vm, + payloads, + GovernanceV3Ethereum.VOTING_PORTAL_ETH_AVAX, + GovV3Helpers.ipfsHashFile( + vm, + 'src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md' + ) + ); + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/config.ts b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/config.ts new file mode 100644 index 000000000..d4f4bb760 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/config.ts @@ -0,0 +1,37 @@ +import {ConfigFile} from '../../generator/types'; +export const config: ConfigFile = { + rootOptions: { + author: 'ChaosLabs (implemented by Aavechan Initiative @aci via Skyward)', + pools: [ + 'AaveV3Ethereum', + 'AaveV3Polygon', + 'AaveV3Avalanche', + 'AaveV3Optimism', + 'AaveV3Arbitrum', + 'AaveV3Base', + 'AaveV3Gnosis', + 'AaveV3BNB', + 'AaveV3Linea', + 'AaveV3Plasma', + ], + title: 'Orderly Transition and Offboarding Plan for Chaos Labs', + shortName: 'OrderlyTransitionAndOffboardingPlanForChaosLabs', + date: '20260410', + discussion: + 'https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399', + snapshot: '', + votingNetwork: 'AVALANCHE', + }, + poolOptions: { + AaveV3Ethereum: {configs: {OTHERS: {}}, cache: {blockNumber: 24850119}}, + AaveV3Polygon: {configs: {OTHERS: {}}, cache: {blockNumber: 85356816}}, + AaveV3Avalanche: {configs: {OTHERS: {}}, cache: {blockNumber: 82595973}}, + AaveV3Optimism: {configs: {OTHERS: {}}, cache: {blockNumber: 150117446}}, + AaveV3Arbitrum: {configs: {OTHERS: {}}, cache: {blockNumber: 451063652}}, + AaveV3Base: {configs: {OTHERS: {}}, cache: {blockNumber: 44522163}}, + AaveV3Gnosis: {configs: {OTHERS: {}}, cache: {blockNumber: 45604158}}, + AaveV3BNB: {configs: {OTHERS: {}}, cache: {blockNumber: 91740832}}, + AaveV3Linea: {configs: {OTHERS: {}}, cache: {blockNumber: 30151483}}, + AaveV3Plasma: {configs: {OTHERS: {}}, cache: {blockNumber: 18901819}}, + }, +}; From 2a9a55ecbbf17a26ba65e9fcc90ab415596019be Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Fri, 10 Apr 2026 19:14:27 +0200 Subject: [PATCH 02/23] cancel chaos labs stream and send 30 days in bulk --- ...boardingPlanForChaosLabs_20260410_after.md | 44 ++++++++++++++++++- ...ndOffboardingPlanForChaosLabs_20260410.sol | 18 +++++++- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 00463e58c..21c0bbfb1 100644 --- a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -10,20 +10,60 @@ | 3 | AgentEnabledSet(agentId: 3, enable: false) | | 4 | AgentEnabledSet(agentId: 4, enable: false) | +#### 0x18eFE565A5373f430e2F809b97De30335B3ad96A (AaveV3EthereumLido.ASSETS.GHO.A_TOKEN) + +| index | event | +| --- | --- | +| 5 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | +| 6 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 7 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | +| 8 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 9 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | +| 10 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | +| 12 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 209,589.0410 [209589041095890409440000, 18 decimals]) | +| 13 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 202,588.6078 [202588607836049978102763, 18 decimals], index: 1034554920607903635566518116) | + +#### 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c (AaveV2Ethereum.COLLECTOR, AaveV2EthereumAMM.COLLECTOR, AaveV2EthereumArc.COLLECTOR, AaveV3Ethereum.COLLECTOR, AaveV3EthereumEtherFi.COLLECTOR, AaveV3EthereumLido.COLLECTOR) + +| index | event | +| --- | --- | +| 11 | CancelStream(streamId: 100073, sender: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, recipient: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, senderBalance: 1480523401826484007535400, recipientBalance: 20121518264840182502580) | + #### 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A (AaveV2Ethereum.POOL_ADMIN, AaveV2EthereumAMM.POOL_ADMIN, AaveV3Ethereum.ACL_ADMIN, AaveV3EthereumEtherFi.ACL_ADMIN, AaveV3EthereumHorizon.ACL_ADMIN, AaveV3EthereumLido.ACL_ADMIN, GovernanceV3Ethereum.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 5 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833655, withDelegatecall: true, resultData: 0x) | +| 14 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833655, withDelegatecall: true, resultData: 0x) | #### 0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 6 | PayloadExecuted(payloadId: 427) | +| 15 | PayloadExecuted(payloadId: 427) | ## Raw storage changes +### 0x18efe565a5373f430e2f809b97de30335b3ad96a (AaveV3EthereumLido.ASSETS.GHO.A_TOKEN) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0730d3c6347fc0f2d0e70153979d12e28f2c3b47ed9bae8312e8e15d58263dcf | 0x000000000357a24426d48463347cf676000000000000000000c1dbe74bfeffdc | 0x000000000357c3869fba10c45f3c5f640000000000002f04b5bac37fff06bb38 | +| 0x14a553e31736f19e3e380cf55bfb2f82dfd6d880cd07235affb68d8d3e0cac4d | 0x000000000357ba19bbeea687faf930e10000000000059477fc474ca8738cc908 | 0x000000000357c3869fba10c45f3c5f640000000000056573474e650fc0850dac | + +### 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c (AaveV2Ethereum.COLLECTOR, AaveV2EthereumAMM.COLLECTOR, AaveV2EthereumArc.COLLECTOR, AaveV3Ethereum.COLLECTOR, AaveV3EthereumEtherFi.COLLECTOR, AaveV3EthereumLido.COLLECTOR) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dc4 | 0x000000000000000000000000000000000000000000021bfbc6e8f0f78ca60480 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dc5 | 0x000000000000000000000000000000000000000000000000011f45b6c216d80f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dc6 | 0x000000000000000000000000000000000000000000013dc61fc6a184c45417dc | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dc7 | 0x00000000000000000000000000000000000000000000000000000000690f410f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dc8 | 0x000000000000000000000000000000000000000000000000000000006af0748f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dc9 | 0x000000000000000000000000bc540e0729b732fb14afa240aa5a047ae9ba7df0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dca | 0x000000000000000000000000464c71f6c2f760dda6093dcb91c24c39e5d6e18c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dcb | 0x00000000000000000000000118efe565a5373f430e2f809b97de30335b3ad96a | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000001 | + ### 0x95e3015c67ef62b866cc28ca5a9ab5017a55e336 (MiscEthereum.AGENT_HUB) | slot | previous value | new value | diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index a4b758663..09ea9f84a 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -4,7 +4,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol'; import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - +import {AaveV3EthereumLido, AaveV3EthereumLidoAssets} from 'aave-address-book/AaveV3EthereumLido.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -14,11 +15,26 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is IProposalGenericExecutor { + address public constant CHAOS_LABS = 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0; // stream 100073 recipient + uint256 public constant PREVIOUS_STREAM = 100073; + uint256 public constant AMOUNT_PER_SECOND = 80859969558599695; // from stream 100073 + function execute() external { // custom code goes here uint256 agentCount = IAgentHub(MiscEthereum.AGENT_HUB).getAgentCount(); for (uint256 i = 0; i < agentCount; i++) { IAgentHub(MiscEthereum.AGENT_HUB).setAgentEnabled(i, false); } + + // chaos labs mentionned cutting the stream themselves + try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} + catch {} + + // bulk transfer + AaveV3EthereumLido.COLLECTOR.transfer( + IERC20(AaveV3EthereumLidoAssets.GHO_A_TOKEN), + CHAOS_LABS, + AMOUNT_PER_SECOND * 30 days + ); } } From 74c6f0774e8e820cdfe33a34f3d5c904b86d2151 Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Fri, 10 Apr 2026 19:33:16 +0200 Subject: [PATCH 03/23] AIP description --- ...ransitionAndOffboardingPlanForChaosLabs.md | 63 ++++++++++++++++++- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index 6a3b37317..f036ac385 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -5,12 +5,71 @@ discussions: "https://governance.aave.com/t/orderly-transition-and-offboarding-p snapshot: TODO --- -## Simple Summary +## Summary -## Motivation +This proposal sets out a structured transition plan for Chaos Labs’ departure from its current role, with the objective of minimizing disruption to the DAO and maintaining continuity across key risk-management functions during the offboarding period. + +In contrast to recent service provider departures, Aave has a secondary risk provider, which helps minimize the transition period and ensure a smooth continuation of operations. + +As such, our intent is to complete this transition within 30 days. During that period, we will continue supporting the DAO in a clearly defined capacity, complete the handoff of ongoing responsibilities, and ensure that remaining operational dependencies are addressed in an orderly manner. + +As part of this transition, Chaos Labs will cancel its outstanding stream and transfer 30 days’ worth of stream funding from the Aave Treasury to Chaos Labs. + +## Transition Timeline + +The offboarding process will run for thirty days from the approval of this proposal. + +During the transition window, we will dedicate resources to completing outstanding analyses, finalizing any in-progress deliverables, preparing handoff materials, and supporting an orderly wind-down of responsibilities. + +## Continuity of Risk Management + +The DAO is in a position to transition the majority of ongoing risk-management responsibilities without significant delay. LlamaRisk already exists a secondary risk provider, and has [stated](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397) they are fully ready and prepared to take on all risk management functionality. With the key rotation finalized at their [request](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397#p-62730-scope-we-will-absorb-4), they’ll be able to update parameters manually via the risk steward. + +In summary, the addresses associated with the current 2/2 multisig for manual Risk Steward purposes will be rotated from Chaos Labs and BGD to Aave Labs and LlamaRisk, as requested by both, to ensure operational continuity. + +## Risk Oracle Transition + +Aave risk parameter changes will be fully operational via the Aave Risk Steward framework, mentioned above. + +As such, Risk Oracles for Supply Caps, Borrow Caps, Interest Rates, and PT price oracles will be turned off during the transition. + +Parameter management for existing PT assets will be executed through LlamaRisk’s manual risk steward framework, similar to other parameters. + +## Financial and Administrative Changes + +Chaos Labs will immediately cancel its outstanding stream 100073. Stream 100015 is already being canceled due to a stream misconfiguration. We will refund the portion of AAVE tokens corresponding to the remaining stream duration. + +In connection with this transition, 30 days’ worth of stream will be transferred to Chaos Labs as the final compensation associated with the support and wind-down period described in this proposal. This is intended to align compensation with the defined transition window while avoiding a prolonged or ambiguous tail period. + +## Conclusion + +* support continues for one month in a transition capacity; +* all remaining outstanding work will then be brought to completion before departure; +* Supply Cap, Borrow Cap, Interest Rate Risk Oracles, and PT Risk Oracles for existing PTs will be shut down immediately; +* the outstanding stream will be canceled immediately; +* 30 days worth of revenue will serve as the final transition-period compensation. + +We believe this framework gives the DAO sufficient continuity, predictability, and time to transfer responsibilities in an orderly manner. ## Specification +### Oracle deactivation + +This AIP will disable all the agents operating on the followings V3 instances: +- Arbitrum +- Avalanche +- Base +- BNB +- Ethereum (Core and Lido) +- Gnosis +- Linea +- Optimism +- Plasma +- Polygon + +### Stream cancelation and bulk payement + +The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be stransfered from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) ## References - Implementation: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol) From d6b0f5fa47037edc2a742738c3113bb8bac5c7dd Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Fri, 10 Apr 2026 19:40:23 +0200 Subject: [PATCH 04/23] run linter --- ...tionAndOffboardingPlanForChaosLabs_20260410.sol | 3 +-- ...erlyTransitionAndOffboardingPlanForChaosLabs.md | 14 ++++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 09ea9f84a..e026fae0b 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -27,8 +27,7 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 } // chaos labs mentionned cutting the stream themselves - try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} - catch {} + try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} catch {} // bulk transfer AaveV3EthereumLido.COLLECTOR.transfer( diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index f036ac385..76da34a2a 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -43,11 +43,11 @@ In connection with this transition, 30 days’ worth of stream will be transferr ## Conclusion -* support continues for one month in a transition capacity; -* all remaining outstanding work will then be brought to completion before departure; -* Supply Cap, Borrow Cap, Interest Rate Risk Oracles, and PT Risk Oracles for existing PTs will be shut down immediately; -* the outstanding stream will be canceled immediately; -* 30 days worth of revenue will serve as the final transition-period compensation. +- support continues for one month in a transition capacity; +- all remaining outstanding work will then be brought to completion before departure; +- Supply Cap, Borrow Cap, Interest Rate Risk Oracles, and PT Risk Oracles for existing PTs will be shut down immediately; +- the outstanding stream will be canceled immediately; +- 30 days worth of revenue will serve as the final transition-period compensation. We believe this framework gives the DAO sufficient continuity, predictability, and time to transfer responsibilities in an orderly manner. @@ -56,6 +56,7 @@ We believe this framework gives the DAO sufficient continuity, predictability, a ### Oracle deactivation This AIP will disable all the agents operating on the followings V3 instances: + - Arbitrum - Avalanche - Base @@ -69,7 +70,8 @@ This AIP will disable all the agents operating on the followings V3 instances: ### Stream cancelation and bulk payement -The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be stransfered from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) +The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be stransfered from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) + ## References - Implementation: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol) From 032018a34e585df0bad053e8f56fdda8651db617 Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Tue, 14 Apr 2026 13:12:55 +0200 Subject: [PATCH 05/23] typo & other correction --- ...boardingPlanForChaosLabs_20260410_after.md | 43 ------------------- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 4 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 +- ...ransitionAndOffboardingPlanForChaosLabs.md | 13 +++--- 11 files changed, 16 insertions(+), 60 deletions(-) delete mode 100644 diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md diff --git a/diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md deleted file mode 100644 index 7e0128a81..000000000 --- a/diffs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ /dev/null @@ -1,43 +0,0 @@ -## Event logs - -#### 0x5F29ACbFB6de4282bB4DD2017930cDA730eD864D (MiscPlasma.AGENT_HUB) - -| index | event | -| --- | --- | -| 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | - -#### 0x47aAdaAE1F05C978E6aBb7568d11B7F6e0FC4d6A (AaveV3Plasma.ACL_ADMIN, GovernanceV3Plasma.EXECUTOR_LVL_1) - -| index | event | -| --- | --- | -| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833682, withDelegatecall: true, resultData: 0x) | - -#### 0xe76EB348E65eF163d85ce282125FF5a7F5712A1d (GovernanceV3Plasma.PAYLOADS_CONTROLLER) - -| index | event | -| --- | --- | -| 3 | PayloadExecuted(payloadId: 23) | - -## Raw storage changes - -### 0x5f29acbfb6de4282bb4dd2017930cda730ed864d (MiscPlasma.AGENT_HUB) - -| slot | previous value | new value | -| --- | --- | --- | -| 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001ae48f22903d43f13f66cc650f57bd4654ac222cb | 0x000000000000000000000000ae48f22903d43f13f66cc650f57bd4654ac222cb | -| 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x000000000000000000000001ae48f22903d43f13f66cc650f57bd4654ac222cb | 0x000000000000000000000000ae48f22903d43f13f66cc650f57bd4654ac222cb | - -### 0xe76eb348e65ef163d85ce282125ff5a7f5712a1d (GovernanceV3Plasma.PAYLOADS_CONTROLLER) - -| slot | previous value | new value | -| --- | --- | --- | -| 0x0f0519a40093d7edad68f12e2ec868fdf92a03df1cbec3e035c987d6b218f2f4 | 0x0069d91251000000000002000000000000000000000000000000000000000000 | 0x0069d91251000000000003000000000000000000000000000000000000000000 | -| 0x0f0519a40093d7edad68f12e2ec868fdf92a03df1cbec3e035c987d6b218f2f5 | 0x000000000000000000093a800000000000006a0736d200000000000000000000 | 0x000000000000000000093a800000000000006a0736d200000000000069d91252 | - - -## Raw diff - -```json -{} -``` diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 5cac40b6e..a7f7c867d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -7,7 +7,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 35407dfa0..bf981f1e0 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -8,7 +8,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 315a763d0..c2af1a538 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -8,7 +8,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 88757e2de..6852d9ecf 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -8,7 +8,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index e026fae0b..3a949b332 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -9,7 +9,7 @@ import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is @@ -26,7 +26,7 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 IAgentHub(MiscEthereum.AGENT_HUB).setAgentEnabled(i, false); } - // chaos labs mentionned cutting the stream themselves + // chaos labs mentioned cutting the stream themselves try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} catch {} // bulk transfer diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 69b2ca5f0..2c417b349 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -8,7 +8,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 8c6fcf5a5..2c7e7285a 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -8,7 +8,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index a8ce1938e..18bc25c6f 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -8,7 +8,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index f30f1fbb7..7ea637748 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -8,7 +8,7 @@ import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO + * - Snapshot: direct-to-AIP * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 */ contract AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index 76da34a2a..39c12b82b 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -2,7 +2,7 @@ title: "Orderly Transition and Offboarding Plan for Chaos Labs" author: "ChaosLabs (implemented by Aavechan Initiative @aci via Skyward)" discussions: "https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399" -snapshot: TODO +snapshot: direct-to-AIP --- ## Summary @@ -23,9 +23,9 @@ During the transition window, we will dedicate resources to completing outstandi ## Continuity of Risk Management -The DAO is in a position to transition the majority of ongoing risk-management responsibilities without significant delay. LlamaRisk already exists a secondary risk provider, and has [stated](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397) they are fully ready and prepared to take on all risk management functionality. With the key rotation finalized at their [request](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397#p-62730-scope-we-will-absorb-4), they’ll be able to update parameters manually via the risk steward. +The DAO is in a position to transition the majority of ongoing risk-management responsibilities without significant delay. LlamaRisk already exists as a secondary risk provider, and has [stated](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397) they are fully ready and prepared to take on all risk management functionality. With the key rotation finalized at their [request](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397#p-62730-scope-we-will-absorb-4), they’ll be able to update parameters manually via the risk steward. -In summary, the addresses associated with the current 2/2 multisig for manual Risk Steward purposes will be rotated from Chaos Labs and BGD to Aave Labs and LlamaRisk, as requested by both, to ensure operational continuity. +In summary, the addresses associated with the current 2/2 multisig for manual Risk Steward purposes doesn't change, the signers will be rotated from Chaos Labs and BGD to Aave Labs and LlamaRisk, as requested by both, to ensure operational continuity. ## Risk Oracle Transition @@ -65,18 +65,17 @@ This AIP will disable all the agents operating on the followings V3 instances: - Gnosis - Linea - Optimism -- Plasma - Polygon -### Stream cancelation and bulk payement +### Stream cancelation and bulk payment -The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be stransfered from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) +The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be transfered from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) ## References - Implementation: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol) - Tests: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol) - [Snapshot](TODO) +- Snapshot: direct-to-AIP - [Discussion](https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399) ## Copyright From 4952afd547f311913da1f9f9ac8161088018558e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Wed, 15 Apr 2026 17:48:04 +0900 Subject: [PATCH 06/23] let plasma instance unchanged --- ...ndOffboardingPlanForChaosLabs_20260410.sol | 24 ------------ ...OffboardingPlanForChaosLabs_20260410.t.sol | 34 ----------------- ...ransitionAndOffboardingPlanForChaosLabs.md | 6 +-- ...OffboardingPlanForChaosLabs_20260410.s.sol | 37 +------------------ 4 files changed, 5 insertions(+), 96 deletions(-) delete mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol delete mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol deleted file mode 100644 index 722d4c799..000000000 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; -import {MiscPlasma} from 'aave-address-book/MiscPlasma.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - -/** - * @title Orderly Transition and Offboarding Plan for Chaos Labs - * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) - * - Snapshot: TODO - * - Discussion: https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399 - */ -contract AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is - IProposalGenericExecutor -{ - function execute() external { - // custom code goes here - uint256 agentCount = IAgentHub(MiscPlasma.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscPlasma.AGENT_HUB).setAgentEnabled(i, false); - } - } -} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol deleted file mode 100644 index bbfe6dae3..000000000 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -import {AaveV3Plasma} from 'aave-address-book/AaveV3Plasma.sol'; - -import 'forge-std/Test.sol'; -import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; -import {AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; - -/** - * @dev Test for AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 - * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol -vv - */ -contract AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test is - ProtocolV3TestBase -{ - AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 internal proposal; - - function setUp() public { - vm.createSelectFork(vm.rpcUrl('plasma'), 18901819); - proposal = new AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); - } - - /** - * @dev executes the generic test suite including e2e and config snapshots - */ - function test_defaultProposalExecution() public { - defaultTest( - 'AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410', - AaveV3Plasma.POOL, - address(proposal) - ); - } -} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index 39c12b82b..9aa2be41f 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -19,7 +19,7 @@ As part of this transition, Chaos Labs will cancel its outstanding stream and tr The offboarding process will run for thirty days from the approval of this proposal. -During the transition window, we will dedicate resources to completing outstanding analyses, finalizing any in-progress deliverables, preparing handoff materials, and supporting an orderly wind-down of responsibilities. +During the transition window, we will dedicate resources to completing outstanding analyses, finalizing any in-progress deliverables, preparing handoff materials, and supporting an orderly wind-down of responsibilities. Plasma PT oracles will be turned off on June 18th ## Continuity of Risk Management @@ -73,8 +73,8 @@ The stream 100073 will be canceled (if not already done) and an amount equivalen ## References -- Implementation: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol) -- Tests: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Plasma](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol) +- Implementation: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol) +- Tests: [AaveV3Ethereum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Polygon](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Avalanche](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Optimism](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Arbitrum](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Base](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Gnosis](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3BNB](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol), [AaveV3Linea](https://github.com/aave-dao/aave-proposals-v3/blob/main/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol) - Snapshot: direct-to-AIP - [Discussion](https://governance.aave.com/t/orderly-transition-and-offboarding-plan-for-chaos-labs/24399) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol index 03d863041..a43e10e6f 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.0; import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/src/GovV3Helpers.sol'; import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol'; -import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, BaseScript, GnosisScript, BNBScript, LineaScript, PlasmaScript} from 'solidity-utils/contracts/utils/ScriptUtils.sol'; +import {EthereumScript, PolygonScript, AvalancheScript, OptimismScript, ArbitrumScript, BaseScript, GnosisScript, BNBScript, LineaScript} from 'solidity-utils/contracts/utils/ScriptUtils.sol'; import {AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; import {AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; import {AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; @@ -14,8 +14,6 @@ import {AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} fro import {AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; import {AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; import {AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; -import {AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; - /** * @dev Deploy Ethereum * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployEthereum chain=mainnet @@ -214,28 +212,6 @@ contract DeployLinea is LineaScript { } } -/** - * @dev Deploy Plasma - * deploy-command: make deploy-ledger contract=src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:DeployPlasma chain=plasma - * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol/9745/run-latest.json - */ -contract DeployPlasma is PlasmaScript { - function run() external broadcast { - // deploy payloads - address payload0 = GovV3Helpers.deployDeterministic( - type(AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).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/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.s.sol:CreateProposal chain=mainnet @@ -243,7 +219,7 @@ contract DeployPlasma is PlasmaScript { contract CreateProposal is EthereumScript { function run() external { // create payloads - PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](10); + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](9); // compose actions for validation { @@ -327,15 +303,6 @@ contract CreateProposal is EthereumScript { payloads[8] = GovV3Helpers.buildLineaPayload(vm, actionsLinea); } - { - IPayloadsControllerCore.ExecutionAction[] - memory actionsPlasma = new IPayloadsControllerCore.ExecutionAction[](1); - actionsPlasma[0] = GovV3Helpers.buildAction( - type(AaveV3Plasma_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410).creationCode - ); - payloads[9] = GovV3Helpers.buildPlasmaPayload(vm, actionsPlasma); - } - // create proposal vm.startBroadcast(); GovV3Helpers.createProposal( From 9302b04b25e9b6b126db35525ff907305479b27f Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Sun, 19 Apr 2026 21:42:52 +0200 Subject: [PATCH 07/23] remove the RISK_ADMIN role from the agents --- ...boardingPlanForChaosLabs_20260410_after.md | 24 ++++++++-- ...boardingPlanForChaosLabs_20260410_after.md | 24 ++++++++-- ...boardingPlanForChaosLabs_20260410_after.md | 20 ++++++-- ...boardingPlanForChaosLabs_20260410_after.md | 24 ++++++++-- ...boardingPlanForChaosLabs_20260410_after.md | 48 +++++++++++++------ ...boardingPlanForChaosLabs_20260410_after.md | 20 ++++++-- ...boardingPlanForChaosLabs_20260410_after.md | 16 ++++++- ...boardingPlanForChaosLabs_20260410_after.md | 20 ++++++-- ...boardingPlanForChaosLabs_20260410_after.md | 20 ++++++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 8 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 9 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 8 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 9 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 8 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 9 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 9 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 9 ++-- ...ndOffboardingPlanForChaosLabs_20260410.sol | 10 ++-- .../DelistAllAgents.sol | 23 +++++++++ 19 files changed, 225 insertions(+), 93 deletions(-) create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol diff --git a/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 1f2ef9f55..beccb187e 100644 --- a/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,20 +5,28 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | -| 2 | AgentEnabledSet(agentId: 2, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | +| 4 | AgentEnabledSet(agentId: 2, enable: false) | + +#### 0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B (AaveV3Arbitrum.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xeBe545478709d4388e36Bb706CF11e2f89898541, sender: 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x8963Abfb008A668346B18d0BeE82b171F3b2Be24, sender: 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327) | +| 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xc42f40Bc50e7342867Be7F823a4358cba5089063, sender: 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327) | #### 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327 (AaveV3Arbitrum.ACL_ADMIN, GovernanceV3Arbitrum.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 3 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833672, withDelegatecall: true, resultData: 0x) | +| 6 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833672, withDelegatecall: true, resultData: 0x) | #### 0x89644CA1bB8064760312AE4F03ea41b05dA3637C (GovernanceV3Arbitrum.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 4 | PayloadExecuted(payloadId: 118) | +| 7 | PayloadExecuted(payloadId: 118) | ## Raw storage changes @@ -29,6 +37,14 @@ | 0xbaba906220955b09fec23b575e20afa7d08161b8520bb9d5ec850371b93edf98 | 0x0069d91247000000000002000000000000000000000000000000000000000000 | 0x0069d91247000000000003000000000000000000000000000000000000000000 | | 0xbaba906220955b09fec23b575e20afa7d08161b8520bb9d5ec850371b93edf99 | 0x000000000000000000093a800000000000006a0736c800000000000000000000 | 0x000000000000000000093a800000000000006a0736c800000000000069d91248 | +### 0xa72636cbcaa8f5ff95b2cc47f3cdee83f3294a0b (AaveV3Arbitrum.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x04978cdc4dc3feb55e19c2f3aea75ab44983b02d768689b097ca63639bb01fe5 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2e7b91d3be4ed2901f536e6444a726a6187230ac92eaacac95dcfbf4186b7b39 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x41c3f33d4056955c6853725a2604d2362e57cc2cd00c5740a2261cda78936c31 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0xf4f2bc657abe96863dc1ae17c9e9fffc2b420e7b (MiscArbitrum.AGENT_HUB) | slot | previous value | new value | diff --git a/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 7760ba6c3..410c9d65a 100644 --- a/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,20 +5,28 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | -| 2 | AgentEnabledSet(agentId: 2, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | +| 4 | AgentEnabledSet(agentId: 2, enable: false) | + +#### 0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B (AaveV3Avalanche.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x38753B4D5116b12bC3524e334bC76AE57fA42fFB, sender: 0x3C06dce358add17aAf230f2234bCCC4afd50d090) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xb57C37F48d1De2DACBefed69679Ba0b7DC43A394, sender: 0x3C06dce358add17aAf230f2234bCCC4afd50d090) | +| 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x72b89100DB6f0Bde118Ebb34E71FA95A6DC59038, sender: 0x3C06dce358add17aAf230f2234bCCC4afd50d090) | #### 0x3C06dce358add17aAf230f2234bCCC4afd50d090 (AaveV2Avalanche.POOL_ADMIN, AaveV3Avalanche.ACL_ADMIN, GovernanceV3Avalanche.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 3 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833666, withDelegatecall: true, resultData: 0x) | +| 6 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833666, withDelegatecall: true, resultData: 0x) | #### 0x1140CB7CAfAcC745771C2Ea31e7B5C653c5d0B80 (GovernanceV3Avalanche.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 4 | PayloadExecuted(payloadId: 112) | +| 7 | PayloadExecuted(payloadId: 112) | ## Raw storage changes @@ -37,6 +45,14 @@ | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000011273f29204fc102bd4620485b13cfe27a794ff32 | 0x0000000000000000000000001273f29204fc102bd4620485b13cfe27a794ff32 | | 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000011273f29204fc102bd4620485b13cfe27a794ff32 | 0x0000000000000000000000001273f29204fc102bd4620485b13cfe27a794ff32 | +### 0xa72636cbcaa8f5ff95b2cc47f3cdee83f3294a0b (AaveV3Avalanche.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0b95d629515537fd986932ceb815817d1b02e98e230526550ad7f104264f4fc9 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x135dda873502153ca382526a118414794866d6d3275e27495af520e7507f218a | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x7c21943e52db3f770df33ebf25725b085feb6b9c96898a119b2a237e52c37b3c | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ## Raw diff diff --git a/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 8a667be96..e761f33c8 100644 --- a/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,19 +5,26 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0x2D97F8FA96886Fd923c065F5457F9DDd494e3877 (AaveV3BNB.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x2cf0fA5b36F0f89a5EA18F835d1375974a7720B8, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x970dDfF6c38B29D67DFe282306f7c0e1f5f31207, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | #### 0x9390B1735def18560c509E2d0bc090E9d6BA257a (AaveV3BNB.ACL_ADMIN, GovernanceV3BNB.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833678, withDelegatecall: true, resultData: 0x) | +| 4 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833678, withDelegatecall: true, resultData: 0x) | #### 0xE5EF2Dd06755A97e975f7E282f828224F2C3e627 (GovernanceV3BNB.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 3 | PayloadExecuted(payloadId: 57) | +| 5 | PayloadExecuted(payloadId: 57) | ## Raw storage changes @@ -28,6 +35,13 @@ | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001239d3bc5fa247337287cb03f53b8bc63dbbc332d | 0x000000000000000000000000239d3bc5fa247337287cb03f53b8bc63dbbc332d | | 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x000000000000000000000001239d3bc5fa247337287cb03f53b8bc63dbbc332d | 0x000000000000000000000000239d3bc5fa247337287cb03f53b8bc63dbbc332d | +### 0x2d97f8fa96886fd923c065f5457f9ddd494e3877 (AaveV3BNB.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x471017140763f83b11f69c0d8a269988f60f179e9470ce4a7c604644d1a8b7df | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x5306861f203ea0ed6a7b80b9e7d884718dcfd6279a3d2150e83d04bbf748ecf1 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0xe5ef2dd06755a97e975f7e282f828224f2c3e627 (GovernanceV3BNB.PAYLOADS_CONTROLLER) | slot | previous value | new value | diff --git a/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 6aca6178d..a192ca470 100644 --- a/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,20 +5,28 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | -| 2 | AgentEnabledSet(agentId: 2, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | +| 4 | AgentEnabledSet(agentId: 2, enable: false) | + +#### 0x43955b0899Ab7232E3a454cf84AedD22Ad46FD33 (AaveV3Base.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x42ca9E62C9B61d01Bb222d6E69f095eE98e61cE8, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x0ae2815b1f607EfEe34C15E63c72Cd6C99d1D6fa, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | +| 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xAD83c71619368390c4C4fd1Aa472235FD4Ea3F32, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | #### 0x9390B1735def18560c509E2d0bc090E9d6BA257a (AaveV3Base.ACL_ADMIN, GovernanceV3Base.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 3 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833673, withDelegatecall: true, resultData: 0x) | +| 6 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833673, withDelegatecall: true, resultData: 0x) | #### 0x2DC219E716793fb4b21548C0f009Ba3Af753ab01 (GovernanceV3Base.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 4 | PayloadExecuted(payloadId: 105) | +| 7 | PayloadExecuted(payloadId: 105) | ## Raw storage changes @@ -37,6 +45,14 @@ | 0x8bd72d705e704e96ab1fa5baf1ac8053f4ec008dca8cf0376ca60a5648fa9532 | 0x0069d91248000000000002000000000000000000000000000000000000000000 | 0x0069d91248000000000003000000000000000000000000000000000000000000 | | 0x8bd72d705e704e96ab1fa5baf1ac8053f4ec008dca8cf0376ca60a5648fa9533 | 0x000000000000000000093a800000000000006a0736c900000000000000000000 | 0x000000000000000000093a800000000000006a0736c900000000000069d91249 | +### 0x43955b0899ab7232e3a454cf84aedd22ad46fd33 (AaveV3Base.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x18178f8ff305ace32902ddd18a4333278f186aa0fc03b8ac669480594cf25422 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x818f3090e35dd02bd920a5476f176aefefb9ccb4f1f4dbd29bdf05acab72d676 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xecef8c5a072f9713c13ba2fd74925e933cdffd50c06b942422c7e7f435c920ca | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ## Raw diff diff --git a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 21c0bbfb1..56a1fc1f2 100644 --- a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,41 +5,50 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | -| 2 | AgentEnabledSet(agentId: 2, enable: false) | -| 3 | AgentEnabledSet(agentId: 3, enable: false) | -| 4 | AgentEnabledSet(agentId: 4, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | +| 4 | AgentEnabledSet(agentId: 2, enable: false) | +| 6 | AgentEnabledSet(agentId: 3, enable: false) | +| 7 | AgentEnabledSet(agentId: 4, enable: false) | + +#### 0xc2aaCf6553D20d1e9d78E365AAba8032af9c85b0 (AaveV3Ethereum.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x4F2858d4A4e4464b34Aa4a22C41B2Ef540a59BF4, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x1B3bD355c43d2247946b8e0889d4b4e701bf430d, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | +| 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xdA626E64f34f24e0236E0C9cD2F11ce4549a08c6, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | +| 8 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xCc18Be380838956aad41FD22466085eD66aaBB46, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | #### 0x18eFE565A5373f430e2F809b97De30335B3ad96A (AaveV3EthereumLido.ASSETS.GHO.A_TOKEN) | index | event | | --- | --- | -| 5 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | -| 6 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 7 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | -| 8 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 9 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | -| 10 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | -| 12 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 209,589.0410 [209589041095890409440000, 18 decimals]) | -| 13 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 202,588.6078 [202588607836049978102763, 18 decimals], index: 1034554920607903635566518116) | +| 9 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | +| 10 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 11 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | +| 12 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 13 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | +| 14 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | +| 16 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 209,589.0410 [209589041095890409440000, 18 decimals]) | +| 17 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 202,588.6078 [202588607836049978102763, 18 decimals], index: 1034554920607903635566518116) | #### 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c (AaveV2Ethereum.COLLECTOR, AaveV2EthereumAMM.COLLECTOR, AaveV2EthereumArc.COLLECTOR, AaveV3Ethereum.COLLECTOR, AaveV3EthereumEtherFi.COLLECTOR, AaveV3EthereumLido.COLLECTOR) | index | event | | --- | --- | -| 11 | CancelStream(streamId: 100073, sender: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, recipient: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, senderBalance: 1480523401826484007535400, recipientBalance: 20121518264840182502580) | +| 15 | CancelStream(streamId: 100073, sender: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, recipient: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, senderBalance: 1480523401826484007535400, recipientBalance: 20121518264840182502580) | #### 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A (AaveV2Ethereum.POOL_ADMIN, AaveV2EthereumAMM.POOL_ADMIN, AaveV3Ethereum.ACL_ADMIN, AaveV3EthereumEtherFi.ACL_ADMIN, AaveV3EthereumHorizon.ACL_ADMIN, AaveV3EthereumLido.ACL_ADMIN, GovernanceV3Ethereum.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 14 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833655, withDelegatecall: true, resultData: 0x) | +| 18 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833655, withDelegatecall: true, resultData: 0x) | #### 0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 15 | PayloadExecuted(payloadId: 427) | +| 19 | PayloadExecuted(payloadId: 427) | ## Raw storage changes @@ -74,6 +83,15 @@ | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000017abb46c690c52e919687d19ebf89c81a6136c1f2 | 0x0000000000000000000000007abb46c690c52e919687d19ebf89c81a6136c1f2 | | 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000017abb46c690c52e919687d19ebf89c81a6136c1f2 | 0x0000000000000000000000007abb46c690c52e919687d19ebf89c81a6136c1f2 | +### 0xc2aacf6553d20d1e9d78e365aaba8032af9c85b0 (AaveV3Ethereum.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x017ee3f331ad8857114820a6b85da0188c310b299deec499bf186e901ff10552 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x90014aae82f2f4e0626885c13ad942957d41658d45ec757e18b117c0ce139cd2 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xafc4edc6ef9b19bd2f7d58bfed1aee7bbd56c36a71b10b1ba36eaabbf2b58266 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xd00eee556f42695ad57c0163c57eb1bae811c6e577fb6ffc9f43fb3fa5e8e22b | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0xdabad81af85554e9ae636395611c58f7ec1aaec5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) | slot | previous value | new value | diff --git a/diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 7a44b6894..32ce76512 100644 --- a/diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,19 +5,26 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0xEc710f59005f48703908bC519D552Df5B8472614 (AaveV3Gnosis.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x8d3C192BC8D0913Ecc4eAACf0Fe99B6F6226B486, sender: 0x1dF462e2712496373A347f8ad10802a5E95f053D) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xcCeb5996cF9976168fdbE6fF88B1d89e1180A0EA, sender: 0x1dF462e2712496373A347f8ad10802a5E95f053D) | #### 0x1dF462e2712496373A347f8ad10802a5E95f053D (AaveV3Gnosis.ACL_ADMIN, GovernanceV3Gnosis.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833675, withDelegatecall: true, resultData: 0x) | +| 4 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833675, withDelegatecall: true, resultData: 0x) | #### 0x9A1F491B86D09fC1484b5fab10041B189B60756b (GovernanceV3Gnosis.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 3 | PayloadExecuted(payloadId: 74) | +| 5 | PayloadExecuted(payloadId: 74) | ## Raw storage changes @@ -35,6 +42,13 @@ | 0x4527180e78e4a6462bf9deb3d847e2025103f904bac3cb89e4a58cffdf5fa004 | 0x0069d9124a000000000002000000000000000000000000000000000000000000 | 0x0069d9124a000000000003000000000000000000000000000000000000000000 | | 0x4527180e78e4a6462bf9deb3d847e2025103f904bac3cb89e4a58cffdf5fa005 | 0x000000000000000000093a800000000000006a0736cb00000000000000000000 | 0x000000000000000000093a800000000000006a0736cb00000000000069d9124b | +### 0xec710f59005f48703908bc519d552df5b8472614 (AaveV3Gnosis.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x48bfa2ff9acce2f049f34106adad0dd5190f47504cb98418a76221bb280599ef | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x9f231bf200122d82fe33ec471b4f49d8e4ffc37917368eb305f405222d453715 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ## Raw diff diff --git a/diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 88bb6995d..4d80cda50 100644 --- a/diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -6,17 +6,23 @@ | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | +#### 0xbf32c7dFC72b730967072B112927ca0de205dbb5 (AaveV3Linea.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x58226D26658F19724cB881E9F747EeDC846BB1c9, sender: 0x8c2d95FE7aeB57b86961F3abB296A54f0ADb7F88) | + #### 0x8c2d95FE7aeB57b86961F3abB296A54f0ADb7F88 (AaveV3Linea.ACL_ADMIN, GovernanceV3Linea.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 1 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833676, withDelegatecall: true, resultData: 0x) | +| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833676, withDelegatecall: true, resultData: 0x) | #### 0x3BcE23a1363728091bc57A58a226CF2940C2e074 (GovernanceV3Linea.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 2 | PayloadExecuted(payloadId: 24) | +| 3 | PayloadExecuted(payloadId: 24) | ## Raw storage changes @@ -33,6 +39,12 @@ | --- | --- | --- | | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001a6c229d3a1d4d31708b16c0ad2f14337ae4e7893 | 0x000000000000000000000000a6c229d3a1d4d31708b16c0ad2f14337ae4e7893 | +### 0xbf32c7dfc72b730967072b112927ca0de205dbb5 (AaveV3Linea.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xc23d522e76ba7b515f3fa0d31dac2132ce0070134688d5051d5c1456e126f0fb | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ## Raw diff diff --git a/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index cba045173..133778c95 100644 --- a/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,19 +5,26 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B (AaveV3Optimism.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x8963Abfb008A668346B18d0BeE82b171F3b2Be24, sender: 0x746c675dAB49Bcd5BB9Dc85161f2d7Eb435009bf) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x3993695F48d64076C5Df1EeC9490501F9bB400C8, sender: 0x746c675dAB49Bcd5BB9Dc85161f2d7Eb435009bf) | #### 0x746c675dAB49Bcd5BB9Dc85161f2d7Eb435009bf (AaveV3Optimism.ACL_ADMIN, GovernanceV3Optimism.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | +| 4 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | #### 0x0E1a3Af1f9cC76A62eD31eDedca291E63632e7c4 (GovernanceV3Optimism.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 3 | PayloadExecuted(payloadId: 94) | +| 5 | PayloadExecuted(payloadId: 94) | ## Raw storage changes @@ -35,6 +42,13 @@ | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | | 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | +### 0xa72636cbcaa8f5ff95b2cc47f3cdee83f3294a0b (AaveV3Optimism.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x41c3f33d4056955c6853725a2604d2362e57cc2cd00c5740a2261cda78936c31 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x4de2755bf0185e82982dc1d121facb6594fd38f27de0bce47f3e82ff0ba3d252 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ## Raw diff diff --git a/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index eaf95f2b5..75f310db6 100644 --- a/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -5,19 +5,26 @@ | index | event | | --- | --- | | 0 | AgentEnabledSet(agentId: 0, enable: false) | -| 1 | AgentEnabledSet(agentId: 1, enable: false) | +| 2 | AgentEnabledSet(agentId: 1, enable: false) | + +#### 0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B (AaveV3Polygon.ACL_MANAGER) + +| index | event | +| --- | --- | +| 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xd99D0A740AF7B68f1CB635294C013552423666b1, sender: 0xDf7d0e6454DB638881302729F5ba99936EaAB233) | +| 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xA512909edCf6D9aE46b0414ce0aD724968448177, sender: 0xDf7d0e6454DB638881302729F5ba99936EaAB233) | #### 0xDf7d0e6454DB638881302729F5ba99936EaAB233 (AaveV2Polygon.POOL_ADMIN, AaveV3Polygon.ACL_ADMIN, GovernanceV3Polygon.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 2 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | +| 4 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | #### 0x401B5D0294E23637c18fcc38b1Bca814CDa2637C (GovernanceV3Polygon.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 3 | PayloadExecuted(payloadId: 142) | +| 5 | PayloadExecuted(payloadId: 142) | ## Raw storage changes @@ -28,6 +35,13 @@ | 0xe20d6cec910e4e2dd7ac9f6fe69eb0209ee2e78a233f210927c28bf602584ae6 | 0x0069d91244000000000002000000000000000000000000000000000000000000 | 0x0069d91244000000000003000000000000000000000000000000000000000000 | | 0xe20d6cec910e4e2dd7ac9f6fe69eb0209ee2e78a233f210927c28bf602584ae7 | 0x000000000000000000093a800000000000006a0736c500000000000000000000 | 0x000000000000000000093a800000000000006a0736c500000000000069d91245 | +### 0xa72636cbcaa8f5ff95b2cc47f3cdee83f3294a0b (AaveV3Polygon.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x9d469322d8108290728864bd0600721554b3674e199099054ee2ba84a4a37311 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xe808ff36c7f94c5225cf8bade736af27222f1d16c2dce1ba8b9faaed98c646e5 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0xd44342b1ac132353d3148ea6ed330d1ae6f0c664 (MiscPolygon.AGENT_HUB) | slot | previous value | new value | diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index a7f7c867d..46fcf559d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,7 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscArbitrum} from 'aave-address-book/MiscArbitrum.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; +import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -15,9 +16,6 @@ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 { function execute() external { // custom code goes here - uint256 agentCount = IAgentHub(MiscArbitrum.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscArbitrum.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscArbitrum.AGENT_HUB, address(AaveV3Arbitrum.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index bf981f1e0..61c8c0500 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscAvalanche} from 'aave-address-book/MiscAvalanche.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - +import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -16,9 +16,6 @@ contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_2026041 { function execute() external { // custom code goes here - uint256 agentCount = IAgentHub(MiscAvalanche.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscAvalanche.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscAvalanche.AGENT_HUB, address(AaveV3Avalanche.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index c2af1a538..a2fd79647 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,7 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscBNB} from 'aave-address-book/MiscBNB.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; +import {AaveV3BNB} from 'aave-address-book/AaveV3BNB.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs @@ -16,9 +17,6 @@ contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is { function execute() external { // custom code goes here - uint256 agentCount = IAgentHub(MiscBNB.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscBNB.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscBNB.AGENT_HUB, address(AaveV3BNB.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 6852d9ecf..0ec1e3ec1 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscBase} from 'aave-address-book/MiscBase.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - +import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -16,9 +16,6 @@ contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is { function execute() external { // custom code goes here - uint256 agentCount = IAgentHub(MiscBase.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscBase.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscBase.AGENT_HUB, address(AaveV3Base.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 3a949b332..846b8344b 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,8 +3,9 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {AaveV3EthereumLido, AaveV3EthereumLidoAssets} from 'aave-address-book/AaveV3EthereumLido.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; +import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs @@ -21,10 +22,7 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 function execute() external { // custom code goes here - uint256 agentCount = IAgentHub(MiscEthereum.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscEthereum.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscEthereum.AGENT_HUB, address(AaveV3Ethereum.ACL_MANAGER)); // chaos labs mentioned cutting the stream themselves try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} catch {} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 2c417b349..f9b0f3584 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscGnosis} from 'aave-address-book/MiscGnosis.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - +import {AaveV3Gnosis} from 'aave-address-book/AaveV3Gnosis.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -16,9 +16,6 @@ contract AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 i { function execute() external { // custom code goes here - uint256 agentCount = IAgentHub(MiscGnosis.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscGnosis.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscGnosis.AGENT_HUB, address(AaveV3Gnosis.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 2c7e7285a..892337e3e 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscLinea} from 'aave-address-book/MiscLinea.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - +import {AaveV3Linea} from 'aave-address-book/AaveV3Linea.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -15,9 +15,6 @@ contract AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is IProposalGenericExecutor { function execute() external { - uint256 agentCount = IAgentHub(MiscLinea.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscLinea.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscLinea.AGENT_HUB, address(AaveV3Linea.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 18bc25c6f..e44403ec2 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscOptimism} from 'aave-address-book/MiscOptimism.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - +import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -16,9 +16,6 @@ contract AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 { function execute() external { // custom code goes here - uint256 agentCount = IAgentHub(MiscOptimism.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscOptimism.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscOptimism.AGENT_HUB, address(AaveV3Optimism.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 7ea637748..8b49fe026 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscPolygon} from 'aave-address-book/MiscPolygon.sol'; -import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; - +import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -15,10 +15,6 @@ contract AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 IProposalGenericExecutor { function execute() external { - // custom code goes here - uint256 agentCount = IAgentHub(MiscPolygon.AGENT_HUB).getAgentCount(); - for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(MiscPolygon.AGENT_HUB).setAgentEnabled(i, false); - } + DelistAllAgents.delist(MiscPolygon.AGENT_HUB, address(AaveV3Polygon.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol new file mode 100644 index 000000000..354c25c22 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; +import {IACLManager} from 'aave-address-book/AaveV3.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + */ + +library DelistAllAgents { + function delist(address AGENT_HUB, address ACL_MANAGER) internal { + uint256 agentCount = IAgentHub(AGENT_HUB).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(AGENT_HUB).setAgentEnabled(i, false); + IACLManager(ACL_MANAGER).removeRiskAdmin( + IAgentHub(AGENT_HUB).getAgentAddress(i) + ); + } + } +} + From 530553d7160c54c939dd3b1a7bd9a4d0acf8364e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 12:25:11 +0900 Subject: [PATCH 08/23] cancel Chainlink robots and revoke RISK_ADMIN on Core + Lido per review - Cancel all AGENT_HUB_AUTOMATION robots dynamically via getKeepersList() + getKeeperInfo() filter instead of hardcoded constants - Revoke RISK_ADMIN from all agents on both AaveV3Ethereum (Core) and AaveV3EthereumLido ACL managers - Extend IAaveCLRobotOperator with KeeperInfo struct, getKeepersList(), and getKeeperInfo() - Add test_agentsDisabledAndRiskAdminRevoked (Core + Lido) and test_robotsCancelled Co-Authored-By: Claude Sonnet 4.6 --- ...ndOffboardingPlanForChaosLabs_20260410.sol | 13 ++++- ...OffboardingPlanForChaosLabs_20260410.t.sol | 49 +++++++++++++++++++ src/interfaces/IAaveCLRobotOperator.sol | 9 ++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 846b8344b..2889944ee 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -6,6 +6,7 @@ import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol'; import {AaveV3EthereumLido, AaveV3EthereumLidoAssets} from 'aave-address-book/AaveV3EthereumLido.sol'; import {DelistAllAgents} from './DelistAllAgents.sol'; import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs @@ -21,8 +22,8 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 uint256 public constant AMOUNT_PER_SECOND = 80859969558599695; // from stream 100073 function execute() external { - // custom code goes here DelistAllAgents.delist(MiscEthereum.AGENT_HUB, address(AaveV3Ethereum.ACL_MANAGER)); + DelistAllAgents.delist(MiscEthereum.AGENT_HUB, address(AaveV3EthereumLido.ACL_MANAGER)); // chaos labs mentioned cutting the stream themselves try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} catch {} @@ -33,5 +34,15 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 CHAOS_LABS, AMOUNT_PER_SECOND * 30 days ); + + // Cancel all Chainlink robots registered for AGENT_HUB_AUTOMATION. + // withdrawLink() is permissionless and can be called by anyone ~20 blocks after execution. + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscEthereum.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory keeperIds = operator.getKeepersList(); + for (uint256 i = 0; i < keeperIds.length; i++) { + if (operator.getKeeperInfo(keeperIds[i]).upkeep == MiscEthereum.AGENT_HUB_AUTOMATION) { + operator.cancel(keeperIds[i]); + } + } } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 648526d71..103e1d354 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -2,10 +2,14 @@ pragma solidity ^0.8.0; import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; +import {AaveV3EthereumLido} from 'aave-address-book/AaveV3EthereumLido.sol'; +import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; /** * @dev Test for AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -31,4 +35,49 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 address(proposal) ); } + + function test_agentsDisabledAndRiskAdminRevoked() public { + IAgentHub hub = IAgentHub(MiscEthereum.AGENT_HUB); + uint256 count = hub.getAgentCount(); + require(count > 0, 'no agents registered'); + + executePayload(vm, address(proposal)); + + for (uint256 i = 0; i < count; i++) { + address agent = hub.getAgentAddress(i); + assertFalse(hub.isAgentEnabled(i), 'agent still enabled'); + assertFalse(AaveV3Ethereum.ACL_MANAGER.isRiskAdmin(agent), 'agent still risk admin on Core'); + assertFalse( + AaveV3EthereumLido.ACL_MANAGER.isRiskAdmin(agent), + 'agent still risk admin on Lido' + ); + } + } + + function test_robotsCancelled() public { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscEthereum.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256 agentHubRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscEthereum.AGENT_HUB_AUTOMATION) { + agentHubRobotCount++; + } + } + require(agentHubRobotCount > 0, 'no agent hub robots found'); + + vm.recordLogs(); + executePayload(vm, address(proposal)); + + Vm.Log[] memory logs = vm.getRecordedLogs(); + uint256 cancelledCount = 0; + bytes32 cancelledSig = keccak256('KeeperCancelled(uint256,address)'); + for (uint256 i = 0; i < logs.length; i++) { + if (logs[i].topics[0] == cancelledSig) { + cancelledCount++; + } + } + + assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); + } } diff --git a/src/interfaces/IAaveCLRobotOperator.sol b/src/interfaces/IAaveCLRobotOperator.sol index f2abc12a4..80b268a1b 100644 --- a/src/interfaces/IAaveCLRobotOperator.sol +++ b/src/interfaces/IAaveCLRobotOperator.sol @@ -16,7 +16,16 @@ interface IAaveCLRobotOperator { bytes calldata triggerConfig ) external returns (uint256); + struct KeeperInfo { + address upkeep; + bytes checkData; + } + function cancel(uint256 id) external; function withdrawLink(uint256 id) external; + + function getKeepersList() external view returns (uint256[] memory); + + function getKeeperInfo(uint256 id) external view returns (KeeperInfo memory); } From 5cb684e8e3fab506c7625f3bbc53260020c680a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 12:56:41 +0900 Subject: [PATCH 09/23] cancel Chainlink robots on all supported chains via CancelAgentRobots library - Create CancelAgentRobots library (mirrors DelistAllAgents pattern): iterates getKeepersList(), cancels any keeper registered for AGENT_HUB_AUTOMATION - Apply to Ethereum, Arbitrum, Avalanche, Base, BNB, Optimism, Polygon (Gnosis and Linea have no AAVE_CL_ROBOT_OPERATOR on-chain) - Ethereum: replace inline robot loop with CancelAgentRobots.cancel() - Remove IAaveCLRobotOperator direct import from Ethereum payload (now handled through library) - Deduplicate Ethereum delist into two-manager overload on DelistAllAgents - Clean up leftover boilerplate comments across all chain contracts Co-Authored-By: Claude Sonnet 4.6 --- ...ndOffboardingPlanForChaosLabs_20260410.sol | 6 ++++- ...ndOffboardingPlanForChaosLabs_20260410.sol | 6 ++++- ...ndOffboardingPlanForChaosLabs_20260410.sol | 3 ++- ...ndOffboardingPlanForChaosLabs_20260410.sol | 3 ++- ...ndOffboardingPlanForChaosLabs_20260410.sol | 25 +++++++++---------- ...ndOffboardingPlanForChaosLabs_20260410.sol | 1 - ...ndOffboardingPlanForChaosLabs_20260410.sol | 6 ++++- ...ndOffboardingPlanForChaosLabs_20260410.sol | 2 ++ .../CancelAgentRobots.sol | 21 ++++++++++++++++ .../DelistAllAgents.sol | 21 ++++++++++------ 10 files changed, 68 insertions(+), 26 deletions(-) create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/CancelAgentRobots.sol diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 46fcf559d..258481931 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -5,6 +5,7 @@ import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGen import {MiscArbitrum} from 'aave-address-book/MiscArbitrum.sol'; import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol'; import {DelistAllAgents} from './DelistAllAgents.sol'; +import {CancelAgentRobots} from './CancelAgentRobots.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -15,7 +16,10 @@ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 IProposalGenericExecutor { function execute() external { - // custom code goes here DelistAllAgents.delist(MiscArbitrum.AGENT_HUB, address(AaveV3Arbitrum.ACL_MANAGER)); + CancelAgentRobots.cancel( + MiscArbitrum.AAVE_CL_ROBOT_OPERATOR, + MiscArbitrum.AGENT_HUB_AUTOMATION + ); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 61c8c0500..8c2d0b927 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -5,6 +5,7 @@ import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGen import {MiscAvalanche} from 'aave-address-book/MiscAvalanche.sol'; import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol'; import {DelistAllAgents} from './DelistAllAgents.sol'; +import {CancelAgentRobots} from './CancelAgentRobots.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -15,7 +16,10 @@ contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_2026041 IProposalGenericExecutor { function execute() external { - // custom code goes here DelistAllAgents.delist(MiscAvalanche.AGENT_HUB, address(AaveV3Avalanche.ACL_MANAGER)); + CancelAgentRobots.cancel( + MiscAvalanche.AAVE_CL_ROBOT_OPERATOR, + MiscAvalanche.AGENT_HUB_AUTOMATION + ); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index a2fd79647..4da0f7599 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -5,6 +5,7 @@ import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGen import {MiscBNB} from 'aave-address-book/MiscBNB.sol'; import {AaveV3BNB} from 'aave-address-book/AaveV3BNB.sol'; import {DelistAllAgents} from './DelistAllAgents.sol'; +import {CancelAgentRobots} from './CancelAgentRobots.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs @@ -16,7 +17,7 @@ contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is IProposalGenericExecutor { function execute() external { - // custom code goes here DelistAllAgents.delist(MiscBNB.AGENT_HUB, address(AaveV3BNB.ACL_MANAGER)); + CancelAgentRobots.cancel(MiscBNB.AAVE_CL_ROBOT_OPERATOR, MiscBNB.AGENT_HUB_AUTOMATION); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 0ec1e3ec1..2b7013f94 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -5,6 +5,7 @@ import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGen import {MiscBase} from 'aave-address-book/MiscBase.sol'; import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol'; import {DelistAllAgents} from './DelistAllAgents.sol'; +import {CancelAgentRobots} from './CancelAgentRobots.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -15,7 +16,7 @@ contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is IProposalGenericExecutor { function execute() external { - // custom code goes here DelistAllAgents.delist(MiscBase.AGENT_HUB, address(AaveV3Base.ACL_MANAGER)); + CancelAgentRobots.cancel(MiscBase.AAVE_CL_ROBOT_OPERATOR, MiscBase.AGENT_HUB_AUTOMATION); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 2889944ee..40dda84a4 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.0; import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol'; import {AaveV3EthereumLido, AaveV3EthereumLidoAssets} from 'aave-address-book/AaveV3EthereumLido.sol'; -import {DelistAllAgents} from './DelistAllAgents.sol'; import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; -import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {DelistAllAgents} from './DelistAllAgents.sol'; +import {CancelAgentRobots} from './CancelAgentRobots.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs @@ -22,8 +22,11 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 uint256 public constant AMOUNT_PER_SECOND = 80859969558599695; // from stream 100073 function execute() external { - DelistAllAgents.delist(MiscEthereum.AGENT_HUB, address(AaveV3Ethereum.ACL_MANAGER)); - DelistAllAgents.delist(MiscEthereum.AGENT_HUB, address(AaveV3EthereumLido.ACL_MANAGER)); + DelistAllAgents.delist( + MiscEthereum.AGENT_HUB, + address(AaveV3Ethereum.ACL_MANAGER), + address(AaveV3EthereumLido.ACL_MANAGER) + ); // chaos labs mentioned cutting the stream themselves try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} catch {} @@ -35,14 +38,10 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 AMOUNT_PER_SECOND * 30 days ); - // Cancel all Chainlink robots registered for AGENT_HUB_AUTOMATION. - // withdrawLink() is permissionless and can be called by anyone ~20 blocks after execution. - IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscEthereum.AAVE_CL_ROBOT_OPERATOR); - uint256[] memory keeperIds = operator.getKeepersList(); - for (uint256 i = 0; i < keeperIds.length; i++) { - if (operator.getKeeperInfo(keeperIds[i]).upkeep == MiscEthereum.AGENT_HUB_AUTOMATION) { - operator.cancel(keeperIds[i]); - } - } + // withdrawLink() is permissionless and can be called by anyone ~20 blocks after execution + CancelAgentRobots.cancel( + MiscEthereum.AAVE_CL_ROBOT_OPERATOR, + MiscEthereum.AGENT_HUB_AUTOMATION + ); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index f9b0f3584..c64189e69 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -15,7 +15,6 @@ contract AaveV3Gnosis_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 i IProposalGenericExecutor { function execute() external { - // custom code goes here DelistAllAgents.delist(MiscGnosis.AGENT_HUB, address(AaveV3Gnosis.ACL_MANAGER)); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index e44403ec2..2ca7aa9e7 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -5,6 +5,7 @@ import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGen import {MiscOptimism} from 'aave-address-book/MiscOptimism.sol'; import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol'; import {DelistAllAgents} from './DelistAllAgents.sol'; +import {CancelAgentRobots} from './CancelAgentRobots.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -15,7 +16,10 @@ contract AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 IProposalGenericExecutor { function execute() external { - // custom code goes here DelistAllAgents.delist(MiscOptimism.AGENT_HUB, address(AaveV3Optimism.ACL_MANAGER)); + CancelAgentRobots.cancel( + MiscOptimism.AAVE_CL_ROBOT_OPERATOR, + MiscOptimism.AGENT_HUB_AUTOMATION + ); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 8b49fe026..f652ca506 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -5,6 +5,7 @@ import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGen import {MiscPolygon} from 'aave-address-book/MiscPolygon.sol'; import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol'; import {DelistAllAgents} from './DelistAllAgents.sol'; +import {CancelAgentRobots} from './CancelAgentRobots.sol'; /** * @title Orderly Transition and Offboarding Plan for Chaos Labs * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) @@ -16,5 +17,6 @@ contract AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 { function execute() external { DelistAllAgents.delist(MiscPolygon.AGENT_HUB, address(AaveV3Polygon.ACL_MANAGER)); + CancelAgentRobots.cancel(MiscPolygon.AAVE_CL_ROBOT_OPERATOR, MiscPolygon.AGENT_HUB_AUTOMATION); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/CancelAgentRobots.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/CancelAgentRobots.sol new file mode 100644 index 000000000..3f4af8683 --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/CancelAgentRobots.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; + +/** + * @title Orderly Transition and Offboarding Plan for Chaos Labs + * @author ChaosLabs (implemented by Aavechan Initiative @aci via Skyward) + */ + +library CancelAgentRobots { + function cancel(address robotOperator, address agentHubAutomation) internal { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(robotOperator); + uint256[] memory keeperIds = operator.getKeepersList(); + for (uint256 i = 0; i < keeperIds.length; i++) { + if (operator.getKeeperInfo(keeperIds[i]).upkeep == agentHubAutomation) { + operator.cancel(keeperIds[i]); + } + } + } +} diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol index 354c25c22..cf030bac8 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/DelistAllAgents.sol @@ -10,14 +10,21 @@ import {IACLManager} from 'aave-address-book/AaveV3.sol'; */ library DelistAllAgents { - function delist(address AGENT_HUB, address ACL_MANAGER) internal { - uint256 agentCount = IAgentHub(AGENT_HUB).getAgentCount(); + function delist(address agentHub, address aclManager) internal { + uint256 agentCount = IAgentHub(agentHub).getAgentCount(); for (uint256 i = 0; i < agentCount; i++) { - IAgentHub(AGENT_HUB).setAgentEnabled(i, false); - IACLManager(ACL_MANAGER).removeRiskAdmin( - IAgentHub(AGENT_HUB).getAgentAddress(i) - ); + IAgentHub(agentHub).setAgentEnabled(i, false); + IACLManager(aclManager).removeRiskAdmin(IAgentHub(agentHub).getAgentAddress(i)); } } -} + function delist(address agentHub, address aclManager1, address aclManager2) internal { + uint256 agentCount = IAgentHub(agentHub).getAgentCount(); + for (uint256 i = 0; i < agentCount; i++) { + IAgentHub(agentHub).setAgentEnabled(i, false); + address agent = IAgentHub(agentHub).getAgentAddress(i); + IACLManager(aclManager1).removeRiskAdmin(agent); + IACLManager(aclManager2).removeRiskAdmin(agent); + } + } +} From 9cdbda9a04fe4fa0b422ba4d8394ed38f4a818fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 13:23:21 +0900 Subject: [PATCH 10/23] fix Arbitrum test: mock arbBlockNumber() precompile + update diffs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chainlink Automation Registry on Arbitrum calls the arbBlockNumber() precompile (0x0000...0064) inside cancelUpkeep. Foundry fork mode does not replicate Arbitrum native precompiles — known limitation: https://github.com/foundry-rs/foundry/issues/5085 https://github.com/foundry-rs/foundry/issues/7294 https://github.com/foundry-rs/foundry/issues/6035 Mock the precompile in setUp() so the cancel path is exercisable in tests. The proposal executes correctly on Arbitrum mainnet. All 11 tests now pass across 9 chains. Co-Authored-By: Claude Sonnet 4.6 --- ...boardingPlanForChaosLabs_20260410_after.md | 87 ++++++++++++- ...boardingPlanForChaosLabs_20260410_after.md | 55 +++++++- ...boardingPlanForChaosLabs_20260410_after.md | 47 ++++++- ...boardingPlanForChaosLabs_20260410_after.md | 51 +++++++- ...boardingPlanForChaosLabs_20260410_after.md | 119 ++++++++++++++++-- ...boardingPlanForChaosLabs_20260410_after.md | 45 ++++++- ...boardingPlanForChaosLabs_20260410_after.md | 47 ++++++- ...OffboardingPlanForChaosLabs_20260410.t.sol | 12 ++ 8 files changed, 438 insertions(+), 25 deletions(-) diff --git a/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index beccb187e..48322e8f5 100644 --- a/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -16,22 +16,79 @@ | 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x8963Abfb008A668346B18d0BeE82b171F3b2Be24, sender: 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327) | | 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xc42f40Bc50e7342867Be7F823a4358cba5089063, sender: 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327) | +#### 0x37D9dC70bfcd8BC77Ec2858836B923c560E891D1 + +| index | event | +| --- | --- | +| 6 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x05bae7030000000000000000000000004814fd5acbbbc51822fc8ade7c887a0e`, `0x000000000000000000000000000000000000000000000000000000001ae2af96`, data: `0x` | +| 8 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x496837ba0000000000000000000000007687dfd28f6b5d9476bfdcda9771fdd7`, `0x000000000000000000000000000000000000000000000000000000001ae2af96`, data: `0x` | +| 10 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xb2bc2d20000000000000000000000000ab0a4229043980cc1782df09e677ae5c`, `0x000000000000000000000000000000000000000000000000000000001ae2af96`, data: `0x` | + +#### 0xaa944aD95e51CB83C1f35FAEEDfC7d2c31B0BB4d (MiscArbitrum.AAVE_CL_ROBOT_OPERATOR) + +| index | event | +| --- | --- | +| 7 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x05bae7030000000000000000000000004814fd5acbbbc51822fc8ade7c887a0e`, `0x000000000000000000000000ff822f7e2178176bb650df82427a42ca0c04ccab`, data: `0x` | +| 9 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x496837ba0000000000000000000000007687dfd28f6b5d9476bfdcda9771fdd7`, `0x000000000000000000000000ff822f7e2178176bb650df82427a42ca0c04ccab`, data: `0x` | +| 11 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xb2bc2d20000000000000000000000000ab0a4229043980cc1782df09e677ae5c`, `0x000000000000000000000000ff822f7e2178176bb650df82427a42ca0c04ccab`, data: `0x` | + #### 0xFF1137243698CaA18EE364Cc966CF0e02A4e6327 (AaveV3Arbitrum.ACL_ADMIN, GovernanceV3Arbitrum.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 6 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833672, withDelegatecall: true, resultData: 0x) | +| 12 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833672, withDelegatecall: true, resultData: 0x) | #### 0x89644CA1bB8064760312AE4F03ea41b05dA3637C (GovernanceV3Arbitrum.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 7 | PayloadExecuted(payloadId: 118) | +| 13 | PayloadExecuted(payloadId: 118) | ## Raw storage changes +### 0x118dfd5418890c0332042ab05173db4a2c1d283c + +**Nonce diff**: 1 → 0 + +### 0x37d9dc70bfcd8bc77ec2858836b923c560e891d1 + +**Nonce diff**: 895 → 0 + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x00000000000000000000000000000000000000000000000000000000000000ce | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x14d3607c000000090000036800cdfe6000989680000000019e28192abc21ef33 | 0x14d3607c000000090000036800cdfe6000989680000000019e28192abc21ef33 | +| 0x3a8722f0c7402a55e96e3e399962e5d6e33dd31ee98b13d3bdab39f7e6b33906 | 0x000000960c19b028cbb22e03b4f39e71de9c4695f2478effffffff004c4b4000 | 0x000000960c19b028cbb22e03b4f39e71de9c4695f2478e1ae2af96004c4b4000 | +| 0x3a8722f0c7402a55e96e3e399962e5d6e33dd31ee98b13d3bdab39f7e6b33907 | 0x000000001a4d28a700000002b57c554a6efbe89700000000006759cc428c1769 | 0x000000001a4d28a700000002b57c554a6efbe89700000000006759cc428c1769 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b82 | 0x05bae7030000000000000000000000004814fd5acbbbc51822fc8ade7c887a0e | 0x717fbf000000000000000000000000007e8da93e6bf67f8c040052adb0ef8a62 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b85 | 0x496837ba0000000000000000000000007687dfd28f6b5d9476bfdcda9771fdd7 | 0x037265ca000000000000000000000000266e32a384e1023c09f5a360f643d0f2 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b8e | 0xb2bc2d20000000000000000000000000ab0a4229043980cc1782df09e677ae5c | 0x8e765015000000000000000000000000fa6df67f140cd17a8cf0be87e03569c8 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b99 | 0x8e765015000000000000000000000000fa6df67f140cd17a8cf0be87e03569c8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b9a | 0x037265ca000000000000000000000000266e32a384e1023c09f5a360f643d0f2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b9b | 0x717fbf000000000000000000000000007e8da93e6bf67f8c040052adb0ef8a62 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x4705904897ecb3008a49faca806fe76e60266a5917d51aff68f7fd5aaec851d6 | 0x00000000000000000000000000000000000000000000000000000000000000b5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x558a8b45ff6c5ca96129d35cc0904423ea246f497690cc6d485cb339e72a20de | 0x00000000000000000000000000000000000000000000000000000000000000cd | 0x00000000000000000000000000000000000000000000000000000000000000b8 | +| 0x645dd4d864e29e3eda28c952987286ac9c0442ef07feaea56a720a239e25b3a7 | 0x00000000000000000000000000000000000000000000000000000000000000ce | 0x00000000000000000000000000000000000000000000000000000000000000b5 | +| 0xbe5b3aa4d289278aeda56e9818b6375d27b55730fa7efdc2093c0c24b47dafc6 | 0x000000d19b8e31cb477ffb1a476d1586f5649f2394ed11ffffffff004c4b4000 | 0x000000d19b8e31cb477ffb1a476d1586f5649f2394ed111ae2af96004c4b4000 | +| 0xbe5b3aa4d289278aeda56e9818b6375d27b55730fa7efdc2093c0c24b47dafc7 | 0x000000001ad9c37300000002b59598b6b3e377b900000000004e165ffda48847 | 0x000000001ad9c37300000002b59598b6b3e377b900000000004e165ffda48847 | +| 0xc85179f6c5630427a3a211b1579f0cf78e36631cf40146ec9b155c53eaff1a8a | 0x00000000000000000000000000000000000000000000000000000000000000c1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xedeb3363de40be3fd30ef3d4114b1aa380c8de901965ff46ff2265345b88588a | 0x00000038a653993dd078b2252c2a6a85854785c614cb6bffffffff004c4b4000 | 0x00000038a653993dd078b2252c2a6a85854785c614cb6b1ae2af96004c4b4000 | +| 0xedeb3363de40be3fd30ef3d4114b1aa380c8de901965ff46ff2265345b88588b | 0x000000000000000000000002b5e3af16b1880000000000000000000000000000 | 0x000000000000000000000002b5e3af16b1880000000000000000000000000000 | +| 0xf2295e232030377a6c7963948a4ab92856060ddc8fe3e54b756fe97e24d73019 | 0x00000000000000000000000000000000000000000000000000000000000000cc | 0x00000000000000000000000000000000000000000000000000000000000000c1 | +| 0xfbf254159cdd9acec9785e874c97a545df2780556bb35da2954992057556b2d8 | 0x00000000000000000000000000000000000000000000000000000000000000b8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + +### 0x5615deb798bb3e4dfa0139dfa1b3d433cc23b72f + +**Nonce diff**: 6 → 0 + +### 0x7109709ecfa91a80626ff3989d68f67f5b1dd12d + +**Nonce diff**: 0 → 1 + ### 0x89644ca1bb8064760312ae4f03ea41b05da3637c (GovernanceV3Arbitrum.PAYLOADS_CONTROLLER) +**Nonce diff**: 1 → 0 + | slot | previous value | new value | | --- | --- | --- | | 0xbaba906220955b09fec23b575e20afa7d08161b8520bb9d5ec850371b93edf98 | 0x0069d91247000000000002000000000000000000000000000000000000000000 | 0x0069d91247000000000003000000000000000000000000000000000000000000 | @@ -45,6 +102,28 @@ | 0x2e7b91d3be4ed2901f536e6444a726a6187230ac92eaacac95dcfbf4186b7b39 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | | 0x41c3f33d4056955c6853725a2604d2362e57cc2cd00c5740a2261cda78936c31 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +### 0xaa944ad95e51cb83c1f35faeedfc7d2c31b0bb4d (MiscArbitrum.AAVE_CL_ROBOT_OPERATOR) + +**Nonce diff**: 1 → 0 + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0 | 0x05bae7030000000000000000000000004814fd5acbbbc51822fc8ade7c887a0e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1 | 0x496837ba0000000000000000000000007687dfd28f6b5d9476bfdcda9771fdd7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2 | 0xb2bc2d20000000000000000000000000ab0a4229043980cc1782df09e677ae5c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x4705904897ecb3008a49faca806fe76e60266a5917d51aff68f7fd5aaec851d6 | 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xc85179f6c5630427a3a211b1579f0cf78e36631cf40146ec9b155c53eaff1a8a | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xfbf254159cdd9acec9785e874c97a545df2780556bb35da2954992057556b2d8 | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + +### 0xd768da09bb210c30fe4da05e2f6228e8c5c78ae9 + +**Nonce diff**: 895 → 0 + +### 0xdde464e390a65191590f9619115221a315b742a8 + +**Nonce diff**: 1 → 0 + ### 0xf4f2bc657abe96863dc1ae17c9e9fffc2b420e7b (MiscArbitrum.AGENT_HUB) | slot | previous value | new value | @@ -53,6 +132,10 @@ | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x000000000000000000000001861eeadb55e41f161f31acb1bfd4c70e3a964aed | 0x000000000000000000000000861eeadb55e41f161f31acb1bfd4c70e3a964aed | | 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x000000000000000000000001861eeadb55e41f161f31acb1bfd4c70e3a964aed | 0x000000000000000000000000861eeadb55e41f161f31acb1bfd4c70e3a964aed | +### 0xff1137243698caa18ee364cc966cf0e02a4e6327 (AaveV3Arbitrum.ACL_ADMIN, GovernanceV3Arbitrum.EXECUTOR_LVL_1) + +**Nonce diff**: 6 → 0 + ## Raw diff diff --git a/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 410c9d65a..bb51eb374 100644 --- a/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -16,20 +16,48 @@ | 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xb57C37F48d1De2DACBefed69679Ba0b7DC43A394, sender: 0x3C06dce358add17aAf230f2234bCCC4afd50d090) | | 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x72b89100DB6f0Bde118Ebb34E71FA95A6DC59038, sender: 0x3C06dce358add17aAf230f2234bCCC4afd50d090) | +#### 0x7f00a3Cd4590009C349192510D51F8e6312E08CB + +| index | event | +| --- | --- | +| 6 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x6649a014000000000000000000000000a2d1e3bee96fc9991ac2e0f223248dd0`, `0x0000000000000000000000000000000000000000000000000000000004ec50b7`, data: `0x` | +| 8 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xf7c4a34b0000000000000000000000003f7e782ce00a531c921d0c9ae0856b58`, `0x0000000000000000000000000000000000000000000000000000000004ec50b7`, data: `0x` | +| 10 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xe49884e3000000000000000000000000a337bdb17eaa06da1f0fcaeafd8659e6`, `0x0000000000000000000000000000000000000000000000000000000004ec50b7`, data: `0x` | + +#### 0x06d958772304e7220fc3E463756CE01Ed0D24db2 (MiscAvalanche.AAVE_CL_ROBOT_OPERATOR) + +| index | event | +| --- | --- | +| 7 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x6649a014000000000000000000000000a2d1e3bee96fc9991ac2e0f223248dd0`, `0x000000000000000000000000e4e91893dd64c48fc2f20410f37f203259eca896`, data: `0x` | +| 9 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xf7c4a34b0000000000000000000000003f7e782ce00a531c921d0c9ae0856b58`, `0x000000000000000000000000e4e91893dd64c48fc2f20410f37f203259eca896`, data: `0x` | +| 11 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xe49884e3000000000000000000000000a337bdb17eaa06da1f0fcaeafd8659e6`, `0x000000000000000000000000e4e91893dd64c48fc2f20410f37f203259eca896`, data: `0x` | + #### 0x3C06dce358add17aAf230f2234bCCC4afd50d090 (AaveV2Avalanche.POOL_ADMIN, AaveV3Avalanche.ACL_ADMIN, GovernanceV3Avalanche.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 6 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833666, withDelegatecall: true, resultData: 0x) | +| 12 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833666, withDelegatecall: true, resultData: 0x) | #### 0x1140CB7CAfAcC745771C2Ea31e7B5C653c5d0B80 (GovernanceV3Avalanche.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 7 | PayloadExecuted(payloadId: 112) | +| 13 | PayloadExecuted(payloadId: 112) | ## Raw storage changes +### 0x06d958772304e7220fc3e463756ce01ed0d24db2 (MiscAvalanche.AAVE_CL_ROBOT_OPERATOR) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000005 | +| 0x0256198080da589fa1dedfc1c36ed7ba6049fdbb9e2b7e2408bbfa268c55197c | 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0bf22ec4f9bc284e427d72f93320d218902f9066d99c0649d1674879c41d6357 | 0x0000000000000000000000000000000000000000000000000000000000000006 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad3 | 0x6649a014000000000000000000000000a2d1e3bee96fc9991ac2e0f223248dd0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad4 | 0xf7c4a34b0000000000000000000000003f7e782ce00a531c921d0c9ae0856b58 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad5 | 0xe49884e3000000000000000000000000a337bdb17eaa06da1f0fcaeafd8659e6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x52c85c251516d682441bf869f5c51fbd885c91bdfee666c07a278c766cfe5a6c | 0x0000000000000000000000000000000000000000000000000000000000000007 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0x1140cb7cafacc745771c2ea31e7b5c653c5d0b80 (GovernanceV3Avalanche.PAYLOADS_CONTROLLER) | slot | previous value | new value | @@ -45,6 +73,29 @@ | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000011273f29204fc102bd4620485b13cfe27a794ff32 | 0x0000000000000000000000001273f29204fc102bd4620485b13cfe27a794ff32 | | 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000011273f29204fc102bd4620485b13cfe27a794ff32 | 0x0000000000000000000000001273f29204fc102bd4620485b13cfe27a794ff32 | +### 0x7f00a3cd4590009c349192510d51f8e6312e08cb + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000024 | 0x0000000000000000000000000000000000000000000000000000000000000021 | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x03d359020000000900000068004c4b4000989680000000002ff252b6955ed0b0 | 0x03d359020000000900000068004c4b4000989680000000002ff252b6955ed0b0 | +| 0x0256198080da589fa1dedfc1c36ed7ba6049fdbb9e2b7e2408bbfa268c55197c | 0x0000000000000000000000000000000000000000000000000000000000000022 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0bf22ec4f9bc284e427d72f93320d218902f9066d99c0649d1674879c41d6357 | 0x000000000000000000000000000000000000000000000000000000000000001f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5aec | 0x6649a014000000000000000000000000a2d1e3bee96fc9991ac2e0f223248dd0 | 0x0220e5b70000000000000000000000002a0554b9bf1f4ee2ea694a00d673c4ad | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5aed | 0xf7c4a34b0000000000000000000000003f7e782ce00a531c921d0c9ae0856b58 | 0xc09d0f11000000000000000000000000195e09ca3716ff0b24b88c7c309e9e58 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5aef | 0xe49884e3000000000000000000000000a337bdb17eaa06da1f0fcaeafd8659e6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5af0 | 0xc09d0f11000000000000000000000000195e09ca3716ff0b24b88c7c309e9e58 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5af1 | 0x0220e5b70000000000000000000000002a0554b9bf1f4ee2ea694a00d673c4ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x498304bce384fc170aa287cb74ae4b0501a80850e5639188f9c9e0d644da5810 | 0x00000088e2ddfa1fa3c4910717faa5240eae85a22b43f2ffffffff004c4b4000 | 0x00000088e2ddfa1fa3c4910717faa5240eae85a22b43f204ec50b7004c4b4000 | +| 0x498304bce384fc170aa287cb74ae4b0501a80850e5639188f9c9e0d644da5811 | 0x000000000000000000000002b5e3af16b1880000000000000000000000000000 | 0x000000000000000000000002b5e3af16b1880000000000000000000000000000 | +| 0x52c85c251516d682441bf869f5c51fbd885c91bdfee666c07a278c766cfe5a6c | 0x0000000000000000000000000000000000000000000000000000000000000020 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x83433ea38ff9676b78f2fed274496887abc4807f2ad5f939260a58d4f0ea0b8e | 0x000000ef9436014508a330535539e0d5e63554cb02c7f0ffffffff004c4b4000 | 0x000000ef9436014508a330535539e0d5e63554cb02c7f004ec50b7004c4b4000 | +| 0x83433ea38ff9676b78f2fed274496887abc4807f2ad5f939260a58d4f0ea0b8f | 0x0000000004e81d1100000002b5e3391931301e5f00000000000075fd8057e1a1 | 0x0000000004e81d1100000002b5e3391931301e5f00000000000075fd8057e1a1 | +| 0xb805d507d0fa80c415a0d37bf51779b200870fa7b0245069185d542f60331690 | 0x0000000000000000000000000000000000000000000000000000000000000023 | 0x0000000000000000000000000000000000000000000000000000000000000020 | +| 0xbeaacd3ab2bd053262a7ffae03b8ece6bc1460aca0ef610bd5116b49a7901670 | 0x0000000000000000000000000000000000000000000000000000000000000024 | 0x000000000000000000000000000000000000000000000000000000000000001f | +| 0xd38ae24838d542dfd9107978926ae1a6a035ba8d870ff438d84958ce82693532 | 0x0000008c497462da2afbaa9cf160710b20dce1149fee47ffffffff004c4b4000 | 0x0000008c497462da2afbaa9cf160710b20dce1149fee4704ec50b7004c4b4000 | +| 0xd38ae24838d542dfd9107978926ae1a6a035ba8d870ff438d84958ce82693533 | 0x0000000004c6533600000002b5e0aadbd67f8b57000000000003043adb0874a9 | 0x0000000004c6533600000002b5e0aadbd67f8b57000000000003043adb0874a9 | + ### 0xa72636cbcaa8f5ff95b2cc47f3cdee83f3294a0b (AaveV3Avalanche.ACL_MANAGER) | slot | previous value | new value | diff --git a/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index e761f33c8..c37ca3ea7 100644 --- a/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -14,17 +14,31 @@ | 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x2cf0fA5b36F0f89a5EA18F835d1375974a7720B8, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | | 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x970dDfF6c38B29D67DFe282306f7c0e1f5f31207, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | +#### 0xDc21E279934fF6721CaDfDD112DAfb3261f09A2C + +| index | event | +| --- | --- | +| 4 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xd29702d6000000000000000000000000c76dafca8c62f9f58d112c50b2c4dca6`, `0x000000000000000000000000000000000000000000000000000000000577dad2`, data: `0x` | +| 6 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x0356f7990000000000000000000000004353de85e2cd3909f061142a8a10ff19`, `0x000000000000000000000000000000000000000000000000000000000577dad2`, data: `0x` | + +#### 0x51Bd3d6011Dd0BD88Ee1bEA1a67be799A6A09D79 (MiscBNB.AAVE_CL_ROBOT_OPERATOR) + +| index | event | +| --- | --- | +| 5 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xd29702d6000000000000000000000000c76dafca8c62f9f58d112c50b2c4dca6`, `0x00000000000000000000000078c2ecf3ad48f90350f42eb338675ca1b31a7f11`, data: `0x` | +| 7 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x0356f7990000000000000000000000004353de85e2cd3909f061142a8a10ff19`, `0x00000000000000000000000078c2ecf3ad48f90350f42eb338675ca1b31a7f11`, data: `0x` | + #### 0x9390B1735def18560c509E2d0bc090E9d6BA257a (AaveV3BNB.ACL_ADMIN, GovernanceV3BNB.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 4 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833678, withDelegatecall: true, resultData: 0x) | +| 8 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833678, withDelegatecall: true, resultData: 0x) | #### 0xE5EF2Dd06755A97e975f7E282f828224F2C3e627 (GovernanceV3BNB.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 5 | PayloadExecuted(payloadId: 57) | +| 9 | PayloadExecuted(payloadId: 57) | ## Raw storage changes @@ -42,6 +56,35 @@ | 0x471017140763f83b11f69c0d8a269988f60f179e9470ce4a7c604644d1a8b7df | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | | 0x5306861f203ea0ed6a7b80b9e7d884718dcfd6279a3d2150e83d04bbf748ecf1 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +### 0x51bd3d6011dd0bd88ee1bea1a67be799a6a09d79 (MiscBNB.AAVE_CL_ROBOT_OPERATOR) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x2e1bcf225ebb75e0042370419bb268491ff69706661e3006e4bf10abdd9ebaa2 | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0 | 0xd29702d6000000000000000000000000c76dafca8c62f9f58d112c50b2c4dca6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1 | 0x0356f7990000000000000000000000004353de85e2cd3909f061142a8a10ff19 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xb4cf5fbde60b2bad1dbe0c6fc8d1160265b329a76851fb2ee8d521b365792ede | 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + +### 0xdc21e279934ff6721cadfdd112dafb3261f09a2c + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000197 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x03165c1b00000009000004ec004c4b4000989680000000011637778160979a9c | 0x03165c1b00000009000004ec004c4b4000989680000000011637778160979a9c | +| 0x2e1bcf225ebb75e0042370419bb268491ff69706661e3006e4bf10abdd9ebaa2 | 0x00000000000000000000000000000000000000000000000000000000000000fc | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x3e052c90868415851bc2731208644719faa64fde4f6b1574a01683b3db230c47 | 0x0000002074859406f44c735d7cd70beb9a611b0cf3f8d0ffffffff004c4b4000 | 0x0000002074859406f44c735d7cd70beb9a611b0cf3f8d00577dad2004c4b4000 | +| 0x3e052c90868415851bc2731208644719faa64fde4f6b1574a01683b3db230c48 | 0x00000000051b944f00000001a03abe398f670c7700000000001aaad40e50f389 | 0x00000000051b944f00000001a03abe398f670c7700000000001aaad40e50f389 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5bc9 | 0x0356f7990000000000000000000000004353de85e2cd3909f061142a8a10ff19 | 0xb7d4470500000000000000000000000099cdf972fd42a6c69195ca792befce8e | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5c3a | 0xd29702d6000000000000000000000000c76dafca8c62f9f58d112c50b2c4dca6 | 0xdb1eeb9b0000000000000000000000007d3d88eb66ae31d4862d8dd06446ebd3 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5c63 | 0xb7d4470500000000000000000000000099cdf972fd42a6c69195ca792befce8e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5c64 | 0xdb1eeb9b0000000000000000000000007d3d88eb66ae31d4862d8dd06446ebd3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x767b67b1f85199230b7ec7d961523aac9946438801222c5e20c076145db7e883 | 0x000000104f5d03c4ff178e2534bc31c96ff67e549b31a7ffffffff004c4b4000 | 0x000000104f5d03c4ff178e2534bc31c96ff67e549b31a70577dad2004c4b4000 | +| 0x767b67b1f85199230b7ec7d961523aac9946438801222c5e20c076145db7e884 | 0x0000000004df88e800000001a04c673d4baa8f4100000000000901d0520d70bf | 0x0000000004df88e800000001a04c673d4baa8f4100000000000901d0520d70bf | +| 0x83659e2801cd158e255c24b39f3bff8cb742eb2ff42dc4fc0cd2d45185e10769 | 0x0000000000000000000000000000000000000000000000000000000000000197 | 0x000000000000000000000000000000000000000000000000000000000000016d | +| 0xb4cf5fbde60b2bad1dbe0c6fc8d1160265b329a76851fb2ee8d521b365792ede | 0x000000000000000000000000000000000000000000000000000000000000016d | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xde62020062af91eb43061c52ca594bde8b161b5d8ab541323b6e646f02ff477a | 0x0000000000000000000000000000000000000000000000000000000000000196 | 0x00000000000000000000000000000000000000000000000000000000000000fc | + ### 0xe5ef2dd06755a97e975f7e282f828224f2c3e627 (GovernanceV3BNB.PAYLOADS_CONTROLLER) | slot | previous value | new value | diff --git a/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index a192ca470..586f043b8 100644 --- a/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -16,17 +16,33 @@ | 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x0ae2815b1f607EfEe34C15E63c72Cd6C99d1D6fa, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | | 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xAD83c71619368390c4C4fd1Aa472235FD4Ea3F32, sender: 0x9390B1735def18560c509E2d0bc090E9d6BA257a) | +#### 0xE226D5aCae908252CcA3F6CEFa577527650a9e1e + +| index | event | +| --- | --- | +| 6 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x422e0fa900000000000000000000000069dba04af948fe4afa7a2dace1858857`, `0x0000000000000000000000000000000000000000000000000000000002a75ae5`, data: `0x` | +| 8 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xef3b8644000000000000000000000000282b6ff448106209a78b077a81ebc54e`, `0x0000000000000000000000000000000000000000000000000000000002a75ae5`, data: `0x` | +| 10 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x7c1370aa000000000000000000000000583b181bd14734bfc421e4ff2bce50f1`, `0x0000000000000000000000000000000000000000000000000000000002a75ae5`, data: `0x` | + +#### 0x88db99eeBb390a2a4DcAC2E1DDb09c07E911C5C3 (MiscBase.AAVE_CL_ROBOT_OPERATOR) + +| index | event | +| --- | --- | +| 7 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x422e0fa900000000000000000000000069dba04af948fe4afa7a2dace1858857`, `0x00000000000000000000000078c2ecf3ad48f90350f42eb338675ca1b31a7f11`, data: `0x` | +| 9 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xef3b8644000000000000000000000000282b6ff448106209a78b077a81ebc54e`, `0x00000000000000000000000078c2ecf3ad48f90350f42eb338675ca1b31a7f11`, data: `0x` | +| 11 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x7c1370aa000000000000000000000000583b181bd14734bfc421e4ff2bce50f1`, `0x00000000000000000000000078c2ecf3ad48f90350f42eb338675ca1b31a7f11`, data: `0x` | + #### 0x9390B1735def18560c509E2d0bc090E9d6BA257a (AaveV3Base.ACL_ADMIN, GovernanceV3Base.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 6 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833673, withDelegatecall: true, resultData: 0x) | +| 12 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833673, withDelegatecall: true, resultData: 0x) | #### 0x2DC219E716793fb4b21548C0f009Ba3Af753ab01 (GovernanceV3Base.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 7 | PayloadExecuted(payloadId: 105) | +| 13 | PayloadExecuted(payloadId: 105) | ## Raw storage changes @@ -53,6 +69,37 @@ | 0x818f3090e35dd02bd920a5476f176aefefb9ccb4f1f4dbd29bdf05acab72d676 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | | 0xecef8c5a072f9713c13ba2fd74925e933cdffd50c06b942422c7e7f435c920ca | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +### 0x88db99eebb390a2a4dcac2e1ddb09c07e911c5c3 (MiscBase.AAVE_CL_ROBOT_OPERATOR) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x105e7796eeb601d6472031bc8886b5e365510fb06ffd0476e3a17fc7fb53a3c5 | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x12bd5bba7876935ad6c21bfdd9df2d5eacd5a08f9ea4e5d0f68658d0b409ce5b | 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0 | 0x422e0fa900000000000000000000000069dba04af948fe4afa7a2dace1858857 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1 | 0xef3b8644000000000000000000000000282b6ff448106209a78b077a81ebc54e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2 | 0x7c1370aa000000000000000000000000583b181bd14734bfc421e4ff2bce50f1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xe06378f15535c59b068deb2a58115105cb5602d0777d3d69f0694b561db5289d | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + +### 0xe226d5acae908252cca3f6cefa577527650a9e1e + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000019 | 0x0000000000000000000000000000000000000000000000000000000000000016 | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x01e59c680000000a00000049004c4b4000989680000000000e97bc1d4e9630ea | 0x01e59c680000000a00000049004c4b4000989680000000000e97bc1d4e9630ea | +| 0x105e7796eeb601d6472031bc8886b5e365510fb06ffd0476e3a17fc7fb53a3c5 | 0x0000000000000000000000000000000000000000000000000000000000000018 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x12bd5bba7876935ad6c21bfdd9df2d5eacd5a08f9ea4e5d0f68658d0b409ce5b | 0x0000000000000000000000000000000000000000000000000000000000000017 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ae4 | 0x422e0fa900000000000000000000000069dba04af948fe4afa7a2dace1858857 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ae5 | 0xef3b8644000000000000000000000000282b6ff448106209a78b077a81ebc54e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ae6 | 0x7c1370aa000000000000000000000000583b181bd14734bfc421e4ff2bce50f1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x5b269e3e80df2f41d8019ffbd448528d1802c0b8f72097bc27c926dcaddfbcbb | 0x000000d6c390b3978cb673349500fcba049a97d5f37591ffffffff004c4b4000 | 0x000000d6c390b3978cb673349500fcba049a97d5f3759102a75ae5004c4b4000 | +| 0x5b269e3e80df2f41d8019ffbd448528d1802c0b8f72097bc27c926dcaddfbcbc | 0x00000000029dd958000000019a585e30702428e20000000005fd0add2d93d71e | 0x00000000029dd958000000019a585e30702428e20000000005fd0add2d93d71e | +| 0x6c2ab498902c4db8ab63d7f3d898ddc14c1947f2fa6eab8d7f5cf2ae55bb6a99 | 0x000000615b26dc81156e0be3e8e23d580547f56dd935eaffffffff004c4b4000 | 0x000000615b26dc81156e0be3e8e23d580547f56dd935ea02a75ae5004c4b4000 | +| 0x6c2ab498902c4db8ab63d7f3d898ddc14c1947f2fa6eab8d7f5cf2ae55bb6a9a | 0x0000000002a07c96000000019e55966c5e93627f0000000001ffd2a13f249d81 | 0x0000000002a07c96000000019e55966c5e93627f0000000001ffd2a13f249d81 | +| 0x87b31efa2938932d5048225592c2a79891224e4c6bb9c183eb5be5ff755e744f | 0x0000009a63231381a3ebab5b02e819b3d61e27bf5c4cf9ffffffff004c4b4000 | 0x0000009a63231381a3ebab5b02e819b3d61e27bf5c4cf902a75ae5004c4b4000 | +| 0x87b31efa2938932d5048225592c2a79891224e4c6bb9c183eb5be5ff755e7450 | 0x000000000000000000000001a055690d9db80000000000000000000000000000 | 0x000000000000000000000001a055690d9db80000000000000000000000000000 | +| 0xe06378f15535c59b068deb2a58115105cb5602d0777d3d69f0694b561db5289d | 0x0000000000000000000000000000000000000000000000000000000000000019 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ## Raw diff diff --git a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 56a1fc1f2..d7496cec6 100644 --- a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -8,7 +8,7 @@ | 2 | AgentEnabledSet(agentId: 1, enable: false) | | 4 | AgentEnabledSet(agentId: 2, enable: false) | | 6 | AgentEnabledSet(agentId: 3, enable: false) | -| 7 | AgentEnabledSet(agentId: 4, enable: false) | +| 8 | AgentEnabledSet(agentId: 4, enable: false) | #### 0xc2aaCf6553D20d1e9d78E365AAba8032af9c85b0 (AaveV3Ethereum.ACL_MANAGER) @@ -17,41 +17,75 @@ | 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x4F2858d4A4e4464b34Aa4a22C41B2Ef540a59BF4, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | | 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x1B3bD355c43d2247946b8e0889d4b4e701bf430d, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | | 5 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xdA626E64f34f24e0236E0C9cD2F11ce4549a08c6, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | -| 8 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xCc18Be380838956aad41FD22466085eD66aaBB46, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | +| 9 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xCc18Be380838956aad41FD22466085eD66aaBB46, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | + +#### 0x013E2C7567b6231e865BB9273F8c7656103611c0 (AaveV3EthereumLido.ACL_MANAGER) + +| index | event | +| --- | --- | +| 7 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x52E652182b22C41d0202bB8D834982F43B12Cd21, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | +| 10 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xCc18Be380838956aad41FD22466085eD66aaBB46, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | #### 0x18eFE565A5373f430e2F809b97De30335B3ad96A (AaveV3EthereumLido.ASSETS.GHO.A_TOKEN) | index | event | | --- | --- | -| 9 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | -| 10 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 11 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | -| 12 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 13 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | -| 14 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | -| 16 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 209,589.0410 [209589041095890409440000, 18 decimals]) | -| 17 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 202,588.6078 [202588607836049978102763, 18 decimals], index: 1034554920607903635566518116) | +| 11 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | +| 12 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 13 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | +| 14 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 15 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | +| 16 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | +| 18 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 209,589.0410 [209589041095890409440000, 18 decimals]) | +| 19 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 202,588.6078 [202588607836049978102763, 18 decimals], index: 1034554920607903635566518116) | #### 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c (AaveV2Ethereum.COLLECTOR, AaveV2EthereumAMM.COLLECTOR, AaveV2EthereumArc.COLLECTOR, AaveV3Ethereum.COLLECTOR, AaveV3EthereumEtherFi.COLLECTOR, AaveV3EthereumLido.COLLECTOR) | index | event | | --- | --- | -| 15 | CancelStream(streamId: 100073, sender: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, recipient: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, senderBalance: 1480523401826484007535400, recipientBalance: 20121518264840182502580) | +| 17 | CancelStream(streamId: 100073, sender: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, recipient: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, senderBalance: 1480523401826484007535400, recipientBalance: 20121518264840182502580) | + +#### 0x6593c7De001fC8542bB1703532EE1E5aA0D458fD + +| index | event | +| --- | --- | +| 20 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 22 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 24 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 26 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 28 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x90765013000000000000000000000000c37273507713b02376b94a0a26240395`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | + +#### 0x1cDF8879eC8bE012bA959EB515b11008E0cb6323 (MiscEthereum.AAVE_CL_ROBOT_OPERATOR) + +| index | event | +| --- | --- | +| 21 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 23 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 25 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 27 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 29 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x90765013000000000000000000000000c37273507713b02376b94a0a26240395`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | #### 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A (AaveV2Ethereum.POOL_ADMIN, AaveV2EthereumAMM.POOL_ADMIN, AaveV3Ethereum.ACL_ADMIN, AaveV3EthereumEtherFi.ACL_ADMIN, AaveV3EthereumHorizon.ACL_ADMIN, AaveV3EthereumLido.ACL_ADMIN, GovernanceV3Ethereum.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 18 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833655, withDelegatecall: true, resultData: 0x) | +| 30 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833655, withDelegatecall: true, resultData: 0x) | #### 0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 19 | PayloadExecuted(payloadId: 427) | +| 31 | PayloadExecuted(payloadId: 427) | ## Raw storage changes +### 0x013e2c7567b6231e865bb9273f8c7656103611c0 (AaveV3EthereumLido.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xafc4edc6ef9b19bd2f7d58bfed1aee7bbd56c36a71b10b1ba36eaabbf2b58266 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xe99a93bb8ad9f5143d6ad964f2b03d241fad01b5310b3dde8e7a03649df96186 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0x18efe565a5373f430e2f809b97de30335b3ad96a (AaveV3EthereumLido.ASSETS.GHO.A_TOKEN) | slot | previous value | new value | @@ -59,6 +93,28 @@ | 0x0730d3c6347fc0f2d0e70153979d12e28f2c3b47ed9bae8312e8e15d58263dcf | 0x000000000357a24426d48463347cf676000000000000000000c1dbe74bfeffdc | 0x000000000357c3869fba10c45f3c5f640000000000002f04b5bac37fff06bb38 | | 0x14a553e31736f19e3e380cf55bfb2f82dfd6d880cd07235affb68d8d3e0cac4d | 0x000000000357ba19bbeea687faf930e10000000000059477fc474ca8738cc908 | 0x000000000357c3869fba10c45f3c5f640000000000056573474e650fc0850dac | +### 0x1cdf8879ec8be012ba959eb515b11008e0cb6323 (MiscEthereum.AAVE_CL_ROBOT_OPERATOR) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000009 | +| 0x05e81904c79b274101de112d7570e5c7801c2307373dfe3917e0e35c449220d8 | 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2151b490f3e781ea6554bc42b10dd62dc32957febd3b7cda834c30e71ffc1442 | 0x000000000000000000000000000000000000000000000000000000000000000c | 0x0000000000000000000000000000000000000000000000000000000000000008 | +| 0x31ef21c2abcd6eb50c833ef5d57f1af59fafb411c9aa9baa89e565846f9b1dfa | 0x000000000000000000000000000000000000000000000000000000000000000b | 0x0000000000000000000000000000000000000000000000000000000000000007 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad3 | 0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518 | 0x21e03b4500000000000000000000000001144bd12154de8a622d59a67b816540 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad4 | 0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437 | 0x86f0805a0000000000000000000000009b2b64b5e83f418ab30558f0f1529cd4 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad5 | 0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b | 0xb6b870db000000000000000000000000276128391f86dd1f454e8c9daeca50e3 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad7 | 0x21e03b4500000000000000000000000001144bd12154de8a622d59a67b816540 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad8 | 0x86f0805a0000000000000000000000009b2b64b5e83f418ab30558f0f1529cd4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad9 | 0xb6b870db000000000000000000000000276128391f86dd1f454e8c9daeca50e3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ada | 0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5adb | 0x90765013000000000000000000000000c37273507713b02376b94a0a26240395 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x8cbe4c0132d0ee70de5c2db313714dabc3f62abe486ef06487ae9fe07344d3b2 | 0x000000000000000000000000000000000000000000000000000000000000000a | 0x0000000000000000000000000000000000000000000000000000000000000006 | +| 0xb2a42fcce1632d64b1ce3c144cc6994d4e16cf36e64febd7d6a92c45165d5e3e | 0x0000000000000000000000000000000000000000000000000000000000000006 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xcba87a164aea6f798dc1d0acd83da109f1e63ea916fb3241dfb83e3e335bcf2d | 0x000000000000000000000000000000000000000000000000000000000000000d | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xce7795822a77760f8f1a6557c9cc02bcaa92db9e462d110e97b2b9341114afa6 | 0x0000000000000000000000000000000000000000000000000000000000000007 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xd56897143d4b185f6dd6932c800904d29438d4b9ef3ba3f307382294a6c83381 | 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c (AaveV2Ethereum.COLLECTOR, AaveV2EthereumAMM.COLLECTOR, AaveV2EthereumArc.COLLECTOR, AaveV3Ethereum.COLLECTOR, AaveV3EthereumEtherFi.COLLECTOR, AaveV3EthereumLido.COLLECTOR) | slot | previous value | new value | @@ -73,6 +129,43 @@ | 0x128653a9b95df150453a6e009493350ff1fb874ff255fc8b4ec26ffd25dc6dcb | 0x00000000000000000000000118efe565a5373f430e2f809b97de30335b3ad96a | 0x0000000000000000000000000000000000000000000000000000000000000000 | | 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +### 0x6593c7de001fc8542bb1703532ee1e5aa0d458fd + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x00000000000000000000000000000000000000000000000000000000000000e9 | 0x00000000000000000000000000000000000000000000000000000000000000e4 | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x015b184c00000006000001f0009896800098968000000000476b78c56f0236dd | 0x015b184c00000006000001f0009896800098968000000000476b78c56f0236dd | +| 0x05e81904c79b274101de112d7570e5c7801c2307373dfe3917e0e35c449220d8 | 0x00000000000000000000000000000000000000000000000000000000000000df | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x11d357df64fd04c3ee162bf3fa1e64b91bb1cced50ba6ac2ba3da775530ecf65 | 0x000000d298355a03537af04dc2004b19811a30b698f16bffffffff004c4b4000 | 0x000000d298355a03537af04dc2004b19811a30b698f16b017b2ef9004c4b4000 | +| 0x11d357df64fd04c3ee162bf3fa1e64b91bb1cced50ba6ac2ba3da775530ecf66 | 0x000000000177c6ac0000000ad7795d0dba2ecd8a0000000000155f4d0bf13276 | 0x000000000177c6ac0000000ad7795d0dba2ecd8a0000000000155f4d0bf13276 | +| 0x2b62e829ed19cdeda04a5ffe87df19a82a8c649d6c4f1f78f83c2f840c41333d | 0x0000004c16d55e90d83381a24dfd6ff30b93b77c24316bffffffff004c4b4000 | 0x0000004c16d55e90d83381a24dfd6ff30b93b77c24316b017b2ef9004c4b4000 | +| 0x2b62e829ed19cdeda04a5ffe87df19a82a8c649d6c4f1f78f83c2f840c41333e | 0x00000000017abb910000001b000efc37f62d517c000000001ad5daaaf922ae84 | 0x00000000017abb910000001b000efc37f62d517c000000001ad5daaaf922ae84 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ae3 | 0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437 | 0x3c35012d000000000000000000000000d1ca07dd9412bc331b83a2b747c284c7 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b09 | 0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62 | 0x50e00fdd000000000000000000000000eae3ffe107578d2e172a579fd8859d12 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b6f | 0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518 | 0xa2afe83f00000000000000000000000024bb9049625554bd94c255d714c3bd28 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b75 | 0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b | 0x08dd15b1000000000000000000000000e12db6b33ba0317bf0b8ad1d8ad51e05 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5bac | 0x90765013000000000000000000000000c37273507713b02376b94a0a26240395 | 0x8b8d77600000000000000000000000005f75fb4c72c6192aac68b2aba99f24c1 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5bb2 | 0x8b8d77600000000000000000000000005f75fb4c72c6192aac68b2aba99f24c1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5bb3 | 0x50e00fdd000000000000000000000000eae3ffe107578d2e172a579fd8859d12 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5bb4 | 0x08dd15b1000000000000000000000000e12db6b33ba0317bf0b8ad1d8ad51e05 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5bb5 | 0x3c35012d000000000000000000000000d1ca07dd9412bc331b83a2b747c284c7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5bb6 | 0xa2afe83f00000000000000000000000024bb9049625554bd94c255d714c3bd28 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x45c4496f3944cb82ba7c59896c67f8b6704a5443f08aa26be26827f3ef9728a1 | 0x0000003700211f16445e97cb4f905ea9cf808c4852cdcfffffffff004c4b4000 | 0x0000003700211f16445e97cb4f905ea9cf808c4852cdcf017b2ef9004c4b4000 | +| 0x45c4496f3944cb82ba7c59896c67f8b6704a5443f08aa26be26827f3ef9728a2 | 0x00000000017711a700000015aef1e3424fc3871100000000002b95733c7c78ef | 0x00000000017711a700000015aef1e3424fc3871100000000002b95733c7c78ef | +| 0x63972c9e04dbfe24b4c751a45ad39aa5a8bf74bceb96d917c4cf65f92b4f415a | 0x00000000000000000000000000000000000000000000000000000000000000e9 | 0x00000000000000000000000000000000000000000000000000000000000000a2 | +| 0x6b819e22d71d9cd94b99dec5914a7ef910fff6e380d06221a7a0123dbb1cefe1 | 0x000000d1998f9eda49c4cf026ecad8452399a575fbeefcffffffff004c4b4000 | 0x000000d1998f9eda49c4cf026ecad8452399a575fbeefc017b2ef9004c4b4000 | +| 0x6b819e22d71d9cd94b99dec5914a7ef910fff6e380d06221a7a0123dbb1cefe2 | 0x00000000017af16a00000015a50aa1b298e1594a000000000a12d702f35ea6b6 | 0x00000000017af16a00000015a50aa1b298e1594a000000000a12d702f35ea6b6 | +| 0x7b8b0d591e564f3fa16e89a68c099e6c09e3148b9022f089506d70af7fc85b44 | 0x00000000000000000000000000000000000000000000000000000000000000e5 | 0x00000000000000000000000000000000000000000000000000000000000000df | +| 0x9d38d7b97d53764c977d88f3f388cf0d69dc15220cf6b4f2471ffffcfe879d09 | 0x00000000000000000000000000000000000000000000000000000000000000e7 | 0x00000000000000000000000000000000000000000000000000000000000000a8 | +| 0xa8556bd2c29438159c51ff8cdcee204f8db984e52a03d1fef551c6d947d62e45 | 0x000000cfc2ce0d45c3faa03f3147676042685500bc9bc6ffffffff004c4b4000 | 0x000000cfc2ce0d45c3faa03f3147676042685500bc9bc6017b2ef9004c4b4000 | +| 0xa8556bd2c29438159c51ff8cdcee204f8db984e52a03d1fef551c6d947d62e46 | 0x0000000001760e2f0000001b143900562fd1f3e80000000006abd68cbf7e0c18 | 0x0000000001760e2f0000001b143900562fd1f3e80000000006abd68cbf7e0c18 | +| 0xb2a42fcce1632d64b1ce3c144cc6994d4e16cf36e64febd7d6a92c45165d5e3e | 0x00000000000000000000000000000000000000000000000000000000000000a2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xcba87a164aea6f798dc1d0acd83da109f1e63ea916fb3241dfb83e3e335bcf2d | 0x000000000000000000000000000000000000000000000000000000000000003c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xce7795822a77760f8f1a6557c9cc02bcaa92db9e462d110e97b2b9341114afa6 | 0x0000000000000000000000000000000000000000000000000000000000000016 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xd56897143d4b185f6dd6932c800904d29438d4b9ef3ba3f307382294a6c83381 | 0x00000000000000000000000000000000000000000000000000000000000000a8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdaff8b2966b984e06b601be8ff4cff902db20262f6e5e9db61cba11d7337272a | 0x00000000000000000000000000000000000000000000000000000000000000e6 | 0x000000000000000000000000000000000000000000000000000000000000003c | +| 0xe658de6a456a32a49b6faba89ce720c015532f76d75ba23c5e2b84c15ec156cb | 0x00000000000000000000000000000000000000000000000000000000000000e8 | 0x0000000000000000000000000000000000000000000000000000000000000016 | + ### 0x95e3015c67ef62b866cc28ca5a9ab5017a55e336 (MiscEthereum.AGENT_HUB) | slot | previous value | new value | diff --git a/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 133778c95..3dce47fc8 100644 --- a/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -14,17 +14,31 @@ | 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x8963Abfb008A668346B18d0BeE82b171F3b2Be24, sender: 0x746c675dAB49Bcd5BB9Dc85161f2d7Eb435009bf) | | 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x3993695F48d64076C5Df1EeC9490501F9bB400C8, sender: 0x746c675dAB49Bcd5BB9Dc85161f2d7Eb435009bf) | +#### 0x696fB0d7D069cc0bb35a7c36115CE63E55cb9AA6 + +| index | event | +| --- | --- | +| 4 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x090820b2000000000000000000000000394e3ce778653e32b2c19021d4275455`, `0x0000000000000000000000000000000000000000000000000000000008f29c78`, data: `0x` | +| 6 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xc31e378300000000000000000000000033ee29c55824bebee742b3649b045245`, `0x0000000000000000000000000000000000000000000000000000000008f29c78`, data: `0x` | + +#### 0x55Cf9583D7D30DC4936bAee1f747591dBECe5df7 (MiscOptimism.AAVE_CL_ROBOT_OPERATOR) + +| index | event | +| --- | --- | +| 5 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x090820b2000000000000000000000000394e3ce778653e32b2c19021d4275455`, `0x000000000000000000000000eed80d79ae1383884b93d96bd1521f7247ec7e53`, data: `0x` | +| 7 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xc31e378300000000000000000000000033ee29c55824bebee742b3649b045245`, `0x000000000000000000000000eed80d79ae1383884b93d96bd1521f7247ec7e53`, data: `0x` | + #### 0x746c675dAB49Bcd5BB9Dc85161f2d7Eb435009bf (AaveV3Optimism.ACL_ADMIN, GovernanceV3Optimism.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 4 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | +| 8 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | #### 0x0E1a3Af1f9cC76A62eD31eDedca291E63632e7c4 (GovernanceV3Optimism.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 5 | PayloadExecuted(payloadId: 94) | +| 9 | PayloadExecuted(payloadId: 94) | ## Raw storage changes @@ -42,6 +56,33 @@ | 0xaf23a9fe98ab74c8206d31b4f275ddf8dabc82d8a5daa7c12084d552666b96fd | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | | 0xf80cf091d48cb329813162312cf78c924f5aae0ee991535608533f788290f887 | 0x0000000000000000000000019f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | 0x0000000000000000000000009f6aa2ab14bff53e4b79a81ce1554f1dfdbb6608 | +### 0x55cf9583d7d30dc4936baee1f747591dbece5df7 (MiscOptimism.AAVE_CL_ROBOT_OPERATOR) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0 | 0x090820b2000000000000000000000000394e3ce778653e32b2c19021d4275455 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1 | 0xc31e378300000000000000000000000033ee29c55824bebee742b3649b045245 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xf4bc49259033cc46f600fb6d5b19bf7a7c88d90d05db579be423f88c9bbee617 | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xfd24786eb1881f2e21b8317211e6ea18272528cd9439563cee318959085645cd | 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + +### 0x696fb0d7d069cc0bb35a7c36115ce63e55cb9aa6 + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x000000000000000000000000000000000000000000000000000000000000002d | 0x000000000000000000000000000000000000000000000000000000000000002b | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x0830d9cd0000000c000000a3004c4b4000989680000000003198bdce56824048 | 0x0830d9cd0000000c000000a3004c4b4000989680000000003198bdce56824048 | +| 0x32a72862d492854c064229acded4063d3bc060c636e94381ae418f1dd8023154 | 0x000000000000000000000000000000000000000000000000000000000000002d | 0x0000000000000000000000000000000000000000000000000000000000000020 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5aed | 0x090820b2000000000000000000000000394e3ce778653e32b2c19021d4275455 | 0x9966f4ac000000000000000000000000ede388f819e1c435152f4fdcba175e77 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5af9 | 0xc31e378300000000000000000000000033ee29c55824bebee742b3649b045245 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5afa | 0x9966f4ac000000000000000000000000ede388f819e1c435152f4fdcba175e77 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x54215c25a3eb2068bd31c7148fe16dcc90be651558d019f867090bac02978e7b | 0x000000b494df961c68a53eedf0005a95bc5c2945d854ebffffffff004c4b4000 | 0x000000b494df961c68a53eedf0005a95bc5c2945d854eb08f29c78004c4b4000 | +| 0x54215c25a3eb2068bd31c7148fe16dcc90be651558d019f867090bac02978e7c | 0x0000000008eab9ff00000002af8071adb29741910000000006633d68fef0be6f | 0x0000000008eab9ff00000002af8071adb29741910000000006633d68fef0be6f | +| 0x54f3da0e4d2288ecaf6b1e3167355125b947e7d2a2597426a2ce6f7e78e6aedf | 0x000000366862cadb3e050bf4b2e46c5afa8180860edf26ffffffff004c4b4000 | 0x000000366862cadb3e050bf4b2e46c5afa8180860edf2608f29c78004c4b4000 | +| 0x54f3da0e4d2288ecaf6b1e3167355125b947e7d2a2597426a2ce6f7e78e6aee0 | 0x0000000008e6710400000002b363c1c5942bebef00000000027fed511d5c1411 | 0x0000000008e6710400000002b363c1c5942bebef00000000027fed511d5c1411 | +| 0xf4bc49259033cc46f600fb6d5b19bf7a7c88d90d05db579be423f88c9bbee617 | 0x000000000000000000000000000000000000000000000000000000000000002c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xfd24786eb1881f2e21b8317211e6ea18272528cd9439563cee318959085645cd | 0x0000000000000000000000000000000000000000000000000000000000000020 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0xa72636cbcaa8f5ff95b2cc47f3cdee83f3294a0b (AaveV3Optimism.ACL_MANAGER) | slot | previous value | new value | diff --git a/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 75f310db6..de48658ad 100644 --- a/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -14,20 +14,53 @@ | 1 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xd99D0A740AF7B68f1CB635294C013552423666b1, sender: 0xDf7d0e6454DB638881302729F5ba99936EaAB233) | | 3 | RoleRevoked(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xA512909edCf6D9aE46b0414ce0aD724968448177, sender: 0xDf7d0e6454DB638881302729F5ba99936EaAB233) | +#### 0x08a8eea76D2395807Ce7D1FC942382515469cCA1 + +| index | event | +| --- | --- | +| 4 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x8609995c00000000000000000000000038b33478954ef0c196e807aaa1929993`, `0x0000000000000000000000000000000000000000000000000000000005167142`, data: `0x` | +| 6 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x1cfa32c7000000000000000000000000794596eb163b87afd052fbe3b25f06d1`, `0x0000000000000000000000000000000000000000000000000000000005167142`, data: `0x` | + +#### 0xB4C212f5cD17E200019b07e6B1fDf124d35DBCf5 (MiscPolygon.AAVE_CL_ROBOT_OPERATOR) + +| index | event | +| --- | --- | +| 5 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x8609995c00000000000000000000000038b33478954ef0c196e807aaa1929993`, `0x000000000000000000000000125844d33f75090517ea19aab8ca24eea4fef764`, data: `0x` | +| 7 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x1cfa32c7000000000000000000000000794596eb163b87afd052fbe3b25f06d1`, `0x000000000000000000000000125844d33f75090517ea19aab8ca24eea4fef764`, data: `0x` | + #### 0xDf7d0e6454DB638881302729F5ba99936EaAB233 (AaveV2Polygon.POOL_ADMIN, AaveV3Polygon.ACL_ADMIN, GovernanceV3Polygon.EXECUTOR_LVL_1) | index | event | | --- | --- | -| 4 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | +| 8 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1775833669, withDelegatecall: true, resultData: 0x) | #### 0x401B5D0294E23637c18fcc38b1Bca814CDa2637C (GovernanceV3Polygon.PAYLOADS_CONTROLLER) | index | event | | --- | --- | -| 5 | PayloadExecuted(payloadId: 142) | +| 9 | PayloadExecuted(payloadId: 142) | ## Raw storage changes +### 0x08a8eea76d2395807ce7d1fc942382515469cca1 + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x00000000000000000000000000000000000000000000000000000000000000d3 | 0x00000000000000000000000000000000000000000000000000000000000000d1 | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x04d864ef000000080000027c004c4b400098968000000000f31530d20d25fd2b | 0x04d864ef000000080000027c004c4b400098968000000000f31530d20d25fd2b | +| 0x01f2b5ce38f90fab8415fa3b4cf4a28d59eced533dca20b468f0a31ccc3b6aea | 0x00000000000000000000000000000000000000000000000000000000000000c2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x343cf70017fad3d123371aaeea78ea3b6a4a6e65a36aaed8ee040b255f6300e0 | 0x00000000000000000000000000000000000000000000000000000000000000ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b7a | 0x1cfa32c7000000000000000000000000794596eb163b87afd052fbe3b25f06d1 | 0xe7ed856a0000000000000000000000003581503bc6f1ffc885a496eb31da06f5 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b8f | 0x8609995c00000000000000000000000038b33478954ef0c196e807aaa1929993 | 0xc41e0ea1000000000000000000000000d3339d0c9d089fb3b0d60547bc558ea9 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5b9f | 0xe7ed856a0000000000000000000000003581503bc6f1ffc885a496eb31da06f5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ba0 | 0xc41e0ea1000000000000000000000000d3339d0c9d089fb3b0d60547bc558ea9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x6e319caa791d359b73d552abf714c7380861749839375f3c54b633b04dceca8c | 0x00000000000000000000000000000000000000000000000000000000000000d3 | 0x00000000000000000000000000000000000000000000000000000000000000c2 | +| 0x770007f01939bfefac40d9dd6a710777050abff46abd3e78e00dfd4a2ebd7b3d | 0x0000003087e76a0258dbf160d30a9b5804ef64d75933f9ffffffff004c4b4000 | 0x0000003087e76a0258dbf160d30a9b5804ef64d75933f905167142004c4b4000 | +| 0x770007f01939bfefac40d9dd6a710777050abff46abd3e78e00dfd4a2ebd7b3e | 0x000000000501597400000002b5a4b5d04a52e43400000000003ef94667351bcc | 0x000000000501597400000002b5a4b5d04a52e43400000000003ef94667351bcc | +| 0xa586c27ff812c23dc082c772629e4ecb531403bcc039fc866ca78428db446642 | 0x00000000000000000000000000000000000000000000000000000000000000d2 | 0x00000000000000000000000000000000000000000000000000000000000000ad | +| 0xe3b1fe600a853289a2a4cde003a63ea977afa15a4739a31917d1570c75ae2d41 | 0x000000a4a4ad137f7dc4a83c84596be4b08ea75e858402ffffffff004c4b4000 | 0x000000a4a4ad137f7dc4a83c84596be4b08ea75e85840205167142004c4b4000 | +| 0xe3b1fe600a853289a2a4cde003a63ea977afa15a4739a31917d1570c75ae2d42 | 0x000000000502fe8700000002b579664c386530ea00000000006a48ca7922cf16 | 0x000000000502fe8700000002b579664c386530ea00000000006a48ca7922cf16 | + ### 0x401b5d0294e23637c18fcc38b1bca814cda2637c (GovernanceV3Polygon.PAYLOADS_CONTROLLER) | slot | previous value | new value | @@ -42,6 +75,16 @@ | 0x9d469322d8108290728864bd0600721554b3674e199099054ee2ba84a4a37311 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | | 0xe808ff36c7f94c5225cf8bade736af27222f1d16c2dce1ba8b9faaed98c646e5 | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +### 0xb4c212f5cd17e200019b07e6b1fdf124d35dbcf5 (MiscPolygon.AAVE_CL_ROBOT_OPERATOR) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x01f2b5ce38f90fab8415fa3b4cf4a28d59eced533dca20b468f0a31ccc3b6aea | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x343cf70017fad3d123371aaeea78ea3b6a4a6e65a36aaed8ee040b255f6300e0 | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1 | 0x8609995c00000000000000000000000038b33478954ef0c196e807aaa1929993 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad2 | 0x1cfa32c7000000000000000000000000794596eb163b87afd052fbe3b25f06d1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | + ### 0xd44342b1ac132353d3148ea6ed330d1ae6f0c664 (MiscPolygon.AGENT_HUB) | slot | previous value | new value | diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 4a43ad410..c0edc4855 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -18,6 +18,18 @@ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 function setUp() public { vm.createSelectFork(vm.rpcUrl('arbitrum'), 451063652); + // The Chainlink Automation Registry on Arbitrum calls the arbBlockNumber() precompile + // (0x0000...0064) inside cancelUpkeep. Foundry fork mode does not replicate Arbitrum + // native precompiles so the call hits INVALID (0xFE) — known limitation: + // https://github.com/foundry-rs/foundry/issues/5085 + // https://github.com/foundry-rs/foundry/issues/7294 + // https://github.com/foundry-rs/foundry/issues/6035 + // The proposal executes correctly on Arbitrum mainnet where the precompile is native. + vm.mockCall( + address(0x0000000000000000000000000000000000000064), + abi.encodeWithSignature('arbBlockNumber()'), + abi.encode(uint256(451063652)) + ); proposal = new AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410(); } From 96d7d394aae4d07b2c60898d09b1219dbb94a137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 13:28:05 +0900 Subject: [PATCH 11/23] update libs --- foundry.lock | 2 +- lib/aave-helpers | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/foundry.lock b/foundry.lock index 1b5f79bfe..e1db57423 100644 --- a/foundry.lock +++ b/foundry.lock @@ -2,7 +2,7 @@ "lib/aave-helpers": { "branch": { "name": "main", - "rev": "a7799378dde2c630298a177fd9f600b2d34e27fc" + "rev": "9350321d2ce927d6e07e5486e1d3abf5a55cd707" } }, "lib/aave-umbrella": { diff --git a/lib/aave-helpers b/lib/aave-helpers index a7799378d..9350321d2 160000 --- a/lib/aave-helpers +++ b/lib/aave-helpers @@ -1 +1 @@ -Subproject commit a7799378dde2c630298a177fd9f600b2d34e27fc +Subproject commit 9350321d2ce927d6e07e5486e1d3abf5a55cd707 From cf871bb5e52fc6625bc25283cb6374755ea48d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 14:07:54 +0900 Subject: [PATCH 12/23] add LINK recovery test and fix robot cancellation delay comment - Fix comment: CANCELLATION_DELAY is 50 blocks (not ~20), sourced from KeeperRegistryBase2_1 - Add test_linkReturnedToCollectorAfterCancellation: executes proposal, rolls 50 blocks using getCancellationDelay() on the deployed registry, withdraws LINK for all cancelled agent hub robots and asserts collector balance increased - Use AaveV3EthereumAssets.LINK_UNDERLYING from address book instead of hardcoded address Co-Authored-By: Claude Sonnet 4.6 --- ...ndOffboardingPlanForChaosLabs_20260410.sol | 3 +- ...OffboardingPlanForChaosLabs_20260410.t.sol | 42 ++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 40dda84a4..0cb35cb33 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -38,7 +38,8 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 AMOUNT_PER_SECOND * 30 days ); - // withdrawLink() is permissionless and can be called by anyone ~20 blocks after execution + // withdrawLink() is permissionless and can be called by anyone 50 blocks after execution + // (CANCELLATION_DELAY constant in KeeperRegistryBase2_1: https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol) CancelAgentRobots.cancel( MiscEthereum.AAVE_CL_ROBOT_OPERATOR, MiscEthereum.AGENT_HUB_AUTOMATION diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 103e1d354..a3fed2c38 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; +import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; import {AaveV3EthereumLido} from 'aave-address-book/AaveV3EthereumLido.sol'; import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol'; @@ -10,6 +10,12 @@ import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3Test import {AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; + +interface IKeeperRegistry { + // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol + function getCancellationDelay() external view returns (uint256); +} /** * @dev Test for AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -80,4 +86,38 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); } + + function test_linkReturnedToCollectorAfterCancellation() public { + address CHAINLINK_REGISTRY = 0x6593c7De001fC8542bB1703532EE1E5aA0D458fD; // not in address book + + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscEthereum.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256[] memory agentRobotIds = new uint256[](ids.length); + uint256 agentRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscEthereum.AGENT_HUB_AUTOMATION) { + agentRobotIds[agentRobotCount++] = ids[i]; + } + } + require(agentRobotCount > 0, 'no agent hub robots found'); + + executePayload(vm, address(proposal)); + + uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + vm.roll(block.number + delay); + + uint256 collectorLinkBefore = IERC20(AaveV3EthereumAssets.LINK_UNDERLYING).balanceOf( + address(AaveV3Ethereum.COLLECTOR) + ); + + for (uint256 i = 0; i < agentRobotCount; i++) { + operator.withdrawLink(agentRobotIds[i]); + } + + uint256 collectorLinkAfter = IERC20(AaveV3EthereumAssets.LINK_UNDERLYING).balanceOf( + address(AaveV3Ethereum.COLLECTOR) + ); + assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); + } } From bb609c562dabf440c32e3cfa999f6d1b07fb5c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 14:42:38 +0900 Subject: [PATCH 13/23] add test_linkReturnedToCollectorAfterCancellation to all CL-robot chains Adds LINK recovery test to Arbitrum, Avalanche, Base, BNB, Optimism, Polygon. Pattern: discover AGENT_HUB_AUTOMATION robots dynamically, execute proposal, roll forward getCancellationDelay() blocks, withdrawLink, assert collector LINK balance increased. Chain-specific notes: - Arbitrum: vm.roll resets Foundry mocks, so the arbBlockNumber() mock is re-applied with fork_block + delay instead of using vm.roll. - Polygon: Chainlink registry uses a different LINK than AaveV3PolygonAssets; getLinkAddress() is called on the registry to get the correct token. - LINK in address book (Arbitrum, Optimism): AaveV3Assets used. - LINK not in address book (Avalanche, Base, BNB, Polygon): getLinkAddress() from registry. Co-Authored-By: Claude Sonnet 4.6 --- ...OffboardingPlanForChaosLabs_20260410.t.sol | 57 ++++++++++++++++++- ...OffboardingPlanForChaosLabs_20260410.t.sol | 39 +++++++++++++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 39 +++++++++++++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 39 +++++++++++++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 44 +++++++++++++- ...OffboardingPlanForChaosLabs_20260410.t.sol | 41 +++++++++++++ 6 files changed, 257 insertions(+), 2 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index c0edc4855..adada9e0f 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -1,11 +1,19 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol'; +import {AaveV3Arbitrum, AaveV3ArbitrumAssets} from 'aave-address-book/AaveV3Arbitrum.sol'; +import {MiscArbitrum} from 'aave-address-book/MiscArbitrum.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; + +interface IKeeperRegistry { + // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol + function getCancellationDelay() external view returns (uint256); +} /** * @dev Test for AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -25,6 +33,13 @@ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 // https://github.com/foundry-rs/foundry/issues/7294 // https://github.com/foundry-rs/foundry/issues/6035 // The proposal executes correctly on Arbitrum mainnet where the precompile is native. + // The Chainlink Automation Registry on Arbitrum calls the arbBlockNumber() precompile + // (0x0000...0064) inside cancelUpkeep. Foundry fork mode does not replicate Arbitrum + // native precompiles so the call hits INVALID (0xFE) — known limitation: + // https://github.com/foundry-rs/foundry/issues/5085 + // https://github.com/foundry-rs/foundry/issues/7294 + // https://github.com/foundry-rs/foundry/issues/6035 + // The proposal executes correctly on Arbitrum mainnet where the precompile is native. vm.mockCall( address(0x0000000000000000000000000000000000000064), abi.encodeWithSignature('arbBlockNumber()'), @@ -43,4 +58,44 @@ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 address(proposal) ); } + + function test_linkReturnedToCollectorAfterCancellation() public { + address CHAINLINK_REGISTRY = 0x37D9dC70bfcd8BC77Ec2858836B923c560E891D1; // not in address book + + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscArbitrum.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256[] memory agentRobotIds = new uint256[](ids.length); + uint256 agentRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscArbitrum.AGENT_HUB_AUTOMATION) { + agentRobotIds[agentRobotCount++] = ids[i]; + } + } + require(agentRobotCount > 0, 'no agent hub robots found'); + + executePayload(vm, address(proposal)); + + // Cancel sets maxValidBlocknumber = arbBlockNumber() + delay = 451063652 + 50. + // Update the mock to simulate enough blocks have passed (vm.roll resets mocks in Foundry). + uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + vm.mockCall( + address(0x0000000000000000000000000000000000000064), + abi.encodeWithSignature('arbBlockNumber()'), + abi.encode(uint256(451063652) + delay) + ); + + uint256 collectorLinkBefore = IERC20(AaveV3ArbitrumAssets.LINK_UNDERLYING).balanceOf( + address(AaveV3Arbitrum.COLLECTOR) + ); + + for (uint256 i = 0; i < agentRobotCount; i++) { + operator.withdrawLink(agentRobotIds[i]); + } + + uint256 collectorLinkAfter = IERC20(AaveV3ArbitrumAssets.LINK_UNDERLYING).balanceOf( + address(AaveV3Arbitrum.COLLECTOR) + ); + assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); + } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 805b77202..1d14eaa7e 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -2,10 +2,18 @@ pragma solidity ^0.8.0; import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol'; +import {MiscAvalanche} from 'aave-address-book/MiscAvalanche.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; + +interface IKeeperRegistry { + // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol + function getCancellationDelay() external view returns (uint256); +} /** * @dev Test for AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -31,4 +39,35 @@ contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_2026041 address(proposal) ); } + + function test_linkReturnedToCollectorAfterCancellation() public { + address CHAINLINK_REGISTRY = 0x7f00a3Cd4590009C349192510D51F8e6312E08CB; // not in address book + address LINK = 0x5947BB275c521040051D82396192181b413227A3; // LINK.e on Avalanche, not in address book + + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscAvalanche.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256[] memory agentRobotIds = new uint256[](ids.length); + uint256 agentRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscAvalanche.AGENT_HUB_AUTOMATION) { + agentRobotIds[agentRobotCount++] = ids[i]; + } + } + require(agentRobotCount > 0, 'no agent hub robots found'); + + executePayload(vm, address(proposal)); + + uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + vm.roll(block.number + delay); + + uint256 collectorLinkBefore = IERC20(LINK).balanceOf(address(AaveV3Avalanche.COLLECTOR)); + + for (uint256 i = 0; i < agentRobotCount; i++) { + operator.withdrawLink(agentRobotIds[i]); + } + + uint256 collectorLinkAfter = IERC20(LINK).balanceOf(address(AaveV3Avalanche.COLLECTOR)); + assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); + } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index c93a82e3d..387f5b70d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -2,10 +2,18 @@ pragma solidity ^0.8.0; import {AaveV3BNB} from 'aave-address-book/AaveV3BNB.sol'; +import {MiscBNB} from 'aave-address-book/MiscBNB.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; + +interface IKeeperRegistry { + // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol + function getCancellationDelay() external view returns (uint256); +} /** * @dev Test for AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -31,4 +39,35 @@ contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test address(proposal) ); } + + function test_linkReturnedToCollectorAfterCancellation() public { + address CHAINLINK_REGISTRY = 0xDc21E279934fF6721CaDfDD112DAfb3261f09A2C; // not in address book + address LINK = 0x404460C6A5EdE2D891e8297795264fDe62ADBB75; // LINK on BNB, not in address book + + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscBNB.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256[] memory agentRobotIds = new uint256[](ids.length); + uint256 agentRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscBNB.AGENT_HUB_AUTOMATION) { + agentRobotIds[agentRobotCount++] = ids[i]; + } + } + require(agentRobotCount > 0, 'no agent hub robots found'); + + executePayload(vm, address(proposal)); + + uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + vm.roll(block.number + delay); + + uint256 collectorLinkBefore = IERC20(LINK).balanceOf(address(AaveV3BNB.COLLECTOR)); + + for (uint256 i = 0; i < agentRobotCount; i++) { + operator.withdrawLink(agentRobotIds[i]); + } + + uint256 collectorLinkAfter = IERC20(LINK).balanceOf(address(AaveV3BNB.COLLECTOR)); + assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); + } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index c10a8fde4..e6582ceb3 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -2,10 +2,18 @@ pragma solidity ^0.8.0; import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol'; +import {MiscBase} from 'aave-address-book/MiscBase.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; + +interface IKeeperRegistry { + // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol + function getCancellationDelay() external view returns (uint256); +} /** * @dev Test for AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -31,4 +39,35 @@ contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Tes address(proposal) ); } + + function test_linkReturnedToCollectorAfterCancellation() public { + address CHAINLINK_REGISTRY = 0xE226D5aCae908252CcA3F6CEFa577527650a9e1e; // not in address book + address LINK = 0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196; // LINK on Base, not in address book + + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscBase.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256[] memory agentRobotIds = new uint256[](ids.length); + uint256 agentRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscBase.AGENT_HUB_AUTOMATION) { + agentRobotIds[agentRobotCount++] = ids[i]; + } + } + require(agentRobotCount > 0, 'no agent hub robots found'); + + executePayload(vm, address(proposal)); + + uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + vm.roll(block.number + delay); + + uint256 collectorLinkBefore = IERC20(LINK).balanceOf(address(AaveV3Base.COLLECTOR)); + + for (uint256 i = 0; i < agentRobotCount; i++) { + operator.withdrawLink(agentRobotIds[i]); + } + + uint256 collectorLinkAfter = IERC20(LINK).balanceOf(address(AaveV3Base.COLLECTOR)); + assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); + } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 3f6871ddd..562de0c88 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -1,11 +1,19 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol'; +import {AaveV3Optimism, AaveV3OptimismAssets} from 'aave-address-book/AaveV3Optimism.sol'; +import {MiscOptimism} from 'aave-address-book/MiscOptimism.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; + +interface IKeeperRegistry { + // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol + function getCancellationDelay() external view returns (uint256); +} /** * @dev Test for AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -31,4 +39,38 @@ contract AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 address(proposal) ); } + + function test_linkReturnedToCollectorAfterCancellation() public { + address CHAINLINK_REGISTRY = 0x696fB0d7D069cc0bb35a7c36115CE63E55cb9AA6; // not in address book + + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscOptimism.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256[] memory agentRobotIds = new uint256[](ids.length); + uint256 agentRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscOptimism.AGENT_HUB_AUTOMATION) { + agentRobotIds[agentRobotCount++] = ids[i]; + } + } + require(agentRobotCount > 0, 'no agent hub robots found'); + + executePayload(vm, address(proposal)); + + uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + vm.roll(block.number + delay); + + uint256 collectorLinkBefore = IERC20(AaveV3OptimismAssets.LINK_UNDERLYING).balanceOf( + address(AaveV3Optimism.COLLECTOR) + ); + + for (uint256 i = 0; i < agentRobotCount; i++) { + operator.withdrawLink(agentRobotIds[i]); + } + + uint256 collectorLinkAfter = IERC20(AaveV3OptimismAssets.LINK_UNDERLYING).balanceOf( + address(AaveV3Optimism.COLLECTOR) + ); + assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); + } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 2781838b1..3ff41405e 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -2,10 +2,19 @@ pragma solidity ^0.8.0; import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol'; +import {MiscPolygon} from 'aave-address-book/MiscPolygon.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; +import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; + +interface IKeeperRegistry { + // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol + function getCancellationDelay() external view returns (uint256); + function getLinkAddress() external view returns (address); +} /** * @dev Test for AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -31,4 +40,36 @@ contract AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_ address(proposal) ); } + + function test_linkReturnedToCollectorAfterCancellation() public { + address CHAINLINK_REGISTRY = 0x08a8eea76D2395807Ce7D1FC942382515469cCA1; // not in address book + + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscPolygon.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256[] memory agentRobotIds = new uint256[](ids.length); + uint256 agentRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscPolygon.AGENT_HUB_AUTOMATION) { + agentRobotIds[agentRobotCount++] = ids[i]; + } + } + require(agentRobotCount > 0, 'no agent hub robots found'); + + executePayload(vm, address(proposal)); + + IKeeperRegistry registry = IKeeperRegistry(CHAINLINK_REGISTRY); + uint256 delay = registry.getCancellationDelay(); + address link = registry.getLinkAddress(); + vm.roll(block.number + delay); + + uint256 collectorLinkBefore = IERC20(link).balanceOf(address(AaveV3Polygon.COLLECTOR)); + + for (uint256 i = 0; i < agentRobotCount; i++) { + operator.withdrawLink(agentRobotIds[i]); + } + + uint256 collectorLinkAfter = IERC20(link).balanceOf(address(AaveV3Polygon.COLLECTOR)); + assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); + } } From 6461ad8dcfe1dbf07f4927435b12d51e13cad1fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 14:54:55 +0900 Subject: [PATCH 14/23] add agents and robots tests to all CL-robot chains MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add test_agentsDisabledAndRiskAdminRevoked and test_robotsCancelled to Arbitrum, Avalanche, Base, BNB, Optimism, Polygon — mirroring the Ethereum test suite. Also fix duplicate comment block in Arbitrum setUp. Co-Authored-By: Claude Sonnet 4.6 --- ...OffboardingPlanForChaosLabs_20260410.t.sol | 49 ++++++++++++++++--- ...OffboardingPlanForChaosLabs_20260410.t.sol | 42 ++++++++++++++++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 42 ++++++++++++++++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 42 ++++++++++++++++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 42 ++++++++++++++++ ...OffboardingPlanForChaosLabs_20260410.t.sol | 42 ++++++++++++++++ 6 files changed, 252 insertions(+), 7 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index adada9e0f..aff4579b1 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -7,6 +7,7 @@ import {MiscArbitrum} from 'aave-address-book/MiscArbitrum.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; @@ -33,13 +34,6 @@ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 // https://github.com/foundry-rs/foundry/issues/7294 // https://github.com/foundry-rs/foundry/issues/6035 // The proposal executes correctly on Arbitrum mainnet where the precompile is native. - // The Chainlink Automation Registry on Arbitrum calls the arbBlockNumber() precompile - // (0x0000...0064) inside cancelUpkeep. Foundry fork mode does not replicate Arbitrum - // native precompiles so the call hits INVALID (0xFE) — known limitation: - // https://github.com/foundry-rs/foundry/issues/5085 - // https://github.com/foundry-rs/foundry/issues/7294 - // https://github.com/foundry-rs/foundry/issues/6035 - // The proposal executes correctly on Arbitrum mainnet where the precompile is native. vm.mockCall( address(0x0000000000000000000000000000000000000064), abi.encodeWithSignature('arbBlockNumber()'), @@ -59,6 +53,47 @@ contract AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 ); } + function test_agentsDisabledAndRiskAdminRevoked() public { + IAgentHub hub = IAgentHub(MiscArbitrum.AGENT_HUB); + uint256 count = hub.getAgentCount(); + require(count > 0, 'no agents registered'); + + executePayload(vm, address(proposal)); + + for (uint256 i = 0; i < count; i++) { + address agent = hub.getAgentAddress(i); + assertFalse(hub.isAgentEnabled(i), 'agent still enabled'); + assertFalse(AaveV3Arbitrum.ACL_MANAGER.isRiskAdmin(agent), 'agent still risk admin'); + } + } + + function test_robotsCancelled() public { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscArbitrum.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256 agentHubRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscArbitrum.AGENT_HUB_AUTOMATION) { + agentHubRobotCount++; + } + } + require(agentHubRobotCount > 0, 'no agent hub robots found'); + + vm.recordLogs(); + executePayload(vm, address(proposal)); + + Vm.Log[] memory logs = vm.getRecordedLogs(); + uint256 cancelledCount = 0; + bytes32 cancelledSig = keccak256('KeeperCancelled(uint256,address)'); + for (uint256 i = 0; i < logs.length; i++) { + if (logs[i].topics[0] == cancelledSig) { + cancelledCount++; + } + } + + assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); + } + function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0x37D9dC70bfcd8BC77Ec2858836B923c560E891D1; // not in address book diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 1d14eaa7e..f932c040d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -7,6 +7,7 @@ import {MiscAvalanche} from 'aave-address-book/MiscAvalanche.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; @@ -40,6 +41,47 @@ contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_2026041 ); } + function test_agentsDisabledAndRiskAdminRevoked() public { + IAgentHub hub = IAgentHub(MiscAvalanche.AGENT_HUB); + uint256 count = hub.getAgentCount(); + require(count > 0, 'no agents registered'); + + executePayload(vm, address(proposal)); + + for (uint256 i = 0; i < count; i++) { + address agent = hub.getAgentAddress(i); + assertFalse(hub.isAgentEnabled(i), 'agent still enabled'); + assertFalse(AaveV3Avalanche.ACL_MANAGER.isRiskAdmin(agent), 'agent still risk admin'); + } + } + + function test_robotsCancelled() public { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscAvalanche.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256 agentHubRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscAvalanche.AGENT_HUB_AUTOMATION) { + agentHubRobotCount++; + } + } + require(agentHubRobotCount > 0, 'no agent hub robots found'); + + vm.recordLogs(); + executePayload(vm, address(proposal)); + + Vm.Log[] memory logs = vm.getRecordedLogs(); + uint256 cancelledCount = 0; + bytes32 cancelledSig = keccak256('KeeperCancelled(uint256,address)'); + for (uint256 i = 0; i < logs.length; i++) { + if (logs[i].topics[0] == cancelledSig) { + cancelledCount++; + } + } + + assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); + } + function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0x7f00a3Cd4590009C349192510D51F8e6312E08CB; // not in address book address LINK = 0x5947BB275c521040051D82396192181b413227A3; // LINK.e on Avalanche, not in address book diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 387f5b70d..061ef144d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -7,6 +7,7 @@ import {MiscBNB} from 'aave-address-book/MiscBNB.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; @@ -40,6 +41,47 @@ contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test ); } + function test_agentsDisabledAndRiskAdminRevoked() public { + IAgentHub hub = IAgentHub(MiscBNB.AGENT_HUB); + uint256 count = hub.getAgentCount(); + require(count > 0, 'no agents registered'); + + executePayload(vm, address(proposal)); + + for (uint256 i = 0; i < count; i++) { + address agent = hub.getAgentAddress(i); + assertFalse(hub.isAgentEnabled(i), 'agent still enabled'); + assertFalse(AaveV3BNB.ACL_MANAGER.isRiskAdmin(agent), 'agent still risk admin'); + } + } + + function test_robotsCancelled() public { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscBNB.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256 agentHubRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscBNB.AGENT_HUB_AUTOMATION) { + agentHubRobotCount++; + } + } + require(agentHubRobotCount > 0, 'no agent hub robots found'); + + vm.recordLogs(); + executePayload(vm, address(proposal)); + + Vm.Log[] memory logs = vm.getRecordedLogs(); + uint256 cancelledCount = 0; + bytes32 cancelledSig = keccak256('KeeperCancelled(uint256,address)'); + for (uint256 i = 0; i < logs.length; i++) { + if (logs[i].topics[0] == cancelledSig) { + cancelledCount++; + } + } + + assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); + } + function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0xDc21E279934fF6721CaDfDD112DAfb3261f09A2C; // not in address book address LINK = 0x404460C6A5EdE2D891e8297795264fDe62ADBB75; // LINK on BNB, not in address book diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index e6582ceb3..9a219bf29 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -7,6 +7,7 @@ import {MiscBase} from 'aave-address-book/MiscBase.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; @@ -40,6 +41,47 @@ contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Tes ); } + function test_agentsDisabledAndRiskAdminRevoked() public { + IAgentHub hub = IAgentHub(MiscBase.AGENT_HUB); + uint256 count = hub.getAgentCount(); + require(count > 0, 'no agents registered'); + + executePayload(vm, address(proposal)); + + for (uint256 i = 0; i < count; i++) { + address agent = hub.getAgentAddress(i); + assertFalse(hub.isAgentEnabled(i), 'agent still enabled'); + assertFalse(AaveV3Base.ACL_MANAGER.isRiskAdmin(agent), 'agent still risk admin'); + } + } + + function test_robotsCancelled() public { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscBase.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256 agentHubRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscBase.AGENT_HUB_AUTOMATION) { + agentHubRobotCount++; + } + } + require(agentHubRobotCount > 0, 'no agent hub robots found'); + + vm.recordLogs(); + executePayload(vm, address(proposal)); + + Vm.Log[] memory logs = vm.getRecordedLogs(); + uint256 cancelledCount = 0; + bytes32 cancelledSig = keccak256('KeeperCancelled(uint256,address)'); + for (uint256 i = 0; i < logs.length; i++) { + if (logs[i].topics[0] == cancelledSig) { + cancelledCount++; + } + } + + assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); + } + function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0xE226D5aCae908252CcA3F6CEFa577527650a9e1e; // not in address book address LINK = 0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196; // LINK on Base, not in address book diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 562de0c88..e875e821c 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -7,6 +7,7 @@ import {MiscOptimism} from 'aave-address-book/MiscOptimism.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; @@ -40,6 +41,47 @@ contract AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 ); } + function test_agentsDisabledAndRiskAdminRevoked() public { + IAgentHub hub = IAgentHub(MiscOptimism.AGENT_HUB); + uint256 count = hub.getAgentCount(); + require(count > 0, 'no agents registered'); + + executePayload(vm, address(proposal)); + + for (uint256 i = 0; i < count; i++) { + address agent = hub.getAgentAddress(i); + assertFalse(hub.isAgentEnabled(i), 'agent still enabled'); + assertFalse(AaveV3Optimism.ACL_MANAGER.isRiskAdmin(agent), 'agent still risk admin'); + } + } + + function test_robotsCancelled() public { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscOptimism.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256 agentHubRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscOptimism.AGENT_HUB_AUTOMATION) { + agentHubRobotCount++; + } + } + require(agentHubRobotCount > 0, 'no agent hub robots found'); + + vm.recordLogs(); + executePayload(vm, address(proposal)); + + Vm.Log[] memory logs = vm.getRecordedLogs(); + uint256 cancelledCount = 0; + bytes32 cancelledSig = keccak256('KeeperCancelled(uint256,address)'); + for (uint256 i = 0; i < logs.length; i++) { + if (logs[i].topics[0] == cancelledSig) { + cancelledCount++; + } + } + + assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); + } + function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0x696fB0d7D069cc0bb35a7c36115CE63E55cb9AA6; // not in address book diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 3ff41405e..1b04f965d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -7,6 +7,7 @@ import {MiscPolygon} from 'aave-address-book/MiscPolygon.sol'; import 'forge-std/Test.sol'; import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol'; import {AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from './AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol'; +import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; @@ -41,6 +42,47 @@ contract AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_ ); } + function test_agentsDisabledAndRiskAdminRevoked() public { + IAgentHub hub = IAgentHub(MiscPolygon.AGENT_HUB); + uint256 count = hub.getAgentCount(); + require(count > 0, 'no agents registered'); + + executePayload(vm, address(proposal)); + + for (uint256 i = 0; i < count; i++) { + address agent = hub.getAgentAddress(i); + assertFalse(hub.isAgentEnabled(i), 'agent still enabled'); + assertFalse(AaveV3Polygon.ACL_MANAGER.isRiskAdmin(agent), 'agent still risk admin'); + } + } + + function test_robotsCancelled() public { + IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscPolygon.AAVE_CL_ROBOT_OPERATOR); + uint256[] memory ids = operator.getKeepersList(); + + uint256 agentHubRobotCount = 0; + for (uint256 i = 0; i < ids.length; i++) { + if (operator.getKeeperInfo(ids[i]).upkeep == MiscPolygon.AGENT_HUB_AUTOMATION) { + agentHubRobotCount++; + } + } + require(agentHubRobotCount > 0, 'no agent hub robots found'); + + vm.recordLogs(); + executePayload(vm, address(proposal)); + + Vm.Log[] memory logs = vm.getRecordedLogs(); + uint256 cancelledCount = 0; + bytes32 cancelledSig = keccak256('KeeperCancelled(uint256,address)'); + for (uint256 i = 0; i < logs.length; i++) { + if (logs[i].topics[0] == cancelledSig) { + cancelledCount++; + } + } + + assertEq(cancelledCount, agentHubRobotCount, 'not all agent hub robots cancelled'); + } + function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0x08a8eea76D2395807Ce7D1FC942382515469cCA1; // not in address book From 54a8e90f858ea5fdbcd70a5e10c52b54bf081b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 15:12:28 +0900 Subject: [PATCH 15/23] use getLinkAddress() from registry on Base and BNB Co-Authored-By: Claude Sonnet 4.6 --- ...nAndOffboardingPlanForChaosLabs_20260410.t.sol | 15 ++++++--------- ...nAndOffboardingPlanForChaosLabs_20260410.t.sol | 15 ++++++--------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 061ef144d..5fab15250 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,11 +10,7 @@ import {AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; - -interface IKeeperRegistry { - // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol - function getCancellationDelay() external view returns (uint256); -} +import {IKeeperRegistry} from './IKeeperRegistry.sol'; /** * @dev Test for AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -84,7 +80,6 @@ contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0xDc21E279934fF6721CaDfDD112DAfb3261f09A2C; // not in address book - address LINK = 0x404460C6A5EdE2D891e8297795264fDe62ADBB75; // LINK on BNB, not in address book IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscBNB.AAVE_CL_ROBOT_OPERATOR); uint256[] memory ids = operator.getKeepersList(); @@ -100,16 +95,18 @@ contract AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Test executePayload(vm, address(proposal)); - uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + IKeeperRegistry registry = IKeeperRegistry(CHAINLINK_REGISTRY); + uint256 delay = registry.getCancellationDelay(); + address link = registry.getLinkAddress(); vm.roll(block.number + delay); - uint256 collectorLinkBefore = IERC20(LINK).balanceOf(address(AaveV3BNB.COLLECTOR)); + uint256 collectorLinkBefore = IERC20(link).balanceOf(address(AaveV3BNB.COLLECTOR)); for (uint256 i = 0; i < agentRobotCount; i++) { operator.withdrawLink(agentRobotIds[i]); } - uint256 collectorLinkAfter = IERC20(LINK).balanceOf(address(AaveV3BNB.COLLECTOR)); + uint256 collectorLinkAfter = IERC20(link).balanceOf(address(AaveV3BNB.COLLECTOR)); assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 9a219bf29..c58e38b3d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,11 +10,7 @@ import {AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} fro import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; - -interface IKeeperRegistry { - // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol - function getCancellationDelay() external view returns (uint256); -} +import {IKeeperRegistry} from './IKeeperRegistry.sol'; /** * @dev Test for AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -84,7 +80,6 @@ contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Tes function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0xE226D5aCae908252CcA3F6CEFa577527650a9e1e; // not in address book - address LINK = 0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196; // LINK on Base, not in address book IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscBase.AAVE_CL_ROBOT_OPERATOR); uint256[] memory ids = operator.getKeepersList(); @@ -100,16 +95,18 @@ contract AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_Tes executePayload(vm, address(proposal)); - uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + IKeeperRegistry registry = IKeeperRegistry(CHAINLINK_REGISTRY); + uint256 delay = registry.getCancellationDelay(); + address link = registry.getLinkAddress(); vm.roll(block.number + delay); - uint256 collectorLinkBefore = IERC20(LINK).balanceOf(address(AaveV3Base.COLLECTOR)); + uint256 collectorLinkBefore = IERC20(link).balanceOf(address(AaveV3Base.COLLECTOR)); for (uint256 i = 0; i < agentRobotCount; i++) { operator.withdrawLink(agentRobotIds[i]); } - uint256 collectorLinkAfter = IERC20(LINK).balanceOf(address(AaveV3Base.COLLECTOR)); + uint256 collectorLinkAfter = IERC20(link).balanceOf(address(AaveV3Base.COLLECTOR)); assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); } } From 6ceab496392fd8078e082a8bb4bb415a19bfa154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 15:14:54 +0900 Subject: [PATCH 16/23] update spec to include RISK_ADMIN revocation and robot cancellation Co-Authored-By: Claude Sonnet 4.6 --- .../OrderlyTransitionAndOffboardingPlanForChaosLabs.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index 9aa2be41f..15f7169aa 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -53,9 +53,9 @@ We believe this framework gives the DAO sufficient continuity, predictability, a ## Specification -### Oracle deactivation +### Oracle deactivation and RISK_ADMIN revocation -This AIP will disable all the agents operating on the followings V3 instances: +This AIP will disable all the agents operating on the following V3 instances and revoke their RISK_ADMIN role from the respective ACL Manager(s): - Arbitrum - Avalanche @@ -67,6 +67,10 @@ This AIP will disable all the agents operating on the followings V3 instances: - Optimism - Polygon +### Chainlink Automation robots cancellation + +The Chainlink Automation upkeeps registered under the AgentHub automation contract will be cancelled on each chain where agents are deployed. Once cancelled, the freed LINK balance can be withdrawn permissionlessly to the Aave Collector after the registry's cancellation delay (~50 blocks). + ### Stream cancelation and bulk payment The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be transfered from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) From 1b795ec4bc1fbef51a4bd27232e4ba22325e159f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 15:16:16 +0900 Subject: [PATCH 17/23] extract IKeeperRegistry to shared AIP interface and use getLinkAddress() Co-Authored-By: Claude Sonnet 4.6 --- ...nAndOffboardingPlanForChaosLabs_20260410.t.sol | 6 +----- ...nAndOffboardingPlanForChaosLabs_20260410.t.sol | 15 ++++++--------- ...nAndOffboardingPlanForChaosLabs_20260410.t.sol | 6 +----- ...nAndOffboardingPlanForChaosLabs_20260410.t.sol | 6 +----- ...nAndOffboardingPlanForChaosLabs_20260410.t.sol | 7 +------ .../IKeeperRegistry.sol | 11 +++++++++++ 6 files changed, 21 insertions(+), 30 deletions(-) create mode 100644 src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/IKeeperRegistry.sol diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index aff4579b1..a28666f9a 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,11 +10,7 @@ import {AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; - -interface IKeeperRegistry { - // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol - function getCancellationDelay() external view returns (uint256); -} +import {IKeeperRegistry} from './IKeeperRegistry.sol'; /** * @dev Test for AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index f932c040d..3b2aa5455 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,11 +10,7 @@ import {AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; - -interface IKeeperRegistry { - // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol - function getCancellationDelay() external view returns (uint256); -} +import {IKeeperRegistry} from './IKeeperRegistry.sol'; /** * @dev Test for AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 @@ -84,7 +80,6 @@ contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_2026041 function test_linkReturnedToCollectorAfterCancellation() public { address CHAINLINK_REGISTRY = 0x7f00a3Cd4590009C349192510D51F8e6312E08CB; // not in address book - address LINK = 0x5947BB275c521040051D82396192181b413227A3; // LINK.e on Avalanche, not in address book IAaveCLRobotOperator operator = IAaveCLRobotOperator(MiscAvalanche.AAVE_CL_ROBOT_OPERATOR); uint256[] memory ids = operator.getKeepersList(); @@ -100,16 +95,18 @@ contract AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_2026041 executePayload(vm, address(proposal)); - uint256 delay = IKeeperRegistry(CHAINLINK_REGISTRY).getCancellationDelay(); + IKeeperRegistry registry = IKeeperRegistry(CHAINLINK_REGISTRY); + uint256 delay = registry.getCancellationDelay(); + address link = registry.getLinkAddress(); vm.roll(block.number + delay); - uint256 collectorLinkBefore = IERC20(LINK).balanceOf(address(AaveV3Avalanche.COLLECTOR)); + uint256 collectorLinkBefore = IERC20(link).balanceOf(address(AaveV3Avalanche.COLLECTOR)); for (uint256 i = 0; i < agentRobotCount; i++) { operator.withdrawLink(agentRobotIds[i]); } - uint256 collectorLinkAfter = IERC20(LINK).balanceOf(address(AaveV3Avalanche.COLLECTOR)); + uint256 collectorLinkAfter = IERC20(link).balanceOf(address(AaveV3Avalanche.COLLECTOR)); assertGt(collectorLinkAfter, collectorLinkBefore, 'LINK not returned to collector'); } } diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index a3fed2c38..71cd62526 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -11,11 +11,7 @@ import {AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; - -interface IKeeperRegistry { - // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol - function getCancellationDelay() external view returns (uint256); -} +import {IKeeperRegistry} from './IKeeperRegistry.sol'; /** * @dev Test for AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index e875e821c..0776dccb0 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,11 +10,7 @@ import {AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; - -interface IKeeperRegistry { - // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol - function getCancellationDelay() external view returns (uint256); -} +import {IKeeperRegistry} from './IKeeperRegistry.sol'; /** * @dev Test for AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 1b04f965d..007dc14e1 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,12 +10,7 @@ import {AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; - -interface IKeeperRegistry { - // https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol - function getCancellationDelay() external view returns (uint256); - function getLinkAddress() external view returns (address); -} +import {IKeeperRegistry} from './IKeeperRegistry.sol'; /** * @dev Test for AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/IKeeperRegistry.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/IKeeperRegistry.sol new file mode 100644 index 000000000..2b3d2017f --- /dev/null +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/IKeeperRegistry.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +// Used only by test files in this AIP folder to interact with the Chainlink Automation v2.1 +// registry deployed on each chain. Source: +// https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol +interface IKeeperRegistry { + function getCancellationDelay() external view returns (uint256); + + function getLinkAddress() external view returns (address); +} From 2f8042f08f1ec437a456bc66cf1444539e6c7487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Mon, 20 Apr 2026 15:17:28 +0900 Subject: [PATCH 18/23] fix grammar and spelling in AIP description Co-Authored-By: Claude Sonnet 4.6 --- .../OrderlyTransitionAndOffboardingPlanForChaosLabs.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index 15f7169aa..795187e7d 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -19,13 +19,13 @@ As part of this transition, Chaos Labs will cancel its outstanding stream and tr The offboarding process will run for thirty days from the approval of this proposal. -During the transition window, we will dedicate resources to completing outstanding analyses, finalizing any in-progress deliverables, preparing handoff materials, and supporting an orderly wind-down of responsibilities. Plasma PT oracles will be turned off on June 18th +During the transition window, we will dedicate resources to completing outstanding analyses, finalizing any in-progress deliverables, preparing handoff materials, and supporting an orderly wind-down of responsibilities. Plasma PT oracles will be turned off on June 18th. ## Continuity of Risk Management The DAO is in a position to transition the majority of ongoing risk-management responsibilities without significant delay. LlamaRisk already exists as a secondary risk provider, and has [stated](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397) they are fully ready and prepared to take on all risk management functionality. With the key rotation finalized at their [request](https://governance.aave.com/t/llamarisk-ensuring-continuity-of-aaves-risk-management/24397#p-62730-scope-we-will-absorb-4), they’ll be able to update parameters manually via the risk steward. -In summary, the addresses associated with the current 2/2 multisig for manual Risk Steward purposes doesn't change, the signers will be rotated from Chaos Labs and BGD to Aave Labs and LlamaRisk, as requested by both, to ensure operational continuity. +In summary, the addresses associated with the current 2/2 multisig for manual Risk Steward purposes do not change, the signers will be rotated from Chaos Labs and BGD to Aave Labs and LlamaRisk, as requested by both, to ensure operational continuity. ## Risk Oracle Transition @@ -47,7 +47,7 @@ In connection with this transition, 30 days’ worth of stream will be transferr - all remaining outstanding work will then be brought to completion before departure; - Supply Cap, Borrow Cap, Interest Rate Risk Oracles, and PT Risk Oracles for existing PTs will be shut down immediately; - the outstanding stream will be canceled immediately; -- 30 days worth of revenue will serve as the final transition-period compensation. +- 30 days' worth of revenue will serve as the final transition-period compensation. We believe this framework gives the DAO sufficient continuity, predictability, and time to transfer responsibilities in an orderly manner. @@ -71,9 +71,9 @@ This AIP will disable all the agents operating on the following V3 instances and The Chainlink Automation upkeeps registered under the AgentHub automation contract will be cancelled on each chain where agents are deployed. Once cancelled, the freed LINK balance can be withdrawn permissionlessly to the Aave Collector after the registry's cancellation delay (~50 blocks). -### Stream cancelation and bulk payment +### Stream cancellation and bulk payment -The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be transfered from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) +The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be transferred from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) ## References From 02ad1931e7a6380f5745ca61fc3b8636b1ccfbb4 Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Tue, 21 Apr 2026 19:14:59 +0200 Subject: [PATCH 19/23] 30 days from post date --- ...boardingPlanForChaosLabs_20260410_after.md | 20 +++++++++---------- ...ndOffboardingPlanForChaosLabs_20260410.sol | 18 ++++++++++------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index d7496cec6..9f28e55fd 100644 --- a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -30,14 +30,14 @@ | index | event | | --- | --- | -| 11 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | -| 12 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 13 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | -| 14 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 15 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | -| 16 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | -| 18 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 209,589.0410 [209589041095890409440000, 18 decimals]) | -| 19 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 202,588.6078 [202588607836049978102763, 18 decimals], index: 1034554920607903635566518116) | +| 9 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | +| 10 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 11 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | +| 12 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 13 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | +| 14 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | +| 16 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 191,213.2087 [191213208713850835752775, 18 decimals]) | +| 17 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 184,826.5422 [184826542221165125566597, 18 decimals], index: 1034554920607903635566518116) | #### 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c (AaveV2Ethereum.COLLECTOR, AaveV2EthereumAMM.COLLECTOR, AaveV2EthereumArc.COLLECTOR, AaveV3Ethereum.COLLECTOR, AaveV3EthereumEtherFi.COLLECTOR, AaveV3EthereumLido.COLLECTOR) @@ -90,8 +90,8 @@ | slot | previous value | new value | | --- | --- | --- | -| 0x0730d3c6347fc0f2d0e70153979d12e28f2c3b47ed9bae8312e8e15d58263dcf | 0x000000000357a24426d48463347cf676000000000000000000c1dbe74bfeffdc | 0x000000000357c3869fba10c45f3c5f640000000000002f04b5bac37fff06bb38 | -| 0x14a553e31736f19e3e380cf55bfb2f82dfd6d880cd07235affb68d8d3e0cac4d | 0x000000000357ba19bbeea687faf930e10000000000059477fc474ca8738cc908 | 0x000000000357c3869fba10c45f3c5f640000000000056573474e650fc0850dac | +| 0x0730d3c6347fc0f2d0e70153979d12e28f2c3b47ed9bae8312e8e15d58263dcf | 0x000000000357a24426d48463347cf676000000000000000000c1dbe74bfeffdc | 0x000000000357c3869fba10c45f3c5f640000000000002b41d38d4a381721a7d2 | +| 0x14a553e31736f19e3e380cf55bfb2f82dfd6d880cd07235affb68d8d3e0cac4d | 0x000000000357ba19bbeea687faf930e10000000000059477fc474ca8738cc908 | 0x000000000357c3869fba10c45f3c5f640000000000056936297bde57a86a2112 | ### 0x1cdf8879ec8be012ba959eb515b11008e0cb6323 (MiscEthereum.AAVE_CL_ROBOT_OPERATOR) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 0cb35cb33..bd62c454b 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -20,6 +20,7 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 address public constant CHAOS_LABS = 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0; // stream 100073 recipient uint256 public constant PREVIOUS_STREAM = 100073; uint256 public constant AMOUNT_PER_SECOND = 80859969558599695; // from stream 100073 + uint256 public constant FORUM_POST_TIMESTAMP = 1775606400; // from stream 100073 function execute() external { DelistAllAgents.delist( @@ -31,18 +32,21 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 // chaos labs mentioned cutting the stream themselves try AaveV3EthereumLido.COLLECTOR.cancelStream(PREVIOUS_STREAM) {} catch {} - // bulk transfer - AaveV3EthereumLido.COLLECTOR.transfer( - IERC20(AaveV3EthereumLidoAssets.GHO_A_TOKEN), - CHAOS_LABS, - AMOUNT_PER_SECOND * 30 days - ); - // withdrawLink() is permissionless and can be called by anyone 50 blocks after execution // (CANCELLATION_DELAY constant in KeeperRegistryBase2_1: https://github.com/smartcontractkit/chainlink/blob/contracts-v1.3.0/contracts/src/v0.8/automation/v2_1/KeeperRegistryBase2_1.sol) CancelAgentRobots.cancel( MiscEthereum.AAVE_CL_ROBOT_OPERATOR, MiscEthereum.AGENT_HUB_AUTOMATION ); + + if ( FORUM_POST_TIMESTAMP + 30 days > block.timestamp ) { + uint256 second_left = (FORUM_POST_TIMESTAMP + 30 days) - block.timestamp; + // bulk transfer + AaveV3EthereumLido.COLLECTOR.transfer( + IERC20(AaveV3EthereumLidoAssets.GHO_A_TOKEN), + CHAOS_LABS, + AMOUNT_PER_SECOND * second_left + ); + } } } From fb221c54b98f47d4e48c3e196821ca85fc57d861 Mon Sep 17 00:00:00 2001 From: Rozengarden Date: Tue, 21 Apr 2026 19:41:54 +0200 Subject: [PATCH 20/23] move IKeepers --- ...boardingPlanForChaosLabs_20260410_after.md | 36 +++++++++---------- ...OffboardingPlanForChaosLabs_20260410.t.sol | 2 +- ...OffboardingPlanForChaosLabs_20260410.t.sol | 2 +- ...OffboardingPlanForChaosLabs_20260410.t.sol | 2 +- ...OffboardingPlanForChaosLabs_20260410.t.sol | 2 +- ...OffboardingPlanForChaosLabs_20260410.t.sol | 2 +- ...OffboardingPlanForChaosLabs_20260410.t.sol | 2 +- ...OffboardingPlanForChaosLabs_20260410.t.sol | 2 +- .../IKeeperRegistry.sol | 0 9 files changed, 25 insertions(+), 25 deletions(-) rename src/{20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs => interfaces}/IKeeperRegistry.sol (100%) diff --git a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md index 9f28e55fd..dd62afd67 100644 --- a/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md +++ b/diffs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_before_AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410_after.md @@ -30,14 +30,14 @@ | index | event | | --- | --- | -| 9 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | -| 10 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 11 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | -| 12 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | -| 13 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | -| 14 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | -| 16 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 191,213.2087 [191213208713850835752775, 18 decimals]) | -| 17 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 184,826.5422 [184826542221165125566597, 18 decimals], index: 1034554920607903635566518116) | +| 11 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals]) | +| 12 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, value: 300.2531 [300253188884955194394, 18 decimals], balanceIncrease: 300253188884955194394, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 13 | Transfer(from: 0x0000000000000000000000000000000000000000, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals]) | +| 14 | Mint(caller: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, onBehalfOf: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 0.0000 [8570441851817, 18 decimals], balanceIncrease: 8570441851817, index: 1.0345 [1034554920607903635566518116, 27 decimals]) | +| 15 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 20,121.5182 [20121518264840182502580, 18 decimals]) | +| 16 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 19,449.4442 [19449444262482261092209, 18 decimals], index: 1034554920607903635566518116) | +| 28 | Transfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 191,213.2087 [191213208713850835752775, 18 decimals]) | +| 29 | BalanceTransfer(from: 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c, to: 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0, value: 184,826.5422 [184826542221165125566597, 18 decimals], index: 1034554920607903635566518116) | #### 0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c (AaveV2Ethereum.COLLECTOR, AaveV2EthereumAMM.COLLECTOR, AaveV2EthereumArc.COLLECTOR, AaveV3Ethereum.COLLECTOR, AaveV3EthereumEtherFi.COLLECTOR, AaveV3EthereumLido.COLLECTOR) @@ -49,21 +49,21 @@ | index | event | | --- | --- | -| 20 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | -| 22 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | -| 24 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | -| 26 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | -| 28 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x90765013000000000000000000000000c37273507713b02376b94a0a26240395`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 18 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 20 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 22 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 24 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | +| 26 | topics: `0x91cb3bb75cfbd718bbfccc56b7f53d92d7048ef4ca39a3b7b7c6d4af1f791181`, `0x90765013000000000000000000000000c37273507713b02376b94a0a26240395`, `0x00000000000000000000000000000000000000000000000000000000017b2ef9`, data: `0x` | #### 0x1cDF8879eC8bE012bA959EB515b11008E0cb6323 (MiscEthereum.AAVE_CL_ROBOT_OPERATOR) | index | event | | --- | --- | -| 21 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | -| 23 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | -| 25 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | -| 27 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | -| 29 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x90765013000000000000000000000000c37273507713b02376b94a0a26240395`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 19 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xbae9d69b0000000000000000000000000b0c8548f8463c87227e3c11f4df8518`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 21 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x201138c8000000000000000000000000c6e345db5342f834548623148fe47437`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 23 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x8b6398d2000000000000000000000000e924fdff93b2e4ca38a8ef69f899ae3b`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 25 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0xd12c49b90000000000000000000000009fc3c180f94eaf56fd8a0cc1c4db7a62`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | +| 27 | topics: `0xa6bb2429c0c6c05994df1d2322ec293ce00940a916116c00b779052c8806e45e`, `0x90765013000000000000000000000000c37273507713b02376b94a0a26240395`, `0x0000000000000000000000005cfc96c396325724d49dff95da103feddbf48e05`, data: `0x` | #### 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A (AaveV2Ethereum.POOL_ADMIN, AaveV2EthereumAMM.POOL_ADMIN, AaveV3Ethereum.ACL_ADMIN, AaveV3EthereumEtherFi.ACL_ADMIN, AaveV3EthereumHorizon.ACL_ADMIN, AaveV3EthereumLido.ACL_ADMIN, GovernanceV3Ethereum.EXECUTOR_LVL_1) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index a28666f9a..180bbe101 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,7 +10,7 @@ import {AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; -import {IKeeperRegistry} from './IKeeperRegistry.sol'; +import {IKeeperRegistry} from '../interfaces/IKeeperRegistry.sol'; /** * @dev Test for AaveV3Arbitrum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 3b2aa5455..c29830197 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,7 +10,7 @@ import {AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; -import {IKeeperRegistry} from './IKeeperRegistry.sol'; +import {IKeeperRegistry} from '../interfaces/IKeeperRegistry.sol'; /** * @dev Test for AaveV3Avalanche_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 5fab15250..74f5e6806 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,7 +10,7 @@ import {AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} from import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; -import {IKeeperRegistry} from './IKeeperRegistry.sol'; +import {IKeeperRegistry} from '../interfaces/IKeeperRegistry.sol'; /** * @dev Test for AaveV3BNB_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index c58e38b3d..ee271a76e 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,7 +10,7 @@ import {AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} fro import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; -import {IKeeperRegistry} from './IKeeperRegistry.sol'; +import {IKeeperRegistry} from '../interfaces/IKeeperRegistry.sol'; /** * @dev Test for AaveV3Base_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 71cd62526..d890cae97 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -11,7 +11,7 @@ import {AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; -import {IKeeperRegistry} from './IKeeperRegistry.sol'; +import {IKeeperRegistry} from '../interfaces/IKeeperRegistry.sol'; /** * @dev Test for AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 0776dccb0..fb119c258 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,7 +10,7 @@ import {AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; -import {IKeeperRegistry} from './IKeeperRegistry.sol'; +import {IKeeperRegistry} from '../interfaces/IKeeperRegistry.sol'; /** * @dev Test for AaveV3Optimism_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol index 007dc14e1..db87ccf0e 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.t.sol @@ -10,7 +10,7 @@ import {AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410} import {IAgentHub} from '../interfaces/chaos-agents/IAgentHub.sol'; import {IAaveCLRobotOperator} from '../interfaces/IAaveCLRobotOperator.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/IERC20.sol'; -import {IKeeperRegistry} from './IKeeperRegistry.sol'; +import {IKeeperRegistry} from '../interfaces/IKeeperRegistry.sol'; /** * @dev Test for AaveV3Polygon_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/IKeeperRegistry.sol b/src/interfaces/IKeeperRegistry.sol similarity index 100% rename from src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/IKeeperRegistry.sol rename to src/interfaces/IKeeperRegistry.sol From 4617e1468a6ada9e069c3df6ab81d4601635140a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Wed, 22 Apr 2026 18:34:30 +0900 Subject: [PATCH 21/23] fix: AIP description --- ...rlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol | 4 ++-- .../OrderlyTransitionAndOffboardingPlanForChaosLabs.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index bd62c454b..fbbfc7874 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -20,7 +20,7 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 address public constant CHAOS_LABS = 0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0; // stream 100073 recipient uint256 public constant PREVIOUS_STREAM = 100073; uint256 public constant AMOUNT_PER_SECOND = 80859969558599695; // from stream 100073 - uint256 public constant FORUM_POST_TIMESTAMP = 1775606400; // from stream 100073 + uint256 public constant FORUM_POST_TIMESTAMP = 1775606400; function execute() external { DelistAllAgents.delist( @@ -39,7 +39,7 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 MiscEthereum.AGENT_HUB_AUTOMATION ); - if ( FORUM_POST_TIMESTAMP + 30 days > block.timestamp ) { + if (FORUM_POST_TIMESTAMP + 30 days > block.timestamp) { uint256 second_left = (FORUM_POST_TIMESTAMP + 30 days) - block.timestamp; // bulk transfer AaveV3EthereumLido.COLLECTOR.transfer( diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index 795187e7d..4187e1bb5 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -13,11 +13,11 @@ In contrast to recent service provider departures, Aave has a secondary risk pro As such, our intent is to complete this transition within 30 days. During that period, we will continue supporting the DAO in a clearly defined capacity, complete the handoff of ongoing responsibilities, and ensure that remaining operational dependencies are addressed in an orderly manner. -As part of this transition, Chaos Labs will cancel its outstanding stream and transfer 30 days’ worth of stream funding from the Aave Treasury to Chaos Labs. +As part of this transition, Chaos Labs will cancel its outstanding stream and transfer the remaining stream funding corresponding to the 30-day transition period starting from the forum post date (April 8, 2026). ## Transition Timeline -The offboarding process will run for thirty days from the approval of this proposal. +The offboarding process will run for thirty days from the date of the forum post (April 8, 2026). During the transition window, we will dedicate resources to completing outstanding analyses, finalizing any in-progress deliverables, preparing handoff materials, and supporting an orderly wind-down of responsibilities. Plasma PT oracles will be turned off on June 18th. @@ -39,7 +39,7 @@ Parameter management for existing PT assets will be executed through LlamaRisk Chaos Labs will immediately cancel its outstanding stream 100073. Stream 100015 is already being canceled due to a stream misconfiguration. We will refund the portion of AAVE tokens corresponding to the remaining stream duration. -In connection with this transition, 30 days’ worth of stream will be transferred to Chaos Labs as the final compensation associated with the support and wind-down period described in this proposal. This is intended to align compensation with the defined transition window while avoiding a prolonged or ambiguous tail period. +In connection with this transition, the remaining portion of the 30-day stream period (calculated from the forum post date of April 8, 2026) will be transferred to Chaos Labs as the final compensation associated with the support and wind-down period described in this proposal. This is intended to align compensation with the defined transition window while avoiding a prolonged or ambiguous tail period. ## Conclusion From 2ead92b86d4c4d8c61d1f85659a9d10cc83184ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Thu, 23 Apr 2026 10:09:15 +0900 Subject: [PATCH 22/23] fix: lint --- ...OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index 892337e3e..6a417bb86 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -15,6 +15,6 @@ contract AaveV3Linea_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 is IProposalGenericExecutor { function execute() external { - DelistAllAgents.delist(MiscLinea.AGENT_HUB, address(AaveV3Linea.ACL_MANAGER)); + DelistAllAgents.delist(MiscLinea.AGENT_HUB, address(AaveV3Linea.ACL_MANAGER)); } } From ec5a6da9c5bb8c8b83fd7c27f3124d1edec4db0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nandy=20B=C3=A2?= Date: Wed, 29 Apr 2026 11:29:52 +0900 Subject: [PATCH 23/23] fix: address PR review feedback on wording and code comment Co-Authored-By: Claude Sonnet 4.6 --- ...derlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol | 1 + .../OrderlyTransitionAndOffboardingPlanForChaosLabs.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol index fbbfc7874..44474d657 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410.sol @@ -39,6 +39,7 @@ contract AaveV3Ethereum_OrderlyTransitionAndOffboardingPlanForChaosLabs_20260410 MiscEthereum.AGENT_HUB_AUTOMATION ); + // Payment only if executed within the 30-day transition window (ends 2026-05-08) if (FORUM_POST_TIMESTAMP + 30 days > block.timestamp) { uint256 second_left = (FORUM_POST_TIMESTAMP + 30 days) - block.timestamp; // bulk transfer diff --git a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md index 4187e1bb5..631ff8d4a 100644 --- a/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md +++ b/src/20260410_Multi_OrderlyTransitionAndOffboardingPlanForChaosLabs/OrderlyTransitionAndOffboardingPlanForChaosLabs.md @@ -47,7 +47,7 @@ In connection with this transition, the remaining portion of the 30-day stream p - all remaining outstanding work will then be brought to completion before departure; - Supply Cap, Borrow Cap, Interest Rate Risk Oracles, and PT Risk Oracles for existing PTs will be shut down immediately; - the outstanding stream will be canceled immediately; -- 30 days' worth of revenue will serve as the final transition-period compensation. +- the remaining portion of the 30-day transition period, calculated from April 8, 2026 until May 8, 2026, will serve as the final transition-period compensation. We believe this framework gives the DAO sufficient continuity, predictability, and time to transfer responsibilities in an orderly manner. @@ -73,7 +73,7 @@ The Chainlink Automation upkeeps registered under the AgentHub automation contra ### Stream cancellation and bulk payment -The stream 100073 will be canceled (if not already done) and an amount equivalent to 30 days of said stream will be transferred from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) +The stream 100073 will be canceled (if not already done) and an amount equivalent to the remaining transition period (from proposal execution to April 8 + 30 days) will be transferred from the collector to the following Chaos Labs operated wallet: [0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0](https://etherscan.io/address/0xbC540e0729B732fb14afA240aA5A047aE9ba7dF0) ## References