Skip to content

Commit d568fa0

Browse files
committed
integrate and expand test
1 parent ec30941 commit d568fa0

File tree

1 file changed

+48
-30
lines changed

1 file changed

+48
-30
lines changed

test/FactoryTest.t.sol

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// SPDX-License-Identifier: GPL-2.0-or-later
22
pragma solidity ^0.8.24;
33

4-
import {stdError} from "forge-std/Test.sol";
54
import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol";
65
import {PoolManagerDeployer} from "./utils/PoolManagerDeployer.sol";
76
import {Hooks} from "@uniswap/v4-core/src/libraries/Hooks.sol";
@@ -249,56 +248,75 @@ contract FactoryTest is EulerSwapTestBase {
249248
EulerSwap(eulerSwapImpl).getReserves();
250249
}
251250

252-
253-
254251
address alice = makeAddr("alice");
255252
address bob = makeAddr("bob");
256253

257254
function test_multipleUninstalls() public {
258-
// Parameters for deployPool()
259-
IEulerSwap.Params memory params = IEulerSwap.Params({
260-
vault0: address(eTST),
261-
vault1: address(eTST2),
262-
eulerAccount: address(0),
263-
equilibriumReserve0: 1e18,
264-
equilibriumReserve1: 1e18,
265-
priceX: 1e18,
266-
priceY: 1e18,
267-
concentrationX: 0,
268-
concentrationY: 0,
269-
fee: 0,
270-
protocolFee: 0,
271-
protocolFeeRecipient: address(0)
272-
});
273-
IEulerSwap.InitialState memory initialState = IEulerSwap.InitialState({
274-
currReserve0: 1e18,
275-
currReserve1: 1e18
276-
});
277-
bytes32 salt = bytes32(0);
255+
(IEulerSwap.Params memory params, IEulerSwap.InitialState memory initialState) = getBasicParams();
278256

279257
// Deploy pool for Alice
280-
params.eulerAccount = alice;
281-
address alicePool = eulerSwapFactory.computePoolAddress(params, salt);
258+
params.eulerAccount = holder = alice;
259+
(address alicePool, bytes32 aliceSalt) = mineSalt(params);
260+
282261
vm.startPrank(alice);
283262
evc.setAccountOperator(alice, alicePool, true);
284-
eulerSwapFactory.deployPool(params, initialState, salt);
263+
eulerSwapFactory.deployPool(params, initialState, aliceSalt);
285264

286265
// Deploy pool for Bob
287-
params.eulerAccount = bob;
288-
address bobPool = eulerSwapFactory.computePoolAddress(params, salt);
266+
params.eulerAccount = holder = bob;
267+
(address bobPool, bytes32 bobSalt) = mineSalt(params);
268+
289269
vm.startPrank(bob);
290270
evc.setAccountOperator(bob, bobPool, true);
291-
eulerSwapFactory.deployPool(params, initialState, salt);
271+
eulerSwapFactory.deployPool(params, initialState, bobSalt);
272+
273+
{
274+
address[] memory ps = eulerSwapFactory.pools();
275+
assertEq(ps.length, 2);
276+
assertEq(ps[0], alicePool);
277+
assertEq(ps[1], bobPool);
278+
}
279+
280+
{
281+
(address asset0, address asset1) = EulerSwap(alicePool).getAssets();
282+
address[] memory ps = eulerSwapFactory.poolsByPair(asset0, asset1);
283+
assertEq(ps.length, 2);
284+
assertEq(ps[0], alicePool);
285+
assertEq(ps[1], bobPool);
286+
}
292287

293288
// Uninstall pool for Alice
294289
vm.startPrank(alice);
295290
evc.setAccountOperator(alice, alicePool, false);
296291
eulerSwapFactory.uninstallPool();
297292

293+
{
294+
address[] memory ps = eulerSwapFactory.pools();
295+
assertEq(ps.length, 1);
296+
assertEq(ps[0], bobPool);
297+
}
298+
299+
{
300+
(address asset0, address asset1) = EulerSwap(alicePool).getAssets();
301+
address[] memory ps = eulerSwapFactory.poolsByPair(asset0, asset1);
302+
assertEq(ps.length, 1);
303+
assertEq(ps[0], bobPool);
304+
}
305+
298306
// Uninstalling pool for Bob reverts due to an OOB access of the allPools array
299307
vm.startPrank(bob);
300308
evc.setAccountOperator(bob, bobPool, false);
301-
vm.expectRevert(stdError.indexOOBError);
302309
eulerSwapFactory.uninstallPool();
310+
311+
{
312+
address[] memory ps = eulerSwapFactory.pools();
313+
assertEq(ps.length, 0);
314+
}
315+
316+
{
317+
(address asset0, address asset1) = EulerSwap(alicePool).getAssets();
318+
address[] memory ps = eulerSwapFactory.poolsByPair(asset0, asset1);
319+
assertEq(ps.length, 0);
320+
}
303321
}
304322
}

0 commit comments

Comments
 (0)