@@ -3,12 +3,11 @@ pragma solidity ^0.8.27;
3
3
4
4
import {IEulerSwapFactory} from "./interfaces/IEulerSwapFactory.sol " ;
5
5
import {IEulerSwap, EulerSwap} from "./EulerSwap.sol " ;
6
- import {Ownable} from "openzeppelin-contracts/access/Ownable.sol " ;
7
6
8
7
/// @title EulerSwapFactory contract
9
8
/// @custom:security-contact [email protected]
10
9
/// @author Euler Labs (https://www.eulerlabs.com/)
11
- contract EulerSwapFactory is IEulerSwapFactory , Ownable {
10
+ contract EulerSwapFactory is IEulerSwapFactory {
12
11
/// @dev An array to store all pools addresses.
13
12
address [] public allPools;
14
13
/// @dev Mapping to store pool addresses
@@ -27,16 +26,15 @@ contract EulerSwapFactory is IEulerSwapFactory, Ownable {
27
26
);
28
27
29
28
error InvalidQuery ();
30
-
31
- constructor () Ownable (msg .sender ) {}
29
+ error AlreadyDeployed ();
32
30
33
31
/// @notice Deploy EulerSwap pool.
34
32
function deployPool (DeployParams memory params ) external returns (address ) {
35
33
EulerSwap pool = new EulerSwap (
36
34
IEulerSwap.Params ({
37
35
vault0: params.vault0,
38
36
vault1: params.vault1,
39
- myAccount: params.holder ,
37
+ myAccount: params.swapAccount ,
40
38
debtLimit0: params.debtLimit0,
41
39
debtLimit1: params.debtLimit1,
42
40
fee: params.fee
@@ -58,22 +56,24 @@ contract EulerSwapFactory is IEulerSwapFactory, Ownable {
58
56
poolAsset0,
59
57
poolAsset1,
60
58
feeMultiplier,
61
- params.holder ,
59
+ params.swapAccount ,
62
60
params.priceX,
63
61
params.priceY,
64
62
params.concentrationX,
65
63
params.concentrationY
66
64
)
67
65
);
68
66
67
+ require (getPool[poolKey] == address (0 ), AlreadyDeployed ());
68
+
69
69
getPool[poolKey] = address (pool);
70
70
allPools.push (address (pool));
71
71
72
72
emit PoolDeployed (
73
73
poolAsset0,
74
74
poolAsset1,
75
75
feeMultiplier,
76
- params.holder ,
76
+ params.swapAccount ,
77
77
params.priceX,
78
78
params.priceY,
79
79
params.concentrationX,
0 commit comments