Skip to content

Commit 43be08e

Browse files
committed
move setup to test base
1 parent c921f07 commit 43be08e

File tree

2 files changed

+37
-17
lines changed

2 files changed

+37
-17
lines changed

test/EulerSwapHook.swaps.t.sol

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import {EulerSwapHook} from "../src/EulerSwapHook.sol";
88
import {PoolKey} from "@uniswap/v4-core/src/types/PoolKey.sol";
99
import {IPoolManager, PoolManagerDeployer} from "./utils/PoolManagerDeployer.sol";
1010
import {PoolSwapTest} from "@uniswap/v4-core/src/test/PoolSwapTest.sol";
11-
import {Hooks} from "@uniswap/v4-core/src/libraries/Hooks.sol";
12-
import {HookMiner} from "v4-periphery/src/utils/HookMiner.sol";
1311
import {Currency, CurrencyLibrary} from "@uniswap/v4-core/src/types/Currency.sol";
1412
import {StateLibrary} from "@uniswap/v4-core/src/libraries/StateLibrary.sol";
1513
import {TickMath} from "@uniswap/v4-core/src/libraries/TickMath.sol";
@@ -27,29 +25,15 @@ contract EulerSwapHookTest is EulerSwapTestBase {
2725
function setUp() public virtual override {
2826
super.setUp();
2927

30-
// TODO: move upstream to EulerSwapTestBase?
3128
poolManager = PoolManagerDeployer.deploy(address(this));
3229
swapRouter = new PoolSwapTest(poolManager);
3330

34-
// eulerSwap = createEulerSwap(60e18, 60e18, 0, 1e18, 1e18, 0.4e18, 0.85e18);
35-
IEulerSwap.Params memory poolParams = getEulerSwapParams(60e18, 60e18, 0);
36-
IEulerSwap.CurveParams memory curveParams =
37-
IEulerSwap.CurveParams({priceX: 1e18, priceY: 1e18, concentrationX: 0.4e18, concentrationY: 0.85e18});
38-
bytes memory constructorArgs = abi.encode(poolManager, poolParams, curveParams);
39-
uint160 flags = uint160(Hooks.BEFORE_SWAP_FLAG | Hooks.BEFORE_SWAP_RETURNS_DELTA_FLAG);
40-
(address hookAddress, bytes32 salt) =
41-
HookMiner.find(creator, flags, type(EulerSwapHook).creationCode, constructorArgs);
42-
vm.prank(creator);
43-
eulerSwap = new EulerSwapHook{salt: salt}(poolManager, poolParams, curveParams);
44-
assertEq(address(eulerSwap), hookAddress);
31+
eulerSwap = createEulerSwapHook(poolManager, 60e18, 60e18, 0, 1e18, 1e18, 0.4e18, 0.85e18);
4532

4633
// confirm pool was created
4734
assertFalse(eulerSwap.poolKey().currency1 == CurrencyLibrary.ADDRESS_ZERO);
4835
(uint160 sqrtPriceX96,,,) = poolManager.getSlot0(eulerSwap.poolKey().toId());
4936
assertNotEq(sqrtPriceX96, 0);
50-
51-
vm.prank(holder);
52-
evc.setAccountOperator(holder, address(eulerSwap), true);
5337
}
5438

5539
function test_SwapExactIn() public {

test/EulerSwapTestBase.t.sol

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ import {EVaultTestBase, TestERC20} from "evk-test/unit/evault/EVaultTestBase.t.s
66
import {IEVault} from "evk/EVault/IEVault.sol";
77
import {IEulerSwap, IEVC, EulerSwap} from "../src/EulerSwap.sol";
88
import {EulerSwapPeriphery} from "../src/EulerSwapPeriphery.sol";
9+
import {EulerSwapHook} from "../src/EulerSwapHook.sol";
10+
import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol";
11+
import {HookMiner} from "v4-periphery/src/utils/HookMiner.sol";
12+
import {Hooks} from "@uniswap/v4-core/src/libraries/Hooks.sol";
913

1014
contract EulerSwapTestBase is EVaultTestBase {
1115
address public depositor = makeAddr("depositor");
@@ -96,6 +100,38 @@ contract EulerSwapTestBase is EVaultTestBase {
96100
return eulerSwap;
97101
}
98102

103+
function createEulerSwapHook(
104+
IPoolManager _poolManager,
105+
uint112 debtLimitA,
106+
uint112 debtLimitB,
107+
uint256 fee,
108+
uint256 px,
109+
uint256 py,
110+
uint256 cx,
111+
uint256 cy
112+
) internal returns (EulerSwapHook) {
113+
IEulerSwap.Params memory poolParams = getEulerSwapParams(debtLimitA, debtLimitB, fee);
114+
IEulerSwap.CurveParams memory curveParams =
115+
IEulerSwap.CurveParams({priceX: px, priceY: py, concentrationX: cx, concentrationY: cy});
116+
117+
bytes memory constructorArgs = abi.encode(_poolManager, poolParams, curveParams);
118+
(address hookAddress, bytes32 salt) = HookMiner.find(
119+
creator,
120+
uint160(Hooks.BEFORE_SWAP_FLAG | Hooks.BEFORE_SWAP_RETURNS_DELTA_FLAG),
121+
type(EulerSwapHook).creationCode,
122+
constructorArgs
123+
);
124+
125+
vm.prank(creator);
126+
EulerSwapHook eulerSwapHook = new EulerSwapHook{salt: salt}(_poolManager, poolParams, curveParams);
127+
assertEq(address(eulerSwapHook), hookAddress);
128+
129+
vm.prank(holder);
130+
evc.setAccountOperator(holder, address(eulerSwapHook), true);
131+
132+
return eulerSwapHook;
133+
}
134+
99135
function mintAndDeposit(address who, IEVault vault, uint256 amount) internal {
100136
TestERC20 tok = TestERC20(vault.asset());
101137
tok.mint(who, amount);

0 commit comments

Comments
 (0)