@@ -19,6 +19,9 @@ contract EulerSwapHooks is EulerSwapTestBase {
1919 uint64 fee1 = 0 ;
2020 bool expectRejectedError = false ;
2121 address toOverride;
22+ address swapHookOverride;
23+ bool setSwapHookOverride = false ;
24+ bool expectBadDynamicParamError = false ;
2225
2326 function setHook (uint8 hookedOps , uint64 fee0Param , uint64 fee1Param ) internal {
2427 PoolConfig memory pc = getPoolConfig (eulerSwap);
@@ -28,6 +31,9 @@ contract EulerSwapHooks is EulerSwapTestBase {
2831 pc.dParams.swapHookedOperations = hookedOps;
2932 pc.dParams.swapHook = address (this );
3033
34+ if (setSwapHookOverride) pc.dParams.swapHook = swapHookOverride;
35+
36+ if (expectBadDynamicParamError) vm.expectRevert (EulerSwap.BadDynamicParam.selector );
3137 reconfigurePool (eulerSwap, pc);
3238 }
3339
@@ -350,4 +356,26 @@ contract EulerSwapHooks is EulerSwapTestBase {
350356 assertEq (getFeeCounter, 1 );
351357 assertEq (afterSwapCounter, 1 );
352358 }
359+
360+ function test_multipleHooks3 () public {
361+ setHook (EULER_SWAP_HOOK_BEFORE_SWAP | EULER_SWAP_HOOK_GET_FEE | EULER_SWAP_HOOK_AFTER_SWAP, 0 , 0 );
362+
363+ doSwap (true , assetTST, assetTST2, 1e18 , 0.9974e18 );
364+
365+ assertEq (beforeSwapCounter, 1 );
366+ assertEq (getFeeCounter, 1 );
367+ assertEq (afterSwapCounter, 1 );
368+ }
369+
370+ function test_invalidHook1 () public {
371+ expectBadDynamicParamError = true ;
372+ setHook (uint8 (8 ), 0 , 0 );
373+ }
374+
375+ function test_invalidHook2 () public {
376+ setSwapHookOverride = true ;
377+ swapHookOverride = address (0 );
378+ expectBadDynamicParamError = true ;
379+ setHook (EULER_SWAP_HOOK_BEFORE_SWAP, 0 , 0 );
380+ }
353381}
0 commit comments