@@ -8,6 +8,7 @@ import {DodoV2, IDodoV2} from "../../core/DodoV2.sol";
8
8
import {MaverickV2, IMaverickV2Pool} from "../../core/MaverickV2.sol " ;
9
9
import {UniswapV4} from "../../core/UniswapV4.sol " ;
10
10
import {IPoolManager} from "../../core/UniswapV4Types.sol " ;
11
+ import {BalancerV3} from "../../core/BalancerV3.sol " ;
11
12
import {FreeMemory} from "../../utils/FreeMemory.sol " ;
12
13
13
14
import {ISettlerActions} from "../../ISettlerActions.sol " ;
@@ -46,7 +47,7 @@ import {BASE_POOL_MANAGER} from "../../core/UniswapV4Addresses.sol";
46
47
// Solidity inheritance is stupid
47
48
import {SettlerAbstract} from "../../SettlerAbstract.sol " ;
48
49
49
- abstract contract BaseMixin is FreeMemory , SettlerBase , MaverickV2 , DodoV2 , UniswapV4 {
50
+ abstract contract BaseMixin is FreeMemory , SettlerBase , MaverickV2 , DodoV2 , UniswapV4 , BalancerV3 {
50
51
constructor () {
51
52
assert (block .chainid == 8453 || block .chainid == 31337 );
52
53
}
@@ -73,6 +74,19 @@ abstract contract BaseMixin is FreeMemory, SettlerBase, MaverickV2, DodoV2, Unis
73
74
) = abi.decode (data, (address , IERC20 , uint256 , bool , uint256 , uint256 , bytes , uint256 ));
74
75
75
76
sellToUniswapV4 (recipient, sellToken, bps, feeOnTransfer, hashMul, hashMod, fills, amountOutMin);
77
+ } else if (action == uint32 (ISettlerActions.BALANCERV3.selector )) {
78
+ (
79
+ address recipient ,
80
+ IERC20 sellToken ,
81
+ uint256 bps ,
82
+ bool feeOnTransfer ,
83
+ uint256 hashMul ,
84
+ uint256 hashMod ,
85
+ bytes memory fills ,
86
+ uint256 amountOutMin
87
+ ) = abi.decode (data, (address , IERC20 , uint256 , bool , uint256 , uint256 , bytes , uint256 ));
88
+
89
+ sellToBalancerV3 (recipient, sellToken, bps, feeOnTransfer, hashMul, hashMod, fills, amountOutMin);
76
90
} else if (action == uint32 (ISettlerActions.MAVERICKV2.selector )) {
77
91
(
78
92
address recipient ,
0 commit comments