Repository: BalancerMaxis/multisig-ops
Pull request #2018: fix: consider erc4626 asset balance
Author: login: gosuto-inzasheru
Created: 2025-05-09T14:55:31Z | Merged: 2025-05-26T11:54:20Z



Diff:
diff --git a/MaxiOps/v3_fees/unstuck_tokens_arbitrum.json b/MaxiOps/v3_fees/unstuck_tokens_arbitrum.json
deleted file mode 100644
index ffe4c66ee..000000000
--- a/MaxiOps/v3_fees/unstuck_tokens_arbitrum.json
+++ /dev/null
@@ -1,134 +0,0 @@
-{
-  "chainId": "42161",
-  "meta": {
-    "name": "Transactions Batch",
-    "createdFromSafeAddress": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-  },
-  "transactions": [
-    {
-      "to": "0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0x657e8c867d8b37dcc18fa4caead9c45eb088c642",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0x7f6501d3b98ee91f9b9535e4b0ac710fb0f9e0bc",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0xa6d12574efb239fc1d2099732bd8b5dc6306897f",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0xe98fc055c99decd8da0c111b090885d5d15c774e",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0xd089b4cb88dacf4e27be869a00e9f7e2e3c18193",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    }
-  ]
-}
diff --git a/MaxiOps/v3_fees/unstuck_tokens_arbitrum.report.txt b/MaxiOps/v3_fees/unstuck_tokens_arbitrum.report.txt
deleted file mode 100644
index b7cdf1899..000000000
--- a/MaxiOps/v3_fees/unstuck_tokens_arbitrum.report.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-FILENAME: `MaxiOps/v3_fees/unstuck_tokens_arbitrum.json`
-MULTISIG: `multisigs/maxi_omni (arbitrum:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e)`
-COMMIT: `a703296116ca085a2c555ce22eab71dce4f2ac67`
-CHAIN(S): `arbitrum`
-TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/7ac6520b-a9d8-410f-afb4-84cd285db7b2)
-
-```
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
-| fx_name     | to                                                                                            | value | inputs                                                                 | bip_number | tx_index |
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
-| cancelOrder | 0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x657e8c867d8b37dcc18fa4caead9c45eb088c642 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x7f6501d3b98ee91f9b9535e4b0ac710fb0f9e0bc (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0xa6d12574efb239fc1d2099732bd8b5dc6306897f (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0xe98fc055c99decd8da0c111b090885d5d15c774e (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0xbC169a08cBdCDB218d91Cd945D29B59F78c96B77 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0xd089b4cb88dacf4e27be869a00e9f7e2e3c18193 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
-```
diff --git a/MaxiOps/v3_fees/unstuck_tokens_base.json b/MaxiOps/v3_fees/unstuck_tokens_base.json
index 18b287a77..384ac32d5 100644
--- a/MaxiOps/v3_fees/unstuck_tokens_base.json
+++ b/MaxiOps/v3_fees/unstuck_tokens_base.json
@@ -26,82 +26,7 @@
         "payable": false
       },
       "contractInputsValues": {
-        "tokenIn": "0x88b1cd4b430d95b406e382c3cdbae54697a0286e",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0xc768c589647798a6ee01a91fde98ef2ed046dbd6",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0x0830820d1a9aa1554364752d6d8f55c836871b74",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0x4200000000000000000000000000000000000006",
+        "tokenIn": "0x2531ec1720E5d1bC82052585271D4BE3f43E392F",
         "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
       }
     }
diff --git a/MaxiOps/v3_fees/unstuck_tokens_base.report.txt b/MaxiOps/v3_fees/unstuck_tokens_base.report.txt
index d1575deef..072e366aa 100644
--- a/MaxiOps/v3_fees/unstuck_tokens_base.report.txt
+++ b/MaxiOps/v3_fees/unstuck_tokens_base.report.txt
@@ -1,8 +1,8 @@
 FILENAME: `MaxiOps/v3_fees/unstuck_tokens_base.json`
 MULTISIG: `multisigs/maxi_omni (base:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e)`
-COMMIT: `a703296116ca085a2c555ce22eab71dce4f2ac67`
+COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
 CHAIN(S): `base`
-TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/b84e2bae-7874-4934-a0b5-79c0cd68fb4e)
+TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/46530f7f-ca1d-4219-af43-406edc7dd949)
 
 ```
 +-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
@@ -10,31 +10,7 @@ TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/b84e2bae-7874-4
 +-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
 | cancelOrder | 0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
 |             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x88b1cd4b430d95b406e382c3cdbae54697a0286e (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0xc768c589647798a6ee01a91fde98ef2ed046dbd6 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x0830820d1a9aa1554364752d6d8f55c836871b74 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x4200000000000000000000000000000000000006 (N/A)"                 |            |          |
+|             |                                                                                               |       |     "0x2531ec1720E5d1bC82052585271D4BE3f43E392F (N/A)"                 |            |          |
 |             |                                                                                               |       |   ],                                                                   |            |          |
 |             |                                                                                               |       |   "receiver": [                                                        |            |          |
 |             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
diff --git a/MaxiOps/v3_fees/unstuck_tokens_gnosis.json b/MaxiOps/v3_fees/unstuck_tokens_gnosis.json
index c611001ce..1120a079c 100644
--- a/MaxiOps/v3_fees/unstuck_tokens_gnosis.json
+++ b/MaxiOps/v3_fees/unstuck_tokens_gnosis.json
@@ -6,7 +6,7 @@
   },
   "transactions": [
     {
-      "to": "0xAE563E3f8219521950555F5962419C8919758Ea2",
+      "to": "0x7D92FCDC8Aa56057D5E318B2881F2167c67FdAfA",
       "value": "0",
       "data": null,
       "contractMethod": {
@@ -26,32 +26,7 @@
         "payable": false
       },
       "contractInputsValues": {
-        "tokenIn": "0x773cda0cade2a3d86e6d4e30699d40bb95174ff2",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0xAE563E3f8219521950555F5962419C8919758Ea2",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0x7c16f0185a26db0ae7a9377f23bc18ea7ce5d644",
+        "tokenIn": "0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1",
         "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
       }
     }
diff --git a/MaxiOps/v3_fees/unstuck_tokens_gnosis.report.txt b/MaxiOps/v3_fees/unstuck_tokens_gnosis.report.txt
index 5910d5d82..7f66f0a01 100644
--- a/MaxiOps/v3_fees/unstuck_tokens_gnosis.report.txt
+++ b/MaxiOps/v3_fees/unstuck_tokens_gnosis.report.txt
@@ -1,28 +1,20 @@
 FILENAME: `MaxiOps/v3_fees/unstuck_tokens_gnosis.json`
 MULTISIG: `multisigs/maxi_omni (gnosis:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e)`
-COMMIT: `a703296116ca085a2c555ce22eab71dce4f2ac67`
+COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
 CHAIN(S): `gnosis`
-TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/ed0678a5-be77-47ff-903b-72f96db7a6c3)
+TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/a1946a08-f6dc-49db-8e91-4aa80cec7a22)
 
 ```
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
-| fx_name     | to                                                                                            | value | inputs                                                                 | bip_number | tx_index |
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
-| cancelOrder | 0xAE563E3f8219521950555F5962419C8919758Ea2 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x773cda0cade2a3d86e6d4e30699d40bb95174ff2 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0xAE563E3f8219521950555F5962419C8919758Ea2 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x7c16f0185a26db0ae7a9377f23bc18ea7ce5d644 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
++-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
+| fx_name     | to                                                                                                           | value | inputs                                                                 | bip_number | tx_index |
++-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
+| cancelOrder | 0x7D92FCDC8Aa56057D5E318B2881F2167c67FdAfA (20250507-v3-erc4626-cow-swap-fee-burner/ERC4626CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
+|             |                                                                                                              |       |   "tokenIn": [                                                         |            |          |
+|             |                                                                                                              |       |     "0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1 (N/A)"                 |            |          |
+|             |                                                                                                              |       |   ],                                                                   |            |          |
+|             |                                                                                                              |       |   "receiver": [                                                        |            |          |
+|             |                                                                                                              |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
+|             |                                                                                                              |       |   ]                                                                    |            |          |
+|             |                                                                                                              |       | }                                                                      |            |          |
++-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
 ```
diff --git a/MaxiOps/v3_fees/unstuck_tokens_mainnet.json b/MaxiOps/v3_fees/unstuck_tokens_mainnet.json
index 04ac51775..e07c0001b 100644
--- a/MaxiOps/v3_fees/unstuck_tokens_mainnet.json
+++ b/MaxiOps/v3_fees/unstuck_tokens_mainnet.json
@@ -6,7 +6,7 @@
   },
   "transactions": [
     {
-      "to": "0x0E800D8d2E8b4694610AEdc385Aa6D763492B106",
+      "to": "0x45fB5aF0a1aD80Ea16C803146eb81844D9972373",
       "value": "0",
       "data": null,
       "contractMethod": {
@@ -26,82 +26,7 @@
         "payable": false
       },
       "contractInputsValues": {
-        "tokenIn": "0x7Bc3485026Ac48b6cf9BaF0A377477Fff5703Af8",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0x0E800D8d2E8b4694610AEdc385Aa6D763492B106",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0xC71Ea051a5F82c67ADcF634c36FFE6334793D24C",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0x0E800D8d2E8b4694610AEdc385Aa6D763492B106",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0xD4fa2D31b7968E448877f69A96DE69f5de8cD23E",
-        "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
-      }
-    },
-    {
-      "to": "0x0E800D8d2E8b4694610AEdc385Aa6D763492B106",
-      "value": "0",
-      "data": null,
-      "contractMethod": {
-        "inputs": [
-          {
-            "internalType": "contract IERC20",
-            "name": "tokenIn",
-            "type": "address"
-          },
-          {
-            "internalType": "address",
-            "name": "receiver",
-            "type": "address"
-          }
-        ],
-        "name": "cancelOrder",
-        "payable": false
-      },
-      "contractInputsValues": {
-        "tokenIn": "0x775F661b0bD1739349b9A2A3EF60be277c5d2D29",
+        "tokenIn": "0x8238884Ec9668Ef77B90C6dfF4D1a9F4F4823BFe",
         "receiver": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e"
       }
     }
diff --git a/MaxiOps/v3_fees/unstuck_tokens_mainnet.report.txt b/MaxiOps/v3_fees/unstuck_tokens_mainnet.report.txt
index 58ad5789b..24f1581f6 100644
--- a/MaxiOps/v3_fees/unstuck_tokens_mainnet.report.txt
+++ b/MaxiOps/v3_fees/unstuck_tokens_mainnet.report.txt
@@ -1,44 +1,20 @@
 FILENAME: `MaxiOps/v3_fees/unstuck_tokens_mainnet.json`
 MULTISIG: `multisigs/maxi_omni (mainnet:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e)`
-COMMIT: `a703296116ca085a2c555ce22eab71dce4f2ac67`
+COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
 CHAIN(S): `mainnet`
-TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/df1de750-c8c1-4710-ad3e-0111d9fcebce)
+TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/5db38119-563b-47fa-94f6-5fd25bb3265e)
 
 ```
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
-| fx_name     | to                                                                                            | value | inputs                                                                 | bip_number | tx_index |
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
-| cancelOrder | 0x0E800D8d2E8b4694610AEdc385Aa6D763492B106 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x7Bc3485026Ac48b6cf9BaF0A377477Fff5703Af8 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0x0E800D8d2E8b4694610AEdc385Aa6D763492B106 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0xC71Ea051a5F82c67ADcF634c36FFE6334793D24C (tokens/waEthLidoGHO)" |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0x0E800D8d2E8b4694610AEdc385Aa6D763492B106 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0xD4fa2D31b7968E448877f69A96DE69f5de8cD23E (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-| cancelOrder | 0x0E800D8d2E8b4694610AEdc385Aa6D763492B106 (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
-|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
-|             |                                                                                               |       |     "0x775F661b0bD1739349b9A2A3EF60be277c5d2D29 (N/A)"                 |            |          |
-|             |                                                                                               |       |   ],                                                                   |            |          |
-|             |                                                                                               |       |   "receiver": [                                                        |            |          |
-|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
-|             |                                                                                               |       |   ]                                                                    |            |          |
-|             |                                                                                               |       | }                                                                      |            |          |
-+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
++-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
+| fx_name     | to                                                                                                           | value | inputs                                                                 | bip_number | tx_index |
++-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
+| cancelOrder | 0x45fB5aF0a1aD80Ea16C803146eb81844D9972373 (20250507-v3-erc4626-cow-swap-fee-burner/ERC4626CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
+|             |                                                                                                              |       |   "tokenIn": [                                                         |            |          |
+|             |                                                                                                              |       |     "0x8238884Ec9668Ef77B90C6dfF4D1a9F4F4823BFe (N/A)"                 |            |          |
+|             |                                                                                                              |       |   ],                                                                   |            |          |
+|             |                                                                                                              |       |   "receiver": [                                                        |            |          |
+|             |                                                                                                              |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
+|             |                                                                                                              |       |   ]                                                                    |            |          |
+|             |                                                                                                              |       | }                                                                      |            |          |
++-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
 ```
diff --git a/action-scripts/abis/ERC4626.json b/action-scripts/abis/ERC4626.json
new file mode 100644
index 000000000..d9f7c4a1c
--- /dev/null
+++ b/action-scripts/abis/ERC4626.json
@@ -0,0 +1,795 @@
+[
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "spender",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "allowance",
+        "type": "uint256"
+      },
+      {
+        "internalType": "uint256",
+        "name": "needed",
+        "type": "uint256"
+      }
+    ],
+    "name": "ERC20InsufficientAllowance",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "sender",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "balance",
+        "type": "uint256"
+      },
+      {
+        "internalType": "uint256",
+        "name": "needed",
+        "type": "uint256"
+      }
+    ],
+    "name": "ERC20InsufficientBalance",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "approver",
+        "type": "address"
+      }
+    ],
+    "name": "ERC20InvalidApprover",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      }
+    ],
+    "name": "ERC20InvalidReceiver",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "sender",
+        "type": "address"
+      }
+    ],
+    "name": "ERC20InvalidSender",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "spender",
+        "type": "address"
+      }
+    ],
+    "name": "ERC20InvalidSpender",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      },
+      {
+        "internalType": "uint256",
+        "name": "max",
+        "type": "uint256"
+      }
+    ],
+    "name": "ERC4626ExceededMaxDeposit",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      },
+      {
+        "internalType": "uint256",
+        "name": "max",
+        "type": "uint256"
+      }
+    ],
+    "name": "ERC4626ExceededMaxMint",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      },
+      {
+        "internalType": "uint256",
+        "name": "max",
+        "type": "uint256"
+      }
+    ],
+    "name": "ERC4626ExceededMaxRedeem",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      },
+      {
+        "internalType": "uint256",
+        "name": "max",
+        "type": "uint256"
+      }
+    ],
+    "name": "ERC4626ExceededMaxWithdraw",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "token",
+        "type": "address"
+      }
+    ],
+    "name": "SafeERC20FailedOperation",
+    "type": "error"
+  },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      },
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "spender",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "value",
+        "type": "uint256"
+      }
+    ],
+    "name": "Approval",
+    "type": "event"
+  },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "sender",
+        "type": "address"
+      },
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      }
+    ],
+    "name": "Deposit",
+    "type": "event"
+  },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "from",
+        "type": "address"
+      },
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "to",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "value",
+        "type": "uint256"
+      }
+    ],
+    "name": "Transfer",
+    "type": "event"
+  },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "sender",
+        "type": "address"
+      },
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      },
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      }
+    ],
+    "name": "Withdraw",
+    "type": "event"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      },
+      {
+        "internalType": "address",
+        "name": "spender",
+        "type": "address"
+      }
+    ],
+    "name": "allowance",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "spender",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "value",
+        "type": "uint256"
+      }
+    ],
+    "name": "approve",
+    "outputs": [
+      {
+        "internalType": "bool",
+        "name": "",
+        "type": "bool"
+      }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "asset",
+    "outputs": [
+      {
+        "internalType": "address",
+        "name": "",
+        "type": "address"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "account",
+        "type": "address"
+      }
+    ],
+    "name": "balanceOf",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      }
+    ],
+    "name": "convertToAssets",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      }
+    ],
+    "name": "convertToShares",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "decimals",
+    "outputs": [
+      {
+        "internalType": "uint8",
+        "name": "",
+        "type": "uint8"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      },
+      {
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      }
+    ],
+    "name": "deposit",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "",
+        "type": "address"
+      }
+    ],
+    "name": "maxDeposit",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "",
+        "type": "address"
+      }
+    ],
+    "name": "maxMint",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      }
+    ],
+    "name": "maxRedeem",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      }
+    ],
+    "name": "maxWithdraw",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      },
+      {
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      }
+    ],
+    "name": "mint",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "name",
+    "outputs": [
+      {
+        "internalType": "string",
+        "name": "",
+        "type": "string"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      }
+    ],
+    "name": "previewDeposit",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      }
+    ],
+    "name": "previewMint",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      }
+    ],
+    "name": "previewRedeem",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      }
+    ],
+    "name": "previewWithdraw",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "shares",
+        "type": "uint256"
+      },
+      {
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      },
+      {
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      }
+    ],
+    "name": "redeem",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "symbol",
+    "outputs": [
+      {
+        "internalType": "string",
+        "name": "",
+        "type": "string"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "totalAssets",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "totalSupply",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "to",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "value",
+        "type": "uint256"
+      }
+    ],
+    "name": "transfer",
+    "outputs": [
+      {
+        "internalType": "bool",
+        "name": "",
+        "type": "bool"
+      }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "address",
+        "name": "from",
+        "type": "address"
+      },
+      {
+        "internalType": "address",
+        "name": "to",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "value",
+        "type": "uint256"
+      }
+    ],
+    "name": "transferFrom",
+    "outputs": [
+      {
+        "internalType": "bool",
+        "name": "",
+        "type": "bool"
+      }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "uint256",
+        "name": "assets",
+        "type": "uint256"
+      },
+      {
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      },
+      {
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      }
+    ],
+    "name": "withdraw",
+    "outputs": [
+      {
+        "internalType": "uint256",
+        "name": "",
+        "type": "uint256"
+      }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  }
+]
diff --git a/action-scripts/abis/IERC4626CowSwapFeeBurner.json b/action-scripts/abis/IERC4626CowSwapFeeBurner.json
new file mode 100644
index 000000000..16d830b5b
--- /dev/null
+++ b/action-scripts/abis/IERC4626CowSwapFeeBurner.json
@@ -0,0 +1,578 @@
+[
+  {
+    "inputs": [
+      {
+        "internalType": "contract IProtocolFeeSweeper",
+        "name": "_protocolFeeSweeper",
+        "type": "address"
+      },
+      {
+        "internalType": "contract IComposableCow",
+        "name": "_composableCow",
+        "type": "address"
+      },
+      { "internalType": "address", "name": "_vaultRelayer", "type": "address" },
+      { "internalType": "bytes32", "name": "_appData", "type": "bytes32" },
+      { "internalType": "string", "name": "_version", "type": "string" }
+    ],
+    "stateMutability": "nonpayable",
+    "type": "constructor"
+  },
+  {
+    "inputs": [
+      { "internalType": "address", "name": "target", "type": "address" }
+    ],
+    "name": "AddressEmptyCode",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      { "internalType": "address", "name": "account", "type": "address" }
+    ],
+    "name": "AddressInsufficientBalance",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "contract IERC20",
+        "name": "tokenOut",
+        "type": "address"
+      },
+      { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
+      { "internalType": "uint256", "name": "minAmountOut", "type": "uint256" }
+    ],
+    "name": "AmountOutBelowMin",
+    "type": "error"
+  },
+  { "inputs": [], "name": "FailedInnerCall", "type": "error" },
+  {
+    "inputs": [],
+    "name": "InterfaceIsSignatureVerifierMuxer",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      { "internalType": "string", "name": "reason", "type": "string" }
+    ],
+    "name": "InvalidOrderParameters",
+    "type": "error"
+  },
+  { "inputs": [], "name": "InvalidProtocolFeeSweeper", "type": "error" },
+  {
+    "inputs": [
+      {
+        "internalType": "enum ICowSwapFeeBurner.OrderStatus",
+        "name": "actualStatus",
+        "type": "uint8"
+      }
+    ],
+    "name": "OrderHasUnexpectedStatus",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      { "internalType": "string", "name": "reason", "type": "string" }
+    ],
+    "name": "OrderNotValid",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      { "internalType": "string", "name": "reason", "type": "string" }
+    ],
+    "name": "PollNever",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      { "internalType": "uint256", "name": "blockNumber", "type": "uint256" },
+      { "internalType": "string", "name": "reason", "type": "string" }
+    ],
+    "name": "PollTryAtBlock",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      { "internalType": "uint256", "name": "timestamp", "type": "uint256" },
+      { "internalType": "string", "name": "reason", "type": "string" }
+    ],
+    "name": "PollTryAtEpoch",
+    "type": "error"
+  },
+  {
+    "inputs": [
+      { "internalType": "string", "name": "reason", "type": "string" }
+    ],
+    "name": "PollTryNextBlock",
+    "type": "error"
+  },
+  { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" },
+  {
+    "inputs": [
+      { "internalType": "address", "name": "token", "type": "address" }
+    ],
+    "name": "SafeERC20FailedOperation",
+    "type": "error"
+  },
+  { "inputs": [], "name": "SenderNotAllowed", "type": "error" },
+  { "inputs": [], "name": "SwapDeadline", "type": "error" },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "owner",
+        "type": "address"
+      },
+      {
+        "components": [
+          {
+            "internalType": "contract ICowConditionalOrder",
+            "name": "handler",
+            "type": "address"
+          },
+          { "internalType": "bytes32", "name": "salt", "type": "bytes32" },
+          { "internalType": "bytes", "name": "staticData", "type": "bytes" }
+        ],
+        "indexed": false,
+        "internalType": "struct ICowConditionalOrder.ConditionalOrderParams",
+        "name": "params",
+        "type": "tuple"
+      }
+    ],
+    "name": "ConditionalOrderCreated",
+    "type": "event"
+  },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": false,
+        "internalType": "contract IERC20",
+        "name": "tokenIn",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "exactAmountIn",
+        "type": "uint256"
+      },
+      {
+        "indexed": false,
+        "internalType": "address",
+        "name": "receiver",
+        "type": "address"
+      }
+    ],
+    "name": "OrderCanceled",
+    "type": "event"
+  },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": false,
+        "internalType": "contract IERC20",
+        "name": "tokenIn",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "exactAmountIn",
+        "type": "uint256"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "minAmountOut",
+        "type": "uint256"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "deadline",
+        "type": "uint256"
+      }
+    ],
+    "name": "OrderRetried",
+    "type": "event"
+  },
+  {
+    "anonymous": false,
+    "inputs": [
+      {
+        "indexed": true,
+        "internalType": "address",
+        "name": "pool",
+        "type": "address"
+      },
+      {
+        "indexed": true,
+        "internalType": "contract IERC20",
+        "name": "feeToken",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "exactFeeTokenAmountIn",
+        "type": "uint256"
+      },
+      {
+        "indexed": true,
+        "internalType": "contract IERC20",
+        "name": "targetToken",
+        "type": "address"
+      },
+      {
+        "indexed": false,
+        "internalType": "uint256",
+        "name": "actualTargetTokenAmountOut",
+        "type": "uint256"
+      },
+      {
+        "indexed": false,
+        "internalType": "address",
+        "name": "recipient",
+        "type": "address"
+      }
+    ],
+    "name": "ProtocolFeeBurned",
+    "type": "event"
+  },
+  {
+    "inputs": [],
+    "name": "appData",
+    "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      { "internalType": "address", "name": "pool", "type": "address" },
+      {
+        "internalType": "contract IERC20",
+        "name": "feeToken",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "exactFeeTokenAmountIn",
+        "type": "uint256"
+      },
+      {
+        "internalType": "contract IERC20",
+        "name": "targetToken",
+        "type": "address"
+      },
+      {
+        "internalType": "uint256",
+        "name": "minTargetTokenAmountOut",
+        "type": "uint256"
+      },
+      { "internalType": "address", "name": "recipient", "type": "address" },
+      { "internalType": "uint256", "name": "deadline", "type": "uint256" }
+    ],
+    "name": "burn",
+    "outputs": [],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "contract IERC20",
+        "name": "tokenIn",
+        "type": "address"
+      },
+      { "internalType": "address", "name": "receiver", "type": "address" }
+    ],
+    "name": "cancelOrder",
+    "outputs": [],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "composableCow",
+    "outputs": [
+      {
+        "internalType": "contract IComposableCow",
+        "name": "",
+        "type": "address"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "contract IERC20",
+        "name": "tokenIn",
+        "type": "address"
+      },
+      { "internalType": "address", "name": "receiver", "type": "address" }
+    ],
+    "name": "emergencyCancelOrder",
+    "outputs": [],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "contract IERC20",
+        "name": "tokenIn",
+        "type": "address"
+      }
+    ],
+    "name": "getOrder",
+    "outputs": [
+      {
+        "components": [
+          {
+            "internalType": "contract IERC20",
+            "name": "sellToken",
+            "type": "address"
+          },
+          {
+            "internalType": "contract IERC20",
+            "name": "buyToken",
+            "type": "address"
+          },
+          { "internalType": "address", "name": "receiver", "type": "address" },
+          {
+            "internalType": "uint256",
+            "name": "sellAmount",
+            "type": "uint256"
+          },
+          { "internalType": "uint256", "name": "buyAmount", "type": "uint256" },
+          { "internalType": "uint32", "name": "validTo", "type": "uint32" },
+          { "internalType": "bytes32", "name": "appData", "type": "bytes32" },
+          { "internalType": "uint256", "name": "feeAmount", "type": "uint256" },
+          { "internalType": "bytes32", "name": "kind", "type": "bytes32" },
+          {
+            "internalType": "bool",
+            "name": "partiallyFillable",
+            "type": "bool"
+          },
+          {
+            "internalType": "bytes32",
+            "name": "sellTokenBalance",
+            "type": "bytes32"
+          },
+          {
+            "internalType": "bytes32",
+            "name": "buyTokenBalance",
+            "type": "bytes32"
+          }
+        ],
+        "internalType": "struct GPv2Order",
+        "name": "",
+        "type": "tuple"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "contract IERC20",
+        "name": "tokenIn",
+        "type": "address"
+      }
+    ],
+    "name": "getOrderStatus",
+    "outputs": [
+      {
+        "internalType": "enum ICowSwapFeeBurner.OrderStatus",
+        "name": "status",
+        "type": "uint8"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      { "internalType": "address", "name": "", "type": "address" },
+      { "internalType": "address", "name": "", "type": "address" },
+      { "internalType": "bytes32", "name": "", "type": "bytes32" },
+      { "internalType": "bytes", "name": "staticInput", "type": "bytes" },
+      { "internalType": "bytes", "name": "", "type": "bytes" }
+    ],
+    "name": "getTradeableOrder",
+    "outputs": [
+      {
+        "components": [
+          {
+            "internalType": "contract IERC20",
+            "name": "sellToken",
+            "type": "address"
+          },
+          {
+            "internalType": "contract IERC20",
+            "name": "buyToken",
+            "type": "address"
+          },
+          { "internalType": "address", "name": "receiver", "type": "address" },
+          {
+            "internalType": "uint256",
+            "name": "sellAmount",
+            "type": "uint256"
+          },
+          { "internalType": "uint256", "name": "buyAmount", "type": "uint256" },
+          { "internalType": "uint32", "name": "validTo", "type": "uint32" },
+          { "internalType": "bytes32", "name": "appData", "type": "bytes32" },
+          { "internalType": "uint256", "name": "feeAmount", "type": "uint256" },
+          { "internalType": "bytes32", "name": "kind", "type": "bytes32" },
+          {
+            "internalType": "bool",
+            "name": "partiallyFillable",
+            "type": "bool"
+          },
+          {
+            "internalType": "bytes32",
+            "name": "sellTokenBalance",
+            "type": "bytes32"
+          },
+          {
+            "internalType": "bytes32",
+            "name": "buyTokenBalance",
+            "type": "bytes32"
+          }
+        ],
+        "internalType": "struct GPv2Order",
+        "name": "",
+        "type": "tuple"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      { "internalType": "bytes32", "name": "_hash", "type": "bytes32" },
+      { "internalType": "bytes", "name": "signature", "type": "bytes" }
+    ],
+    "name": "isValidSignature",
+    "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "protocolFeeSweeper",
+    "outputs": [
+      {
+        "internalType": "contract IProtocolFeeSweeper",
+        "name": "",
+        "type": "address"
+      }
+    ],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      {
+        "internalType": "contract IERC20",
+        "name": "tokenIn",
+        "type": "address"
+      },
+      { "internalType": "uint256", "name": "minAmountOut", "type": "uint256" },
+      { "internalType": "uint256", "name": "deadline", "type": "uint256" }
+    ],
+    "name": "retryOrder",
+    "outputs": [],
+    "stateMutability": "nonpayable",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }
+    ],
+    "name": "supportsInterface",
+    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+    "stateMutability": "pure",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "vaultRelayer",
+    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [
+      { "internalType": "address", "name": "owner", "type": "address" },
+      { "internalType": "address", "name": "sender", "type": "address" },
+      { "internalType": "bytes32", "name": "", "type": "bytes32" },
+      { "internalType": "bytes32", "name": "", "type": "bytes32" },
+      { "internalType": "bytes32", "name": "ctx", "type": "bytes32" },
+      { "internalType": "bytes", "name": "staticInput", "type": "bytes" },
+      { "internalType": "bytes", "name": "offchainInput", "type": "bytes" },
+      {
+        "components": [
+          {
+            "internalType": "contract IERC20",
+            "name": "sellToken",
+            "type": "address"
+          },
+          {
+            "internalType": "contract IERC20",
+            "name": "buyToken",
+            "type": "address"
+          },
+          { "internalType": "address", "name": "receiver", "type": "address" },
+          {
+            "internalType": "uint256",
+            "name": "sellAmount",
+            "type": "uint256"
+          },
+          { "internalType": "uint256", "name": "buyAmount", "type": "uint256" },
+          { "internalType": "uint32", "name": "validTo", "type": "uint32" },
+          { "internalType": "bytes32", "name": "appData", "type": "bytes32" },
+          { "internalType": "uint256", "name": "feeAmount", "type": "uint256" },
+          { "internalType": "bytes32", "name": "kind", "type": "bytes32" },
+          {
+            "internalType": "bool",
+            "name": "partiallyFillable",
+            "type": "bool"
+          },
+          {
+            "internalType": "bytes32",
+            "name": "sellTokenBalance",
+            "type": "bytes32"
+          },
+          {
+            "internalType": "bytes32",
+            "name": "buyTokenBalance",
+            "type": "bytes32"
+          }
+        ],
+        "internalType": "struct GPv2Order",
+        "name": "_order",
+        "type": "tuple"
+      }
+    ],
+    "name": "verify",
+    "outputs": [],
+    "stateMutability": "view",
+    "type": "function"
+  },
+  {
+    "inputs": [],
+    "name": "version",
+    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+    "stateMutability": "view",
+    "type": "function"
+  }
+]
diff --git a/action-scripts/v3_fee_bot.py b/action-scripts/v3_fee_bot.py
index d4cbdd3ac..3a8d9c65e 100644
--- a/action-scripts/v3_fee_bot.py
+++ b/action-scripts/v3_fee_bot.py
@@ -65,13 +65,36 @@ def _tx_cancelOrder(burner_address, token_address):
     }
 
 
+def _add_to_payload(
+    DesignatedBurner, payload_unstuck_tokens, asset_address, designated_burner
+):
+    if DesignatedBurner.functions.getOrderStatus(
+        to_checksum_address(asset_address)
+    ).call() not in [0, 2]:
+        # OrderStatus is neither NonExistent nor Filled, thus can be cancelled
+        print("!!! token stuck in burner; adding to unstuck payload\n")
+        for tx in payload_unstuck_tokens["transactions"]:
+            if tx["contractInputsValues"]["tokenIn"].lower() == asset_address.lower():
+                break
+        else:
+            print(f"adding {asset_address} to unstuck payload")
+            payload_unstuck_tokens["transactions"].append(
+                _tx_cancelOrder(
+                    designated_burner,
+                    to_checksum_address(asset_address),
+                )
+            )
+    else:
+        print("!!! token can neither be burned nor cancelled\n")
+
+
 def get_pools(chain: str, broadcast: bool = False):
     drpc = Web3(
         Web3.HTTPProvider(
             f"https://lb.drpc.org/ogrpc?network={('ethereum' if chain == 'mainnet' else chain)}&dkey={os.getenv('DRPC_KEY')}"
         )
     )
-    bot = drpc.eth.account.from_key(os.getenv("PRIVATE_KEY"))
+    Bot = drpc.eth.account.from_key(os.getenv("PRIVATE_KEY"))
     sweeper = AddrBook(chain).search_unique("20250228-v3-protocol-fee-sweeper").address
     ProtocolFeeSweeper = drpc.eth.contract(
         address=sweeper,
@@ -100,30 +123,40 @@ def get_pools(chain: str, broadcast: bool = False):
         )
         if fees["pool"]:
             for token in fees["pool"]["tokens"]:
-                erc20 = drpc.eth.contract(
-                    address=to_checksum_address(token["address"]),
-                    abi=json.load(open("action-scripts/abis/ERC20.json")),
-                )
                 for pool_token in pool["poolTokens"]:
                     if pool_token["address"].lower() == token["address"].lower():
                         token_is_erc4626 = pool_token["isErc4626"]
                         break
+                if token_is_erc4626:
+                    ERC4626 = drpc.eth.contract(
+                        address=to_checksum_address(token["address"]),
+                        abi=json.load(open("action-scripts/abis/ERC4626.json")),
+                    )
+                    asset_address = ERC4626.functions.asset().call()
+                else:
+                    asset_address = token["address"]
+                Asset = drpc.eth.contract(
+                    address=to_checksum_address(asset_address),
+                    abi=json.load(open("action-scripts/abis/ERC20.json")),
+                )
                 designated_burner = erc4626_burner if token_is_erc4626 else burner
-                balance = erc20.functions.balanceOf(designated_burner).call()
+                DesignatedBurner = drpc.eth.contract(
+                    address=to_checksum_address(designated_burner),
+                    abi=json.load(
+                        open("action-scripts/abis/IERC4626CowSwapFeeBurner.json")
+                    ),
+                )
+                balance = Asset.functions.balanceOf(designated_burner).call()
                 if balance > 0:
-                    for tx in payload_unstuck_tokens["transactions"]:
-                        if (
-                            tx["contractInputsValues"]["tokenIn"].lower()
-                            == token["address"].lower()
-                        ):
-                            break
-                    else:
-                        print(f"adding {token['address']} to unstuck payload")
-                        payload_unstuck_tokens["transactions"].append(
-                            _tx_cancelOrder(
-                                designated_burner,
-                                to_checksum_address(token["address"]),
-                            )
+                    if DesignatedBurner.functions.getOrderStatus(
+                        to_checksum_address(asset_address)
+                    ).call() not in [0, 2]:
+                        # OrderStatus is neither NonExistent nor Filled, thus can be cancelled
+                        _add_to_payload(
+                            DesignatedBurner,
+                            payload_unstuck_tokens,
+                            asset_address,
+                            designated_burner,
                         )
                 fees_vault = Decimal(token["vaultProtocolSwapFeeBalance"]) + Decimal(
                     token["vaultProtocolYieldFeeBalance"]
@@ -206,8 +239,8 @@ def get_pools(chain: str, broadcast: bool = False):
                             ),
                         ).build_transaction(
                             {
-                                "from": bot.address,
-                                "nonce": drpc.eth.get_transaction_count(bot.address),
+                                "from": Bot.address,
+                                "nonce": drpc.eth.get_transaction_count(Bot.address),
                                 "maxFeePerGas": max_gas_price,
                                 "maxPriorityFeePerGas": max_priority_fee_optimal,
                             }
@@ -215,7 +248,7 @@ def get_pools(chain: str, broadcast: bool = False):
                         print("tx: ", end="")
                         pprint(unsigned_tx)
                         signed_tx = drpc.eth.account.sign_transaction(
-                            unsigned_tx, bot.key
+                            unsigned_tx, Bot.key
                         )
                         if broadcast:
                             try:
@@ -227,29 +260,43 @@ def get_pools(chain: str, broadcast: bool = False):
                                 print(f"!!! tx failed: {e}\n")
                                 continue
                             print("tx hash:", tx_hash.hex())
-                            print("waiting for cooldown...")
-                            sleep(ORDER_COOLDOWN)
+                            if (
+                                token["address"] != target_token
+                                or asset_address != target_token
+                            ):
+                                print("waiting for cooldown...")
+                                sleep(ORDER_COOLDOWN)
                         print("\n")
                     except (ContractLogicError, ValueError) as e:
                         if "data" in dir(e):
                             if "0xd0c1b3cf" in e.data:
                                 # OrderHasUnexpectedStatus
-                                print(
-                                    "!!! token stuck in burner; no new order possible\n"
+                                _add_to_payload(
+                                    DesignatedBurner,
+                                    payload_unstuck_tokens,
+                                    asset_address,
+                                    designated_burner,
                                 )
                                 continue
                         if "message" in dir(e):
                             if "0xd0c1b3cf" in e.message:
                                 # OrderHasUnexpectedStatus
-                                print(
-                                    "!!! token stuck in burner; no new order possible\n"
+                                _add_to_payload(
+                                    DesignatedBurner,
+                                    payload_unstuck_tokens,
+                                    asset_address,
+                                    designated_burner,
                                 )
     if len(payload_unstuck_tokens["transactions"]) > 0:
-        json.dump(
-            payload_unstuck_tokens,
-            open(f"MaxiOps/v3_fees/unstuck_tokens_{chain}.json", "w"),
-            indent=2,
-        )
+        with open(f"MaxiOps/v3_fees/unstuck_tokens_{chain}.json", "w") as f:
+            json.dump(payload_unstuck_tokens, f, indent=2)
+            f.write("\n")
+    else:
+        # delete old file if present
+        try:
+            os.remove(f"MaxiOps/v3_fees/unstuck_tokens_{chain}.json")
+        except FileNotFoundError:
+            pass
 
 
 if __name__ == "__main__":
@@ -258,7 +305,7 @@ def get_pools(chain: str, broadcast: bool = False):
         report[chain] = {"n_pools": 0, "total_potential": 0, "usdc_collectable": []}
         s = Subgraph(chain)
         prices = get_prices(chain)
-        get_pools(chain, broadcast=True)
+        get_pools(chain, broadcast=False)
     pprint(report)
     print(
         "total total_potential:",


Reviews:
user: login: Xeonus
body: Overall lgtm but need to make sure we don't run into issues with fake ERC4626 tokens
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-26T11:43:36Z
user: login: gosuto-inzasheru
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-26T11:54:05Z

Review comments:
diff_hunk: @@ -100,30 +123,40 @@ def get_pools(chain: str, broadcast: bool = False):
         )
         if fees["pool"]:
             for token in fees["pool"]["tokens"]:
-                erc20 = drpc.eth.contract(
-                    address=to_checksum_address(token["address"]),
-                    abi=json.load(open("action-scripts/abis/ERC20.json")),
-                )
                 for pool_token in pool["poolTokens"]:
                     if pool_token["address"].lower() == token["address"].lower():
                         token_is_erc4626 = pool_token["isErc4626"]
                         break
+                if token_is_erc4626:
path: action-scripts/v3_fee_bot.py
user: login: Xeonus
body: what about the issue of "fake" ERC4626 that might cause issues when burning? Can the ERC4626 burner handle those in any circumstance?
created_at: 2025-05-26T11:42:31Z
author_association: COLLABORATOR
diff_hunk: @@ -100,30 +123,40 @@ def get_pools(chain: str, broadcast: bool = False):
         )
         if fees["pool"]:
             for token in fees["pool"]["tokens"]:
-                erc20 = drpc.eth.contract(
-                    address=to_checksum_address(token["address"]),
-                    abi=json.load(open("action-scripts/abis/ERC20.json")),
-                )
                 for pool_token in pool["poolTokens"]:
                     if pool_token["address"].lower() == token["address"].lower():
                         token_is_erc4626 = pool_token["isErc4626"]
                         break
+                if token_is_erc4626:
path: action-scripts/v3_fee_bot.py
user: login: gosuto-inzasheru
body: that is being handled on the burner side:
- https://github.com/balancer/balancer-v3-monorepo/pull/1387
- https://github.com/balancer/balancer-v3-monorepo/pull/1389
created_at: 2025-05-26T11:54:05Z
author_association: COLLABORATOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-05-09T14:56:40Z
body: FILENAME: `MaxiOps/v3_fees/unstuck_tokens_base.json`
COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
| Validator                       | Result |
| :-------------------------------| :----: |
| `validate_contains_msig`        |   ✅   |
| `validate_msig_in_address_book` |   ✅   |
| `validate_chain_specified`      |   ✅   |

FILENAME: `MaxiOps/v3_fees/unstuck_tokens_gnosis.json`
COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
| Validator                       | Result |
| :-------------------------------| :----: |
| `validate_contains_msig`        |   ✅   |
| `validate_msig_in_address_book` |   ✅   |
| `validate_chain_specified`      |   ✅   |

FILENAME: `MaxiOps/v3_fees/unstuck_tokens_mainnet.json`
COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
| Validator                       | Result |
| :-------------------------------| :----: |
| `validate_contains_msig`        |   ✅   |
| `validate_msig_in_address_book` |   ✅   |
| `validate_chain_specified`      |   ✅   |
<!-- thollander/actions-comment-pull-request "validation_report" -->
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-09T14:56:40Z
body: FILENAME: `MaxiOps/v3_fees/unstuck_tokens_base.json`
MULTISIG: `multisigs/maxi_omni (base:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e)`
COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
CHAIN(S): `base`
TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/46530f7f-ca1d-4219-af43-406edc7dd949)

```
+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
| fx_name     | to                                                                                            | value | inputs                                                                 | bip_number | tx_index |
+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
| cancelOrder | 0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd (20250221-v3-cow-swap-fee-burner/CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
|             |                                                                                               |       |   "tokenIn": [                                                         |            |          |
|             |                                                                                               |       |     "0x2531ec1720E5d1bC82052585271D4BE3f43E392F (N/A)"                 |            |          |
|             |                                                                                               |       |   ],                                                                   |            |          |
|             |                                                                                               |       |   "receiver": [                                                        |            |          |
|             |                                                                                               |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
|             |                                                                                               |       |   ]                                                                    |            |          |
|             |                                                                                               |       | }                                                                      |            |          |
+-------------+-----------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
```
FILENAME: `MaxiOps/v3_fees/unstuck_tokens_gnosis.json`
MULTISIG: `multisigs/maxi_omni (gnosis:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e)`
COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
CHAIN(S): `gnosis`
TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/a1946a08-f6dc-49db-8e91-4aa80cec7a22)

```
+-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
| fx_name     | to                                                                                                           | value | inputs                                                                 | bip_number | tx_index |
+-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
| cancelOrder | 0x7D92FCDC8Aa56057D5E318B2881F2167c67FdAfA (20250507-v3-erc4626-cow-swap-fee-burner/ERC4626CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
|             |                                                                                                              |       |   "tokenIn": [                                                         |            |          |
|             |                                                                                                              |       |     "0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1 (N/A)"                 |            |          |
|             |                                                                                                              |       |   ],                                                                   |            |          |
|             |                                                                                                              |       |   "receiver": [                                                        |            |          |
|             |                                                                                                              |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
|             |                                                                                                              |       |   ]                                                                    |            |          |
|             |                                                                                                              |       | }                                                                      |            |          |
+-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
```
FILENAME: `MaxiOps/v3_fees/unstuck_tokens_mainnet.json`
MULTISIG: `multisigs/maxi_omni (mainnet:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e)`
COMMIT: `b0fa4dd5b0d9a5e427b396a76031e628b593c516`
CHAIN(S): `mainnet`
TENDERLY: [`🟩 SUCCESS`](https://www.tdly.co/shared/simulation/5db38119-563b-47fa-94f6-5fd25bb3265e)

```
+-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
| fx_name     | to                                                                                                           | value | inputs                                                                 | bip_number | tx_index |
+-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
| cancelOrder | 0x45fB5aF0a1aD80Ea16C803146eb81844D9972373 (20250507-v3-erc4626-cow-swap-fee-burner/ERC4626CowSwapFeeBurner) | 0     | {                                                                      | N/A        |   N/A    |
|             |                                                                                                              |       |   "tokenIn": [                                                         |            |          |
|             |                                                                                                              |       |     "0x8238884Ec9668Ef77B90C6dfF4D1a9F4F4823BFe (N/A)"                 |            |          |
|             |                                                                                                              |       |   ],                                                                   |            |          |
|             |                                                                                                              |       |   "receiver": [                                                        |            |          |
|             |                                                                                                              |       |     "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e (multisigs/maxi_omni)" |            |          |
|             |                                                                                                              |       |   ]                                                                    |            |          |
|             |                                                                                                              |       | }                                                                      |            |          |
+-------------+--------------------------------------------------------------------------------------------------------------+-------+------------------------------------------------------------------------+------------+----------+
```

<!-- thollander/actions-comment-pull-request "payload_report" -->
author_association: CONTRIBUTOR
user: login: gosuto-inzasheru
created_at: 2025-05-09T16:06:43Z
body: https://app.onchainden.com/safes/eth:0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e/transactions/0x9d34c0cfcad08df3bb4e534b121364329ea12eb043708a9f21a77b7a4ca2ef6f?nid=689726
author_association: COLLABORATOR
user: login: gosuto-inzasheru
created_at: 2025-05-24T13:11:01Z
body: @Xeonus @jalbrekt85 merging this would be good; some fixes in the bot logic. we should also use these cancelOrder payload that were auto generated; some fees there to unstuck
author_association: COLLABORATOR